Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/blenkernel/intern/cloth_remeshing.cpp')
-rw-r--r--source/blender/blenkernel/intern/cloth_remeshing.cpp19
1 files changed, 17 insertions, 2 deletions
diff --git a/source/blender/blenkernel/intern/cloth_remeshing.cpp b/source/blender/blenkernel/intern/cloth_remeshing.cpp
index 13a9c98db20..bc65e25f398 100644
--- a/source/blender/blenkernel/intern/cloth_remeshing.cpp
+++ b/source/blender/blenkernel/intern/cloth_remeshing.cpp
@@ -84,6 +84,9 @@ typedef map<BMVert *, ClothVertex> ClothVertMap;
#define FACE_SIZING_DEBUG 0
#define FACE_SIZING_DEBUG_COMP 0
#define FACE_SIZING_DEBUG_OBS 1
+#define FACE_SIZING_DEBUG_SIZE 0
+
+#define INVERT_EPSILON 0.00001f
#define NEXT(x) ((x) < 2 ? (x) + 1 : (x)-2)
#define PREV(x) ((x) > 0 ? (x)-1 : (x) + 2)
@@ -652,7 +655,9 @@ static void cloth_remeshing_find_bad_edges(BMesh *bm, ClothVertMap &cvm, vector<
BM_ITER_MESH (e, &eiter, bm, BM_EDGES_OF_MESH) {
float size = cloth_remeshing_edge_size(bm, e, cvm);
#if FACE_SIZING_DEBUG
+# if FACE_SIZING_DEBUG_SIZE
printf("size: %f in %s\n", size, __func__);
+# endif
#endif
if (size > 1.0f) {
edge_pairs.push_back(make_pair(size, e));
@@ -1928,12 +1933,22 @@ static void cloth_remeshing_derivative(
float face_dm[2][2];
float face_dm_inv[2][2];
cloth_remeshing_face_data(bm, f, face_dm);
- if (invert_m2_m2(face_dm_inv, face_dm, 0.001f) == false) {
+ if (invert_m2_m2(face_dm_inv, face_dm, INVERT_EPSILON) == false) {
zero_m2(face_dm_inv);
}
transpose_m2(face_dm_inv);
mul_v2_m2v2(r_vec, face_dm_inv, temp_vec);
+#if FACE_SIZING_DEBUG_OBS
+ printf("face_dm: ");
+ print_m2(face_dm);
+ printf("face_dm_inv: ");
+ print_m2(face_dm_inv);
+ printf("temp_vec: ");
+ print_v2(temp_vec);
+ printf("r_vec: ");
+ print_v2(r_vec);
+#endif
}
static void cloth_remeshing_derivative(
@@ -1948,7 +1963,7 @@ static void cloth_remeshing_derivative(
float face_dm[2][2];
float face_dm_inv[2][2];
cloth_remeshing_face_data(bm, f, face_dm);
- if (invert_m2_m2(face_dm_inv, face_dm, 0.001f) == false) {
+ if (invert_m2_m2(face_dm_inv, face_dm, INVERT_EPSILON) == false) {
zero_m2(face_dm_inv);
}