From 84e919ca4b04e1de55529713951accb0a79eb49e Mon Sep 17 00:00:00 2001 From: Thomas Dinges Date: Mon, 25 May 2009 18:32:28 +0000 Subject: [PATCH] 2.5 Buttons: * Added initial Cloth Modifer panel. Enable a Cloth Modifier to see the panels in the physics tab. --- release/ui/buttons_physic_cloth.py | 114 +++++++++++++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100644 release/ui/buttons_physic_cloth.py diff --git a/release/ui/buttons_physic_cloth.py b/release/ui/buttons_physic_cloth.py new file mode 100644 index 00000000000..37ee6e4d546 --- /dev/null +++ b/release/ui/buttons_physic_cloth.py @@ -0,0 +1,114 @@ + +import bpy + +class PhysicButtonsPanel(bpy.types.Panel): + __space_type__ = "BUTTONS_WINDOW" + __region_type__ = "WINDOW" + __context__ = "physics" + + def cloth_modifier(self, context): + ob = context.active_object + for md in ob.modifiers: + if md.type == 'CLOTH': + return md + + return None + + def poll(self, context): + md = self.cloth_modifier(context) + return (md != None) + +class Physic_PT_cloth(PhysicButtonsPanel): + __idname__ = "Physic_PT_cloth" + __label__ = "Cloth" + + def draw(self, context): + layout = self.layout + md = self.cloth_modifier(context) + cloth = md.settings + + split = layout.split() + + col = split.column() + col.itemR(cloth, "quality", slider=True) + col.itemR(cloth, "gravity") + col.itemR(cloth, "mass") + col.itemR(cloth, "mass_vertex_group", text="Vertex Group") + + col = split.column() + col.itemL(text="Stiffness:") + col.itemR(cloth, "structural_stiffness", text="Structural") + col.itemR(cloth, "bending_stiffness", text="Bending") + col.itemL(text="Damping:") + col.itemR(cloth, "spring_damping", text="Spring") + col.itemR(cloth, "air_damping", text="Air") + + # Disabled for now# + """ + if cloth.mass_vertex_group: + layout.itemL(text="Goal:") + + col = layout.column_flow() + col.itemR(cloth, "goal_default", text="Default") + col.itemR(cloth, "goal_spring", text="Stiffness") + col.itemR(cloth, "goal_friction", text="Friction") + """ + +class Physic_PT_cloth_collision(PhysicButtonsPanel): + __idname__ = "Physic_PT_clothcollision" + __label__ = "Cloth Collision" + + def draw_header(self, context): + layout = self.layout + md = self.cloth_modifier(context) + cloth = md.collision_settings + + layout.itemR(cloth, "enable_collision", text="") + + def draw(self, context): + layout = self.layout + md = self.cloth_modifier(context) + cloth = md.collision_settings + + col = layout.column_flow() + col.itemR(cloth, "collision_quality", slider=True) + col.itemR(cloth, "min_distance", text="MinDistance") + col.itemR(cloth, "friction") + + layout.itemR(cloth, "enable_self_collision", text="Self Collision") + + row = layout.row() + row.itemR(cloth, "self_collision_quality", slider=True) + row.itemR(cloth, "self_min_distance", text="MinDistance") + +class Physic_PT_cloth_stiffness(PhysicButtonsPanel): + __idname__ = "Physic_PT_stiffness" + __label__ = "Cloth Stiffness Scaling" + + def draw_header(self, context): + layout = self.layout + md = self.cloth_modifier(context) + cloth = md.settings + + layout.itemR(cloth, "stiffness_scaling", text="") + + def draw(self, context): + layout = self.layout + md = self.cloth_modifier(context) + cloth = md.settings + + split = layout.split() + + sub = split.column() + sub.itemL(text="Structural Stiffness:") + sub.column().itemR(cloth, "structural_stiffness_vertex_group", text="VGroup") + sub.itemR(cloth, "structural_stiffness_max", text="Max") + + sub = split.column() + sub.itemL(text="Bending Stiffness:") + sub.column().itemR(cloth, "bending_vertex_group", text="VGroup") + sub.itemR(cloth, "bending_stiffness_max", text="Max") + +bpy.types.register(Physic_PT_cloth) +bpy.types.register(Physic_PT_cloth_collision) +bpy.types.register(Physic_PT_cloth_stiffness) \ No newline at end of file