diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2012-11-05 16:11:43 +0400 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2012-11-05 16:11:43 +0400 |
commit | 1231232169034558fdabef9b6b4b3c6b83115064 (patch) | |
tree | d51e4c3f583957fa456cc799bcc4c044501cff34 /intern/bsp | |
parent | b74ba5c59547e158c18a5a390d81e12b4c0ad41d (diff) |
Partial revert of own rev44548.
That was more like workaround which solved particular issue with freestyle
rendering, but introduced some more uncontrollable issues, main of which is
recursive fracture would likely suffer from non-manifolds results of previous
step.
Boolean operation is not the only way to generate zero-area face, it could
also happen with character animation and it's indeed better be solved from
freestule side.
This should fix: #33041 Boolean difference sometimes produces meshes with holes
Diffstat (limited to 'intern/bsp')
-rw-r--r-- | intern/bsp/intern/BOP_CarveInterface.cpp | 5 |
1 files changed, 0 insertions, 5 deletions
diff --git a/intern/bsp/intern/BOP_CarveInterface.cpp b/intern/bsp/intern/BOP_CarveInterface.cpp index 49c999a1dd4..f7da76e5794 100644 --- a/intern/bsp/intern/BOP_CarveInterface.cpp +++ b/intern/bsp/intern/BOP_CarveInterface.cpp @@ -559,8 +559,6 @@ static bool Carve_checkDegeneratedFace(std::map<MeshSet<3>::vertex_t*, uint> *ve if (v1 == v2 || v2 == v3 || v1 == v3) return true; - - return triangleArea(face->edge->prev->vert->v, face->edge->vert->v, face->edge->next->vert->v) < DBL_EPSILON; } else if (face->n_edges == 4) { uint v1, v2, v3, v4; @@ -572,9 +570,6 @@ static bool Carve_checkDegeneratedFace(std::map<MeshSet<3>::vertex_t*, uint> *ve if (v1 == v2 || v1 == v3 || v1 == v4 || v2 == v3 || v2 == v4 || v3 == v4) return true; - - return triangleArea(face->edge->vert->v, face->edge->next->vert->v, face->edge->next->next->vert->v) + - triangleArea(face->edge->prev->vert->v, face->edge->vert->v, face->edge->next->next->vert->v) < DBL_EPSILON; } return false; |