Commit: 3caeb51d7f27ecf3f5b4c0edd9293e7a5c72d527
Author: Campbell Barton
Date:   Sun Mar 5 22:23:12 2017 +1100
Branches: master
https://developer.blender.org/rB3caeb51d7f27ecf3f5b4c0edd9293e7a5c72d527

Fix T50855: Intersect (knife) w/o separate doesn't select

===================================================================

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 58234ddf3b..2cb82d0fc0 100644
--- a/source/blender/bmesh/tools/bmesh_intersect.c
+++ b/source/blender/bmesh/tools/bmesh_intersect.c
@@ -986,7 +986,7 @@ bool BM_mesh_intersect(
         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_dissolve, 
const bool use_island_connect,
-        const int boolean_mode,
+        const bool use_edge_tag, const int boolean_mode,
         const float eps)
 {
        struct ISectState s;
@@ -1526,7 +1526,7 @@ bool BM_mesh_intersect(
 
                BM_mesh_edgesplit(bm, false, true, false);
        }
-       else if (boolean_mode != BMESH_ISECT_BOOLEAN_NONE) {
+       else if (boolean_mode != BMESH_ISECT_BOOLEAN_NONE || use_edge_tag) {
                GSetIterator gs_iter;
 
                /* no need to clear for boolean */
diff --git a/source/blender/bmesh/tools/bmesh_intersect.h 
b/source/blender/bmesh/tools/bmesh_intersect.h
index d0cc41654e..51926a0171 100644
--- a/source/blender/bmesh/tools/bmesh_intersect.h
+++ b/source/blender/bmesh/tools/bmesh_intersect.h
@@ -30,7 +30,7 @@ bool BM_mesh_intersect(
         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_dissolve, 
const bool use_island_connect,
-        const int boolean_mode,
+        const bool use_edge_tag, const int boolean_mode,
         const float eps);
 
 enum {
diff --git a/source/blender/editors/mesh/editmesh_intersect.c 
b/source/blender/editors/mesh/editmesh_intersect.c
index de93211bec..853a1f3d2e 100644
--- a/source/blender/editors/mesh/editmesh_intersect.c
+++ b/source/blender/editors/mesh/editmesh_intersect.c
@@ -165,7 +165,7 @@ static int edbm_intersect_exec(bContext *C, wmOperator *op)
                bm,
                em->looptris, em->tottri,
                test_fn, NULL,
-               use_self, use_separate, true, true,
+               use_self, use_separate, true, true, true,
                -1,
                eps);
 
@@ -239,7 +239,7 @@ static int edbm_intersect_boolean_exec(bContext *C, 
wmOperator *op)
                bm,
                em->looptris, em->tottri,
                test_fn, NULL,
-               false, false, true, true,
+               false, false, true, true, true,
                boolean_operation,
                eps);
 
diff --git a/source/blender/modifiers/intern/MOD_boolean.c 
b/source/blender/modifiers/intern/MOD_boolean.c
index f828bc6885..f86d8b99f3 100644
--- a/source/blender/modifiers/intern/MOD_boolean.c
+++ b/source/blender/modifiers/intern/MOD_boolean.c
@@ -319,6 +319,7 @@ static DerivedMesh *applyModifier_bmesh(
                                        use_separate,
                                        use_dissolve,
                                        use_island_connect,
+                                       false,
                                        bmd->operation,
                                        bmd->double_threshold);

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to