[Bf-extensions-cvs] [fffaf5d2] master: object_fracture_cell: return to release: T61901 T63750 f7c91d3382ea

meta-androcto noreply at git.blender.org
Mon Jul 1 11:30:18 CEST 2019


Commit: fffaf5d2759d38d4166f608eab8871fcd59a7e11
Author: meta-androcto
Date:   Mon Jul 1 19:29:56 2019 +1000
Branches: master
https://developer.blender.org/rBAfffaf5d2759d38d4166f608eab8871fcd59a7e11

object_fracture_cell: return to release: T61901 T63750 f7c91d3382ea

===================================================================

A	object_fracture_cell/__init__.py
A	object_fracture_cell/operator.py
A	object_fracture_cell/process/cell_calc.py
A	object_fracture_cell/process/cell_functions.py
A	object_fracture_cell/process/cell_main.py
A	object_fracture_cell/process/crack_functions.py
A	object_fracture_cell/process/material_functions.py
A	object_fracture_cell/process/materials/materials1.blend
A	object_fracture_cell/utilities.py

===================================================================

diff --git a/object_fracture_cell/__init__.py b/object_fracture_cell/__init__.py
new file mode 100644
index 00000000..d7adc80f
--- /dev/null
+++ b/object_fracture_cell/__init__.py
@@ -0,0 +1,420 @@
+# ##### BEGIN GPL LICENSE BLOCK #####
+#
+#  This program is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU General Public License
+#  as published by the Free Software Foundation; either version 2
+#  of the License, or (at your option) any later version.
+#
+#  This program is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU General Public License for more details.
+#
+#  You should have received a copy of the GNU General Public License
+#  along with this program; if not, write to the Free Software Foundation,
+#  Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# ##### END GPL LICENSE BLOCK #####
+
+bl_info = {
+    "name": "Cell Fracture",
+    "author": "ideasman42, phymec, Sergey Sharybin, Nobuyuki Hirakata",
+    "version": (1, 0, 1),
+    "blender": (2, 80, 0),
+    "location": "View3D > Sidebar > Transform tab",
+    "description": "Fractured Object, or Cracked Surface",
+    "warning": "Work in Progress",
+    "wiki_url": "http://wiki.blender.org/index.php/Extensions:2.6/Py/"
+                "Scripts/Object/CellFracture",
+    "category": "Object"}
+
+
+if "bpy" in locals():
+    import importlib
+    importlib.reload(operator)
+
+else:
+    from . import operator
+
+import bpy
+from bpy.props import (
+        StringProperty,
+        BoolProperty,
+        IntProperty,
+        FloatProperty,
+        FloatVectorProperty,
+        EnumProperty,
+        BoolVectorProperty,
+        PointerProperty,
+        )
+
+from bpy.types import (
+        Panel,
+        PropertyGroup,
+        )        
+
+
+class FRACTURE_PT_Menu(Panel):
+    bl_idname = 'FRACTURE_PT_Menu'
+    bl_label = "Fracture Cell"
+    bl_space_type = "VIEW_3D"
+    bl_region_type = "UI"
+    bl_category = "Transform"
+    bl_context = 'objectmode'
+    bl_options = {"DEFAULT_CLOSED"}
+    
+    def draw(self, context):
+        # Show pop-upped menu when the button is hit.
+        layout = self.layout
+        #layout.label(text="Cell Fracture:")
+        layout.operator(operator.FRACTURE_OT_Cell.bl_idname,
+                    text="1. Cell Fracture")       
+        layout.operator(operator.FRACTURE_OT_Crack.bl_idname,
+                    text="2. Cell to Crack")
+        
+        material_props = context.window_manager.fracture_material_props
+        layout.separator()
+        box = layout.box()
+        col = box.column()
+        row = col.row(align=True)
+        row.label(text="Material Preset:")
+        '''
+        row_sub = row.row()
+        row_sub.prop(material_props, "material_lib_name", text="",
+                     toggle=True, icon="LONGDISPLAY")
+        '''
+        row = box.row()
+        row.prop(material_props, "material_preset", text="")
+
+        row = box.row()
+        row.operator(operator.FRACTURE_OT_Material.bl_idname, icon="MATERIAL_DATA",
+                    text="Append Material")       
+
+
+class FractureCellProperties(PropertyGroup):              
+    # -------------------------------------------------------------------------
+    # Source Options
+    source_vert_own: IntProperty(
+            name="Own Verts",
+            description="Use own vertices",
+            min=0, max=2000,
+            default=100,
+            )
+    source_vert_child: IntProperty(
+            name="Child Verts",
+            description="Use child object vertices",
+            min=0, max=2000,
+            default=0,
+            )
+    source_particle_own: IntProperty(
+            name="Own Particles",
+            description="All particle systems of the source object",
+            min=0, max=2000,
+            default=0,
+            )
+    source_particle_child: IntProperty(
+            name="Child Particles",
+            description="All particle systems of the child objects",
+            min=0, max=2000,
+            default=0,
+            )
+    source_pencil: IntProperty(
+            name="Annotation Pencil",
+            description="Annotation Grease Pencil",
+            min=0, max=2000,
+            default=0,
+            )
+    source_random: IntProperty(
+            name="Random",
+            description="Random seed position",
+            min=0, max=2000,
+            default=0,
+            )
+    '''        
+    source_limit: IntProperty(
+            name="Source Limit",
+            description="Limit the number of input points, 0 for unlimited",
+            min=0, max=5000,
+            default=100,
+            )
+    '''    
+    # -------------------------------------------------------------------------
+    # Transform 
+    source_noise: FloatProperty(
+            name="Noise",
+            description="Randomize point distribution",
+            min=0.0, max=1.0,
+            default=0.0,
+            )
+    margin: FloatProperty(
+            name="Margin",
+            description="Gaps for the fracture (gives more stable physics)",
+            min=0.0, max=1.0,
+            default=0.001,
+            )
+    cell_scale: FloatVectorProperty(
+            name="Scale",
+            description="Scale Cell Shape",
+            size=3,
+            min=0.0, max=1.0,
+            default=(1.0, 1.0, 1.0),
+            )
+    pre_simplify : FloatProperty(
+            name="Simplify Base Mesh",
+            description="Simplify base mesh before making cell. Lower face size, faster calculation",
+            default=0.00,
+            min=0.00,
+            max=1.00
+            )
+    use_recenter: BoolProperty(
+            name="Recenter",
+            description="Recalculate the center points after splitting",
+            default=True,
+            )
+    use_island_split: BoolProperty(
+            name="Split Islands",
+            description="Split disconnected meshes",
+            default=True,
+            )
+    # -------------------------------------------------------------------------
+    # Recursion
+    recursion: IntProperty(
+            name="Recursion",
+            description="Break shards recursively",
+            min=0, max=2000,
+            default=0,
+            )
+    recursion_source_limit: IntProperty(
+            name="Fracture Each",
+            description="Limit the number of input points, 0 for unlimited (applies to recursion only)",
+            min=2, max=2000, # Oviously, dividing in more than two objects is needed, to avoid no fracture object. 
+            default=8,
+            )
+    recursion_clamp: IntProperty(
+            name="Max Fracture",
+            description="Finish recursion when this number of objects is reached (prevents recursing for extended periods of time), zero disables",
+            min=0, max=10000,
+            default=250,
+            )
+    recursion_chance: FloatProperty(
+            name="Recursion Chance",
+            description="Likelihood of recursion",
+            min=0.0, max=1.0,
+            default=1.00,
+            )
+    recursion_chance_select: EnumProperty(
+            name="Target",
+            items=(('RANDOM', "Random", ""),
+                   ('SIZE_MIN', "Small", "Recursively subdivide smaller objects"),
+                   ('SIZE_MAX', "Big", "Recursively subdivide bigger objects"),
+                   ('CURSOR_MIN', "Cursor Close", "Recursively subdivide objects closer to the cursor"),
+                   ('CURSOR_MAX', "Cursor Far", "Recursively subdivide objects farther from the cursor"),
+                   ),
+            default='SIZE_MIN',
+            )
+    # -------------------------------------------------------------------------
+    # Interior Meshes Options
+    use_smooth_faces: BoolProperty(
+            name="Smooth Faces",
+            description="Smooth Faces of inner side",
+            default=False,
+            )
+    use_sharp_edges: BoolProperty(
+            name="Mark Sharp Edges",
+            description="Set sharp edges when disabled",
+            default=False,
+            )
+    use_sharp_edges_apply: BoolProperty(
+            name="Edge Split Modifier",
+            description="Add edge split modofier for sharp edges",
+            default=False,
+            )
+    use_data_match: BoolProperty(
+            name="Copy Original Data",
+            description="Match original mesh materials and data layers",
+            default=True,
+            )
+    material_index: IntProperty(
+            name="Interior Material Slot",
+            description="Material index for interior faces",
+            default=0,
+            )
+    use_interior_vgroup: BoolProperty(
+            name="Vertex Group",
+            description="Create a vertex group for interior verts",
+            default=False,
+            )
+    # -------------------------------------------------------------------------
+    # Scene Options    
+    use_collection: BoolProperty(
+            name="Use Collection",
+            description="Use collection to organize fracture objects",
+            default=True,
+            )    
+    new_collection: BoolProperty(
+            name="New Collection",
+            description="Make new collection for fracture objects",
+            default=True,
+            )  
+    collection_name: StringProperty(
+            name="Name",
+            description="Collection name.",
+            default="Fracture",
+            )
+    original_hide: BoolProperty(
+            name="Hide Original",
+            description="Hide original object after cell fracture.",
+            default=False,
+            )
+    cell_relocate : BoolProperty(
+            name="Move Beside Original",
+            description="Move cells beside the original object.",
+            default=False,
+            )
+    # -------------------------------------------------------------------------
+    # Custom Property Options    
+    use_mass: BoolProperty(
+        name="Mass",
+        d

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-extensions-cvs mailing list