Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKen Hughes <khughes@pacific.edu>2006-06-10 20:00:38 +0400
committerKen Hughes <khughes@pacific.edu>2006-06-10 20:00:38 +0400
commit6d2adf66e5bbb0cf20b63b193ce40d0b1acb9934 (patch)
tree0d2f0aa2591066132e3f2e0bde34851174580b41 /intern/boolop
parent7fcc5800aef8f6355730ef27eb70f49f0480a42a (diff)
===Tools===
Another boolean bugfix: don't add faces which contain only two vertices (actually, triangles with two identical vertices).
Diffstat (limited to 'intern/boolop')
-rw-r--r--intern/boolop/intern/BOP_Triangulator.cpp6
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);