[Bf-blender-cvs] [03d4df9] bmesh-boolean-experiment: Disable dissolve (for intersect testing)
Campbell Barton
noreply at git.blender.org
Thu Nov 26 00:37:08 CET 2015
Commit: 03d4df9cfd7bfd201ce8785a776cd7cbb5a3c00d
Author: Campbell Barton
Date: Thu Nov 26 10:29:48 2015 +1100
Branches: bmesh-boolean-experiment
https://developer.blender.org/rB03d4df9cfd7bfd201ce8785a776cd7cbb5a3c00d
Disable dissolve (for intersect testing)
This causes errors splitting the mesh in some cases,
eventually would be good to use but disable for now.
===================================================================
M source/blender/bmesh/tools/bmesh_intersect.c
M source/blender/bmesh/tools/bmesh_intersect.h
M source/blender/editors/mesh/editmesh_intersect.c
M source/blender/modifiers/intern/MOD_boolean.c
===================================================================
diff --git a/source/blender/bmesh/tools/bmesh_intersect.c b/source/blender/bmesh/tools/bmesh_intersect.c
index 7fb6c50..f69a7b6 100644
--- a/source/blender/bmesh/tools/bmesh_intersect.c
+++ b/source/blender/bmesh/tools/bmesh_intersect.c
@@ -1021,7 +1021,7 @@ bool BM_mesh_intersect(
BMesh *bm,
struct BMLoop *(*looptris)[3], const int looptris_tot,
int (*test_fn)(BMFace *f, void *user_data), void *user_data,
- const bool use_self, const bool use_separate,
+ const bool use_self, const bool use_separate, const bool use_dissolve,
const int boolean_mode,
const float eps)
{
@@ -1085,7 +1085,9 @@ bool BM_mesh_intersect(
0);
#ifdef USE_DISSOLVE
- BM_mesh_elem_hflag_disable_all(bm, BM_EDGE | BM_VERT, BM_ELEM_TAG, false);
+ if (use_dissolve) {
+ BM_mesh_elem_hflag_disable_all(bm, BM_EDGE | BM_VERT, BM_ELEM_TAG, false);
+ }
#endif
#ifdef USE_DUMP
@@ -1288,7 +1290,7 @@ bool BM_mesh_intersect(
/* important to handle before edgenet */
#ifdef USE_DISSOLVE
- {
+ if (use_dissolve) {
/* first pass */
BMVert *(*splice_ls)[2];
STACK_DECLARE(splice_ls);
diff --git a/source/blender/bmesh/tools/bmesh_intersect.h b/source/blender/bmesh/tools/bmesh_intersect.h
index 543d8a8..c584fec 100644
--- a/source/blender/bmesh/tools/bmesh_intersect.h
+++ b/source/blender/bmesh/tools/bmesh_intersect.h
@@ -29,7 +29,7 @@ bool BM_mesh_intersect(
BMesh *bm,
struct BMLoop *(*looptris)[3], const int looptris_tot,
int (*test_fn)(BMFace *f, void *user_data), void *user_data,
- const bool use_self, const bool use_separate,
+ const bool use_self, const bool use_separate, const bool use_dissolve,
const int boolean_mode,
const float eps);
diff --git a/source/blender/editors/mesh/editmesh_intersect.c b/source/blender/editors/mesh/editmesh_intersect.c
index 8f04a5a..34989df 100644
--- a/source/blender/editors/mesh/editmesh_intersect.c
+++ b/source/blender/editors/mesh/editmesh_intersect.c
@@ -123,7 +123,7 @@ static int edbm_intersect_exec(bContext *C, wmOperator *op)
bm,
em->looptris, em->tottri,
test_fn, NULL,
- use_self, use_separate,
+ use_self, use_separate, false,
0,
eps);
diff --git a/source/blender/modifiers/intern/MOD_boolean.c b/source/blender/modifiers/intern/MOD_boolean.c
index 877ab91..d6376d5 100644
--- a/source/blender/modifiers/intern/MOD_boolean.c
+++ b/source/blender/modifiers/intern/MOD_boolean.c
@@ -235,7 +235,7 @@ static DerivedMesh *applyModifier(
bm,
looptris, tottri,
bm_face_isect_pair, &user_data,
- false, true,
+ false, true, false,
bmd->operation,
FLT_EPSILON);
More information about the Bf-blender-cvs
mailing list