diff options
author | Ken Hughes <khughes@pacific.edu> | 2006-06-10 20:00:38 +0400 |
---|---|---|
committer | Ken Hughes <khughes@pacific.edu> | 2006-06-10 20:00:38 +0400 |
commit | 6d2adf66e5bbb0cf20b63b193ce40d0b1acb9934 (patch) | |
tree | 0d2f0aa2591066132e3f2e0bde34851174580b41 /intern | |
parent | 7fcc5800aef8f6355730ef27eb70f49f0480a42a (diff) |
===Tools===
Another boolean bugfix: don't add faces which contain only two vertices
(actually, triangles with two identical vertices).
Diffstat (limited to 'intern')
-rw-r--r-- | intern/boolop/intern/BOP_Triangulator.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/intern/boolop/intern/BOP_Triangulator.cpp b/intern/boolop/intern/BOP_Triangulator.cpp index 0ac637ee28d..ad23e69d8c0 100644 --- a/intern/boolop/intern/BOP_Triangulator.cpp +++ b/intern/boolop/intern/BOP_Triangulator.cpp @@ -400,10 +400,14 @@ void BOP_addFace(BOP_Mesh* mesh, BOP_Faces* faces, BOP_Face* face, BOP_TAG tag) /* * Before adding a new face to the face list, be sure it's not * already there. Duplicate faces have been found to cause at - * least two instances of infinite loops. + * least two instances of infinite loops. Also, some faces are + * created which have the same vertex twice. Don't add these either. + * * When someone has more time to look into this issue, it's possible * this code may be removed again. */ + if( av1==av2 || av2==av3 || av3==av1 ) return; + for(unsigned int idxFace=0;idxFace<faces->size();idxFace++) { BOP_Face *faceA = (*faces)[idxFace]; BOP_Index bv1 = faceA->getVertex(0); |