diff options
author | Howard Trickey <howard.trickey@gmail.com> | 2020-11-01 00:21:18 +0300 |
---|---|---|
committer | Howard Trickey <howard.trickey@gmail.com> | 2020-11-01 00:21:18 +0300 |
commit | c249eb7a8d61e08b7564102a6a97c52ee7ce1595 (patch) | |
tree | 3d27a3d9ceb65d3d8dbcdb348ed581f1908a75aa | |
parent | 64faa59846f20fbcdcdd8047aa86319b82243ccd (diff) |
Fix new boolean performance bug.
The code that decided to use a faster double version of plane
side testing forgot to take an absolute value, so half the time
the exact code was being used when it was unnecessary.
-rw-r--r-- | source/blender/blenlib/intern/mesh_intersect.cc | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/source/blender/blenlib/intern/mesh_intersect.cc b/source/blender/blenlib/intern/mesh_intersect.cc index c36dfa80be7..a777833dff4 100644 --- a/source/blender/blenlib/intern/mesh_intersect.cc +++ b/source/blender/blenlib/intern/mesh_intersect.cc @@ -1550,7 +1550,7 @@ static int filter_plane_side(const double3 &p, } double supremum = double3::dot(abs_p + abs_plane_p, abs_plane_no); double err_bound = supremum * index_plane_side * DBL_EPSILON; - if (d > err_bound) { + if (fabs(d) > err_bound) { return d > 0 ? 1 : -1; } return 0; |