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:
authorMartin Felke <martin.felke@googlemail.com>2019-03-09 23:09:52 +0300
committerMartin Felke <martin.felke@googlemail.com>2019-03-09 23:09:52 +0300
commitf236797eee873d25add884020f55702963ba3b19 (patch)
treeaad0c8e3ecf1249fa5c88c528fe6a1dcee4f104f
parent3832a09ea8f4e019da01c859cede41c7287c978a (diff)
fix incorrectly flipped carve result
-rw-r--r--source/blender/blenkernel/intern/boolean.c24
1 files changed, 5 insertions, 19 deletions
diff --git a/source/blender/blenkernel/intern/boolean.c b/source/blender/blenkernel/intern/boolean.c
index 06d60b16520..679f6f9a481 100644
--- a/source/blender/blenkernel/intern/boolean.c
+++ b/source/blender/blenkernel/intern/boolean.c
@@ -152,31 +152,17 @@ Mesh *BKE_boolean_operation(Mesh *mesh, struct Object *ob,
DerivedMesh *dm_other = CDDM_from_mesh(mesh_other);
DerivedMesh *dm_result = NULL;
- dm_result = NewBooleanDerivedMesh(dm, object, dm_other, other,
+ dm_result = NewBooleanDerivedMesh(dm_other, other, dm, object,
1 + op_type);
- if (dm_result && dm_result != dm)
- {
- float imat[4][4];
- float omat[4][4];
+ dm->needsFree = 1;
+ dm->release(dm);
+ if (dm_result && dm_result != dm_other)
+ {
result = BKE_id_new_nomain(ID_ME, NULL);
DM_to_mesh(dm_result, result, object, CD_MASK_MESH, true);
- //correct transform
- invert_m4_m4(imat, object->obmat);
- mul_m4_m4m4(omat, imat, other->obmat);
-
- const int mverts_len = result->totvert;
- MVert *mv = result->mvert;
-
- for (int i = 0; i < mverts_len; i++, mv++) {
- mul_m4_v3(omat, mv->co);
- }
-
- dm->needsFree = 1;
- dm->release(dm);
-
dm_other->needsFree = 1;
dm_other->release(dm_other);
}