Tools
authorKen Hughes <khughes@pacific.edu>
Thu, 31 Jul 2008 18:37:03 +0000 (18:37 +0000)
committerKen Hughes <khughes@pacific.edu>
Thu, 31 Jul 2008 18:37:03 +0000 (18:37 +0000)
commitcb0aa467cd7acb1392897bf436d808de5b40e552
treeeb41c3a05f887bb45bb2d95b1da2873351566af0
parentd66449996cb719138d1fe3e6838fd403cf64a512
Tools
-----
New boolean merge algorithm.  The current code often does a poor job of merging tris and quads after the operation, resulting in many unnecessary faces.  This commit add a new algorithm which takes advantage of topology information saved in the interal BOP structures.

The file intern/boolop/intern/BOP_Misc.h has two #defines which control which algorithm(s) are compiled.  They are set now to compile both, with the new algorithm as the default.  The original algorithm can be enabled by setting the "rt" debugging button on the Scene panel (F10) to 100.

One note: the current boolean code still occasionally creates a non-manifold mesh from an operation on two manifold meshes.  The original merge algorithm would sometimes "close" these meshes and sometimes not.  The new algorithms behaves the same way, but sometimes closes a mesh the original would not and sometimes leaves open a mesh the original would close.  My fairly extensive tests did not indicate any significant difference in the percentage of final non-manifold meshes.
intern/boolop/intern/BOP_Edge.cpp
intern/boolop/intern/BOP_Edge.h
intern/boolop/intern/BOP_Interface.cpp
intern/boolop/intern/BOP_Merge.cpp
intern/boolop/intern/BOP_Merge.h
intern/boolop/intern/BOP_Merge2.cpp [new file with mode: 0644]
intern/boolop/intern/BOP_Merge2.h [new file with mode: 0644]
intern/boolop/intern/BOP_Mesh.cpp
intern/boolop/intern/BOP_Misc.h
intern/boolop/intern/BOP_Tag.h