[Bf-blender-cvs] [bedcce1bf76] rigid_deform: protect against very thin triangles
Jacques Lucke
noreply at git.blender.org
Thu Jan 31 19:56:01 CET 2019
Commit: bedcce1bf76cd54df71d16916f16da5f33e39879
Author: Jacques Lucke
Date: Tue Jan 29 20:05:41 2019 +0100
Branches: rigid_deform
https://developer.blender.org/rBbedcce1bf76cd54df71d16916f16da5f33e39879
protect against very thin triangles
===================================================================
M source/blender/modifiers/intern/MOD_rigiddeform_system.cc
===================================================================
diff --git a/source/blender/modifiers/intern/MOD_rigiddeform_system.cc b/source/blender/modifiers/intern/MOD_rigiddeform_system.cc
index ff5be820144..3ae6926f477 100644
--- a/source/blender/modifiers/intern/MOD_rigiddeform_system.cc
+++ b/source/blender/modifiers/intern/MOD_rigiddeform_system.cc
@@ -89,9 +89,9 @@ static std::vector<WeightedEdge> calculate_cotan_edge_weights(
positions[verts[1]],
positions[verts[2]]);
- double w1 = cotan(angles[0]) / 2.0;
- double w2 = cotan(angles[1]) / 2.0;
- double w3 = cotan(angles[2]) / 2.0;
+ double w1 = (angles[0] > 0.0001) ? cotan(angles[0]) / 2.0 : 1.0;
+ double w2 = (angles[0] > 0.0001) ? cotan(angles[1]) / 2.0 : 1.0;
+ double w3 = (angles[0] > 0.0001) ? cotan(angles[2]) / 2.0 : 1.0;
if (w1 > 0) edges.push_back(WeightedEdge(verts[1], verts[2], w1));
if (w2 > 0) edges.push_back(WeightedEdge(verts[0], verts[2], w2));
More information about the Bf-blender-cvs
mailing list