[Bf-blender-cvs] [0b8c2eed756] blender2.8: Merge branch 'master' into blender28
Campbell Barton
noreply at git.blender.org
Fri Jun 15 15:42:59 CEST 2018
Commit: 0b8c2eed7561e951ecd99421a8d05fffbf28a48b
Author: Campbell Barton
Date: Fri Jun 15 15:42:42 2018 +0200
Branches: blender2.8
https://developer.blender.org/rB0b8c2eed7561e951ecd99421a8d05fffbf28a48b
Merge branch 'master' into blender28
===================================================================
===================================================================
diff --cc release/scripts/addons
index 8f2fd7e23f0,9ae033c49c1..ebd058d7a64
--- a/release/scripts/addons
+++ b/release/scripts/addons
@@@ -1,1 -1,1 +1,1 @@@
- Subproject commit 8f2fd7e23f0b5ce023440182f51c40e88d663325
-Subproject commit 9ae033c49c1b16718eac6306bdc271a5e6e6bf38
++Subproject commit ebd058d7a6438d137522063bb3286c8acc325ca6
diff --cc release/scripts/addons_contrib
index 34a27a42d78,f178e6c933a..47470215783
--- a/release/scripts/addons_contrib
+++ b/release/scripts/addons_contrib
@@@ -1,1 -1,1 +1,1 @@@
- Subproject commit 34a27a42d781d80f9f1833bad8cc5b2abcac2933
-Subproject commit f178e6c933a25c621a5cc7d92935b66cd2ec2f5d
++Subproject commit 474702157831f1a58bb50f5240ab8b1b02b6ba37
diff --cc source/blender/editors/mesh/editmesh_intersect.c
index ad76f0c66f1,86b1a58dd1e..9af700aa6bf
--- a/source/blender/editors/mesh/editmesh_intersect.c
+++ b/source/blender/editors/mesh/editmesh_intersect.c
@@@ -184,45 -186,29 +184,45 @@@ static int edbm_intersect_exec(bContex
default: /* ISECT_SEPARATE_NONE */
break;
}
+ ViewLayer *view_layer = CTX_data_view_layer(C);
+ uint objects_len = 0;
+ uint isect_len = 0;
+ Object **objects = BKE_view_layer_array_from_objects_in_edit_mode_unique_data(view_layer, &objects_len);
+ for (uint ob_index = 0; ob_index < objects_len; ob_index++) {
+ Object *obedit = objects[ob_index];
+ BMEditMesh *em = BKE_editmesh_from_object(obedit);
- has_isect = BM_mesh_intersect(
- bm,
- em->looptris, em->tottri,
- test_fn, NULL,
- use_self, use_separate_all, true, true, true, true,
- -1,
- eps);
-
- if (use_separate_cut) {
- /* detach selected/un-selected faces */
- BM_mesh_separate_faces(
- bm,
- BM_elem_cb_check_hflag_enabled_simple(const BMFace *, BM_ELEM_SELECT));
- }
+ if (em->bm->totfacesel == 0) {
+ continue;
+ }
+
+ has_isect = BM_mesh_intersect(
- em->bm,
- em->looptris, em->tottri,
- test_fn, NULL,
- use_self, use_separate_all, true, true, true,
- -1,
- eps);
++ em->bm,
++ em->looptris, em->tottri,
++ test_fn, NULL,
++ use_self, use_separate_all, true, true, true, true,
++ -1,
++ eps);
+
+ if (use_separate_cut) {
+ /* detach selected/un-selected faces */
+ BM_mesh_separate_faces(
- em->bm,
- BM_elem_cb_check_hflag_enabled_simple(const BMFace *, BM_ELEM_SELECT));
++ em->bm,
++ BM_elem_cb_check_hflag_enabled_simple(const BMFace *, BM_ELEM_SELECT));
+ }
- if (has_isect) {
- edbm_intersect_select(em);
+ if (has_isect) {
+ edbm_intersect_select(em);
+ }
+ else {
+ isect_len++;
+ }
}
- else {
+ MEM_freeN(objects);
+
+ if (isect_len == objects_len) {
BKE_report(op->reports, RPT_WARNING, "No intersections found");
}
-
return OPERATOR_FINISHED;
}
@@@ -287,39 -276,23 +287,39 @@@ static int edbm_intersect_boolean_exec(
bool has_isect;
test_fn = use_swap ? bm_face_isect_pair_swap : bm_face_isect_pair;
+ ViewLayer *view_layer = CTX_data_view_layer(C);
+ uint objects_len = 0;
+ uint isect_len = 0;
+ Object **objects = BKE_view_layer_array_from_objects_in_edit_mode_unique_data(view_layer, &objects_len);
+ for (uint ob_index = 0; ob_index < objects_len; ob_index++) {
+ Object *obedit = objects[ob_index];
+ BMEditMesh *em = BKE_editmesh_from_object(obedit);
+
+ if (em->bm->totfacesel == 0) {
+ continue;
+ }
- has_isect = BM_mesh_intersect(
- bm,
- em->looptris, em->tottri,
- test_fn, NULL,
- false, false, true, true, false, true,
- boolean_operation,
- eps);
+ has_isect = BM_mesh_intersect(
- em->bm,
- em->looptris, em->tottri,
- test_fn, NULL,
- false, false, true, true, true,
- boolean_operation,
- eps);
++ em->bm,
++ em->looptris, em->tottri,
++ test_fn, NULL,
++ false, false, true, true, false, true,
++ boolean_operation,
++ eps);
- if (has_isect) {
- edbm_intersect_select(em);
+ if (has_isect) {
+ edbm_intersect_select(em);
+ }
+ else {
+ isect_len++;
+ }
}
- else {
+ MEM_freeN(objects);
+
+ if (isect_len == objects_len) {
BKE_report(op->reports, RPT_WARNING, "No intersections found");
}
-
return OPERATOR_FINISHED;
}
More information about the Bf-blender-cvs
mailing list