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:
authorSergey Sharybin <sergey.vfx@gmail.com>2012-01-30 13:19:38 +0400
committerSergey Sharybin <sergey.vfx@gmail.com>2012-01-30 13:19:38 +0400
commitb410d06ddeae82ba70d8f69368f17a1fbb2c0daf (patch)
tree8172f09a530499a94466ecff01b23b7004d4cb75 /source/blender/modifiers/intern/MOD_boolean.c
parent942413bdb2284de52e7e88c74b5028dddafbccb3 (diff)
Fix #29976: Carve Boolenas crasher with Solidify
Issue was caused by union policy needed to deal with cases when operand intersects two or more intersecting meshes of another operand. Changed this policy to run union operation only if there's actual intersection between two meshes of the same object. Should work in general but it's still possible to make it behave incorrect -- for example object consist of two groups if concentric cubes which intersects each other.
Diffstat (limited to 'source/blender/modifiers/intern/MOD_boolean.c')
-rw-r--r--source/blender/modifiers/intern/MOD_boolean.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/source/blender/modifiers/intern/MOD_boolean.c b/source/blender/modifiers/intern/MOD_boolean.c
index 16f0912bd9b..2493b5e0f74 100644
--- a/source/blender/modifiers/intern/MOD_boolean.c
+++ b/source/blender/modifiers/intern/MOD_boolean.c
@@ -47,6 +47,8 @@
#include "MOD_boolean_util.h"
#include "MOD_util.h"
+#include "PIL_time.h"
+
static void copyData(ModifierData *md, ModifierData *target)
{
BooleanModifierData *bmd = (BooleanModifierData*) md;
@@ -136,8 +138,12 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob,
result = get_quick_derivedMesh(derivedData, dm, bmd->operation);
if(result == NULL) {
+ // TIMEIT_START(NewBooleanDerivedMesh)
+
result = NewBooleanDerivedMesh(dm, bmd->object, derivedData, ob,
1 + bmd->operation);
+
+ // TIMEIT_END(NewBooleanDerivedMesh)
}
/* if new mesh returned, return it; otherwise there was