Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender-addons.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2012-07-05 19:59:24 +0400
committerCampbell Barton <ideasman42@gmail.com>2012-07-05 19:59:24 +0400
commit2a9bbe00be339eef373f27c406c66233c9ee1e19 (patch)
treed08bfa0fb0532bad641f77bbeb50e2f1352a44a3 /object_fracture_cell
parent8c0210974911aafdbfbc10df89fb11178ed1c118 (diff)
- debug option to not apply booleans
- temp workaround for convex hull failing
Diffstat (limited to 'object_fracture_cell')
-rw-r--r--object_fracture_cell/__init__.py9
-rw-r--r--object_fracture_cell/fracture_cell_setup.py20
2 files changed, 26 insertions, 3 deletions
diff --git a/object_fracture_cell/__init__.py b/object_fracture_cell/__init__.py
index 01216409..63ffdd92 100644
--- a/object_fracture_cell/__init__.py
+++ b/object_fracture_cell/__init__.py
@@ -58,6 +58,7 @@ def main_object(scene, obj, level, **kw):
use_layer_next = kw_copy.pop("use_layer_next")
group_name = kw_copy.pop("group_name")
use_island_split = kw_copy.pop("use_island_split")
+ use_debug_bool = kw_copy.pop("use_debug_bool")
from . import fracture_cell_setup
@@ -71,6 +72,7 @@ def main_object(scene, obj, level, **kw):
objects = fracture_cell_setup.cell_fracture_objects(scene, obj, **kw_copy)
objects = fracture_cell_setup.cell_fracture_boolean(scene, obj, objects,
use_island_split=use_island_split,
+ use_debug_bool=use_debug_bool,
use_debug_redraw=kw_copy["use_debug_redraw"])
# todo, split islands.
@@ -315,6 +317,12 @@ class FractureCell(Operator):
default=True,
)
+ use_debug_bool = BoolProperty(
+ name="Debug Boolean",
+ description="Skip applying the boolean modifier",
+ default=False,
+ )
+
def execute(self, context):
keywords = self.as_keywords() # ignore=("blah",)
@@ -383,6 +391,7 @@ class FractureCell(Operator):
rowsub = col.row(align=True)
rowsub.prop(self, "use_debug_redraw")
rowsub.prop(self, "use_debug_points")
+ rowsub.prop(self, "use_debug_bool")
#def menu_func(self, context):
# self.layout.menu("INFO_MT_add_fracture_objects", icon="PLUGIN")
diff --git a/object_fracture_cell/fracture_cell_setup.py b/object_fracture_cell/fracture_cell_setup.py
index 19a5086a..2f6625bb 100644
--- a/object_fracture_cell/fracture_cell_setup.py
+++ b/object_fracture_cell/fracture_cell_setup.py
@@ -205,7 +205,21 @@ def cell_fracture_objects(scene, obj,
# create the convex hulls
bm = bmesh.new()
+
+ # WORKAROUND FOR CONVEX HULL BUG/LIMIT
+ # XXX small noise
+ import random
+ def R(): return (random.random() - 0.5) * 0.01
+ # XXX small noise
+
for i, co in enumerate(cell_points):
+
+ # XXX small noise
+ co.x += R()
+ co.y += R()
+ co.z += R()
+ # XXX small noise
+
bm_vert = bm.verts.new(co)
bm_vert.tag = True
@@ -291,7 +305,7 @@ def cell_fracture_objects(scene, obj,
def cell_fracture_boolean(scene, obj, objects,
- apply=True,
+ use_debug_bool=False,
clean=True,
use_island_split=False,
use_debug_redraw=False,
@@ -304,7 +318,7 @@ def cell_fracture_boolean(scene, obj, objects,
mod.object = obj
mod.operation = 'INTERSECT'
- if apply:
+ if not use_debug_bool:
mesh_new = obj_cell.to_mesh(scene,
apply_modifiers=True,
settings='PREVIEW')
@@ -346,7 +360,7 @@ def cell_fracture_boolean(scene, obj, objects,
if use_debug_redraw:
_redraw_yasiamevil()
- if apply and use_island_split:
+ if (not use_debug_bool) and use_island_split:
# this is ugly and Im not proud of this - campbell
objects_islands = []
for obj_cell in objects_boolean: