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:
authorBastien Montagne <montagne29@wanadoo.fr>2011-04-15 16:15:02 +0400
committerBastien Montagne <montagne29@wanadoo.fr>2011-04-15 16:15:02 +0400
commit40372e3ac609b26f68a01ba7514c025b8b179429 (patch)
treecbc3814622baa0e4f18a171c84777b9878cba82a /object_fracture
parenta0b63f1fc2b2e716fa07e6666753d3d34d1f4676 (diff)
*Bug fixes (script thought there was 32 layers, lol).
*Commented out non-manifold check on returned shards, it prevented open meshes to be fractured (e.g. Suzanne). *Enhanced UI of Fracture Group op.
Diffstat (limited to 'object_fracture')
-rw-r--r--object_fracture/__init__.py2
-rw-r--r--object_fracture/fracture_ops.py36
2 files changed, 22 insertions, 16 deletions
diff --git a/object_fracture/__init__.py b/object_fracture/__init__.py
index 33d1c851..895af266 100644
--- a/object_fracture/__init__.py
+++ b/object_fracture/__init__.py
@@ -21,7 +21,7 @@ bl_info = {
"author": "pildanovak",
"version": (2, 0),
"blender": (2, 5, 7),
- "api": 35622,
+ "api": 36147,
"location": "Search > Fracture Object & Add -> Fracture Helper Objects",
"description": "Fractured Object, Bomb, Projectile, Recorder",
"warning": "",
diff --git a/object_fracture/fracture_ops.py b/object_fracture/fracture_ops.py
index 383d93d4..0cf225d7 100644
--- a/object_fracture/fracture_ops.py
+++ b/object_fracture/fracture_ops.py
@@ -69,9 +69,6 @@ def create_cutter(context, crack_type, scale, roughness):
False, False, False, False,
False, False, False, False,
False, False, False, False,
- False, False, False, False,
- False, False, False, False,
- False, False, False, False,
False, False, False, False))
bpy.ops.object.editmode_toggle()
@@ -161,7 +158,7 @@ def getIslands(shard):
bpy.ops.object.select_all(action='DESELECT')
bpy.context.scene.objects.active = shard
shard.select = True
- bpy.ops.object.duplicate(linked=False, mode=1)
+ bpy.ops.object.duplicate(linked=False, mode='DUMMY')
a = bpy.context.scene.objects.active
sm = a.data
print (a.name)
@@ -231,8 +228,11 @@ def boolop(ob, cutter, op):
fault = 1
#print ('boolop: sizeerror')
- elif min(nmesh.edge_face_count) < 2: # Manifold check
- fault = 1
+ # This checks whether returned shards are non-manifold.
+ # Problem is, if org mesh is non-manifold, it will always fail (e.g. with Suzanne).
+ # And disabling it does not seem to cause any problem…
+# elif min(nmesh.edge_face_count) < 2: # Manifold check
+# fault = 1
if not fault:
new_shards = getIslands(new_shard)
@@ -407,25 +407,31 @@ class FractureGroup(bpy.types.Operator):
bl_options = {'REGISTER', 'UNDO'}
exe = BoolProperty(name="Execute",
- description="If it shall actually run, for optimal performance...",
- default=False)
+ description="If it shall actually run, for optimal performance...",
+ default=False)
- e = []
- for i, g in enumerate(bpy.data.groups):
- e.append((g.name, g.name, ''))
+ group = StringProperty(name="Group",
+ description="Specify the group used for fracturing")
- group = EnumProperty(name='Group (hit F8 to refresh list)',
- items=e,
- description='Specify the group used for fracturing')
+# e = []
+# for i, g in enumerate(bpy.data.groups):
+# e.append((g.name, g.name, ''))
+# group = EnumProperty(name='Group (hit F8 to refresh list)',
+# items=e,
+# description='Specify the group used for fracturing')
def execute(self, context):
#getIslands(context.object)
- if self.exe:
+ if self.exe and self.group:
fracture_group(context, self.group)
return {'FINISHED'}
+ def draw(self, context):
+ layout = self.layout
+ layout.prop(self, "exe")
+ layout.prop_search(self, "group", bpy.data, "groups")
#####################################################################
# Import Functions