diff options
author | Howard Trickey <howard.trickey@gmail.com> | 2020-10-09 17:30:26 +0300 |
---|---|---|
committer | Howard Trickey <howard.trickey@gmail.com> | 2020-10-09 17:43:07 +0300 |
commit | 16ca29527883d6bc6fcdaacfe063d74dc51d03c2 (patch) | |
tree | 0449faa90b0875b1aa8e3e4df9c6326cf2411e7b /source | |
parent | 14c53c5018abaa1ab05f1821cdb1b2e0b7824d21 (diff) |
Fix New Boolean bug that left some stray vertices.
The routine to find dissolvable vertices had a check to ensure
that the vertex was exactly in line with the two neighbors.
I have convinced myself that this check is unneccesary (it was
failing with only a 1e-9 difference from 0 on a cross check),
so have removed it.
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/blenlib/intern/mesh_boolean.cc | 12 |
1 files changed, 2 insertions, 10 deletions
diff --git a/source/blender/blenlib/intern/mesh_boolean.cc b/source/blender/blenlib/intern/mesh_boolean.cc index a6ab30a3b26..169687cf9d1 100644 --- a/source/blender/blenlib/intern/mesh_boolean.cc +++ b/source/blender/blenlib/intern/mesh_boolean.cc @@ -3113,16 +3113,8 @@ static Array<bool> find_dissolve_verts(IMesh &imesh_out, int *r_count_dissolve) const std::pair<const Vert *, const Vert *> &nbrs = neighbors[v_out]; if (nbrs.first != nullptr) { BLI_assert(nbrs.second != nullptr); - const mpq3 &co1 = nbrs.first->co_exact; - const mpq3 &co2 = nbrs.second->co_exact; - const mpq3 &co = imesh_out.vert(v_out)->co_exact; - mpq3 dir1 = co - co1; - mpq3 dir2 = co2 - co; - mpq3 cross = mpq3::cross(dir1, dir2); - if (cross[0] == 0 && cross[1] == 0 && cross[2] == 0) { - dissolve[v_out] = true; - ++count; - } + dissolve[v_out] = true; + ++count; } } } |