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:
Diffstat (limited to 'source/blender/editors/mesh/editmesh_intersect.c')
-rw-r--r--source/blender/editors/mesh/editmesh_intersect.c31
1 files changed, 16 insertions, 15 deletions
diff --git a/source/blender/editors/mesh/editmesh_intersect.c b/source/blender/editors/mesh/editmesh_intersect.c
index 1b5e374b2a7..ff4867454d6 100644
--- a/source/blender/editors/mesh/editmesh_intersect.c
+++ b/source/blender/editors/mesh/editmesh_intersect.c
@@ -121,11 +121,10 @@ static void edbm_intersect_select(BMEditMesh *em, struct Mesh *me, bool do_selec
}
/* -------------------------------------------------------------------- */
-/* Cut intersections into geometry */
-
/** \name Simple Intersect (self-intersect)
- * \{
- */
+ *
+ * Cut intersections into geometry.
+ * \{ */
enum {
ISECT_SEL = 0,
@@ -204,8 +203,16 @@ static int edbm_intersect_exec(bContext *C, wmOperator *op)
}
if (exact) {
- has_isect = BM_mesh_boolean_knife(
- em->bm, em->looptris, em->tottri, test_fn, NULL, use_self, use_separate_all);
+ int nshapes = use_self ? 1 : 2;
+ has_isect = BM_mesh_boolean_knife(em->bm,
+ em->looptris,
+ em->tottri,
+ test_fn,
+ NULL,
+ nshapes,
+ use_self,
+ use_separate_all,
+ true);
}
else {
has_isect = BM_mesh_intersect(em->bm,
@@ -330,15 +337,11 @@ void MESH_OT_intersect(struct wmOperatorType *ot)
/** \} */
/* -------------------------------------------------------------------- */
-/* Boolean (a kind of intersect) */
-
/** \name Boolean Intersect
*
* \note internally this is nearly exactly the same as 'MESH_OT_intersect',
* however from a user perspective they are quite different, so expose as different tools.
- *
- * \{
- */
+ * \{ */
static int edbm_intersect_boolean_exec(bContext *C, wmOperator *op)
{
@@ -373,7 +376,7 @@ static int edbm_intersect_boolean_exec(bContext *C, wmOperator *op)
if (use_exact) {
has_isect = BM_mesh_boolean(
- em->bm, em->looptris, em->tottri, test_fn, NULL, use_self, boolean_operation);
+ em->bm, em->looptris, em->tottri, test_fn, NULL, 2, use_self, true, boolean_operation);
}
else {
has_isect = BM_mesh_intersect(em->bm,
@@ -487,9 +490,7 @@ void MESH_OT_intersect_boolean(struct wmOperatorType *ot)
/** \} */
/* -------------------------------------------------------------------- */
-/* Face Split by Edges */
-
-/** \name Face/Edge Split
+/** \name Face Split by Edges
* \{ */
static void bm_face_split_by_edges(BMesh *bm,