diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2014-02-18 09:51:36 +0400 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2014-02-18 09:53:04 +0400 |
commit | 97b90d89f4744f40241daf19952493bb3d267cca (patch) | |
tree | a58ae6396a0a402d90b43fba2d8015d06747ec4b /extern/carve | |
parent | 6dafb89436c0b9bc35895262dda059c2729610c1 (diff) |
Fix T38637: Boolean produces faces with holes which isn't supported by BMesh
Simple fix -- use CarveHoleResolver hook for CSG which will split faces
containing holes.
Diffstat (limited to 'extern/carve')
-rw-r--r-- | extern/carve/carve-capi.cc | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/extern/carve/carve-capi.cc b/extern/carve/carve-capi.cc index aaf5761516c..ed46d196d72 100644 --- a/extern/carve/carve-capi.cc +++ b/extern/carve/carve-capi.cc @@ -29,6 +29,7 @@ #include <carve/interpolator.hpp> #include <carve/rescale.hpp> +#include <carve/csg_triangulator.hpp> using carve::mesh::MeshSet; @@ -348,6 +349,9 @@ bool carve_performBooleanOperation(CarveMeshDescr *left_mesh, carve::csg::CSG csg; + csg.hooks.registerHook(new carve::csg::CarveHoleResolver, + carve::csg::CSG::Hooks::PROCESS_OUTPUT_FACE_BIT); + output_descr->orig_vert_mapping.installHooks(csg); output_descr->orig_face_edge_mapping.installHooks(csg); output_descr->orig_face_mapping.installHooks(csg); |