diff options
author | Campbell Barton <ideasman42@gmail.com> | 2013-07-12 04:18:27 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2013-07-12 04:18:27 +0400 |
commit | 55c79821b9c6fde4324391123d5a6c84ead866cd (patch) | |
tree | fe5cc4fca1e1d4589aabb80d2f52fb53ac4bfab4 /source/blender/freestyle | |
parent | 17ee2732f423182ce9a58ee0f6c94acc5e029c88 (diff) |
optimize interp_weights_poly_v2(), well tested, was calculating the area twice as much as was needed.
Diffstat (limited to 'source/blender/freestyle')
-rw-r--r-- | source/blender/freestyle/intern/blender_interface/BlenderFileLoader.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/source/blender/freestyle/intern/blender_interface/BlenderFileLoader.cpp b/source/blender/freestyle/intern/blender_interface/BlenderFileLoader.cpp index 85956dbcac8..cd8ce14567e 100644 --- a/source/blender/freestyle/intern/blender_interface/BlenderFileLoader.cpp +++ b/source/blender/freestyle/intern/blender_interface/BlenderFileLoader.cpp @@ -308,6 +308,9 @@ void BlenderFileLoader::addTriangle(struct LoaderState *ls, float v1[3], float v // zero otherwise. int BlenderFileLoader::testDegenerateTriangle(float v1[3], float v2[3], float v3[3]) { + const float eps = 1.0e-6; + const float eps_sq = eps * eps; + #if 0 float area = area_tri_v3(v1, v2, v3); bool verbose = (area < 1.0e-6); @@ -321,9 +324,9 @@ int BlenderFileLoader::testDegenerateTriangle(float v1[3], float v2[3], float v3 #endif return 1; } - if (dist_to_line_segment_v3(v1, v2, v3) < 1.0e-6 || - dist_to_line_segment_v3(v2, v1, v3) < 1.0e-6 || - dist_to_line_segment_v3(v3, v1, v2) < 1.0e-6) + if (dist_squared_to_line_segment_v3(v1, v2, v3) < eps_sq || + dist_squared_to_line_segment_v3(v2, v1, v3) < eps_sq || + dist_squared_to_line_segment_v3(v3, v1, v2) < eps_sq) { #if 0 if (verbose && G.debug & G_DEBUG_FREESTYLE) { |