Changeset View
Changeset View
Standalone View
Standalone View
release/scripts/startup/bl_ui/properties_physics_softbody.py
| Show All 22 Lines | class PhysicButtonsPanel: | ||||
| @classmethod | @classmethod | ||||
| def poll(cls, context): | def poll(cls, context): | ||||
| ob = context.object | ob = context.object | ||||
| return ob and ob.type in COMPAT_OB_TYPES and context.engine in cls.COMPAT_ENGINES and context.soft_body | return ob and ob.type in COMPAT_OB_TYPES and context.engine in cls.COMPAT_ENGINES and context.soft_body | ||||
| class PHYSICS_PT_softbody(PhysicButtonsPanel, Panel): | class PHYSICS_PT_softbody(PhysicButtonsPanel, Panel): | ||||
| bl_label = "Soft Body" | bl_label = "Soft Body" | ||||
| COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT', 'BLENDER_WORKBENCH'} | COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT', 'BLENDER_WORKBENCH','BLENDER_WORKBENCH_NEXT'} | ||||
| def draw(self, context): | def draw(self, context): | ||||
| layout = self.layout | layout = self.layout | ||||
| layout.use_property_split = True | layout.use_property_split = True | ||||
| md = context.soft_body | md = context.soft_body | ||||
| softbody = md.settings | softbody = md.settings | ||||
| layout.prop(softbody, "collision_collection") | layout.prop(softbody, "collision_collection") | ||||
| class PHYSICS_PT_softbody_object(PhysicButtonsPanel, Panel): | class PHYSICS_PT_softbody_object(PhysicButtonsPanel, Panel): | ||||
| bl_label = "Object" | bl_label = "Object" | ||||
| bl_parent_id = 'PHYSICS_PT_softbody' | bl_parent_id = 'PHYSICS_PT_softbody' | ||||
| bl_options = {'DEFAULT_CLOSED'} | bl_options = {'DEFAULT_CLOSED'} | ||||
| COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT', 'BLENDER_WORKBENCH'} | COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT', 'BLENDER_WORKBENCH','BLENDER_WORKBENCH_NEXT'} | ||||
| def draw(self, context): | def draw(self, context): | ||||
| layout = self.layout | layout = self.layout | ||||
| layout.use_property_split = True | layout.use_property_split = True | ||||
| md = context.soft_body | md = context.soft_body | ||||
| softbody = md.settings | softbody = md.settings | ||||
| ob = context.object | ob = context.object | ||||
| Show All 11 Lines | def draw(self, context): | ||||
| col.prop_search(softbody, "vertex_group_mass", ob, "vertex_groups", text="Control Point") | col.prop_search(softbody, "vertex_group_mass", ob, "vertex_groups", text="Control Point") | ||||
| class PHYSICS_PT_softbody_simulation(PhysicButtonsPanel, Panel): | class PHYSICS_PT_softbody_simulation(PhysicButtonsPanel, Panel): | ||||
| bl_label = "Simulation" | bl_label = "Simulation" | ||||
| bl_parent_id = 'PHYSICS_PT_softbody' | bl_parent_id = 'PHYSICS_PT_softbody' | ||||
| bl_options = {'DEFAULT_CLOSED'} | bl_options = {'DEFAULT_CLOSED'} | ||||
| COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT', 'BLENDER_WORKBENCH'} | COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT', 'BLENDER_WORKBENCH','BLENDER_WORKBENCH_NEXT'} | ||||
| def draw(self, context): | def draw(self, context): | ||||
| layout = self.layout | layout = self.layout | ||||
| layout.use_property_split = True | layout.use_property_split = True | ||||
| md = context.soft_body | md = context.soft_body | ||||
| softbody = md.settings | softbody = md.settings | ||||
| layout.enabled = softbody_panel_enabled(md) | layout.enabled = softbody_panel_enabled(md) | ||||
| layout.prop(softbody, "speed") | layout.prop(softbody, "speed") | ||||
| class PHYSICS_PT_softbody_cache(PhysicButtonsPanel, Panel): | class PHYSICS_PT_softbody_cache(PhysicButtonsPanel, Panel): | ||||
| bl_label = "Cache" | bl_label = "Cache" | ||||
| bl_parent_id = 'PHYSICS_PT_softbody' | bl_parent_id = 'PHYSICS_PT_softbody' | ||||
| bl_options = {'DEFAULT_CLOSED'} | bl_options = {'DEFAULT_CLOSED'} | ||||
| COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT', 'BLENDER_WORKBENCH'} | COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT', 'BLENDER_WORKBENCH','BLENDER_WORKBENCH_NEXT'} | ||||
| def draw(self, context): | def draw(self, context): | ||||
| md = context.soft_body | md = context.soft_body | ||||
| point_cache_ui(self, md.point_cache, softbody_panel_enabled(md), 'SOFTBODY') | point_cache_ui(self, md.point_cache, softbody_panel_enabled(md), 'SOFTBODY') | ||||
| class PHYSICS_PT_softbody_goal(PhysicButtonsPanel, Panel): | class PHYSICS_PT_softbody_goal(PhysicButtonsPanel, Panel): | ||||
| bl_label = "Goal" | bl_label = "Goal" | ||||
| bl_parent_id = 'PHYSICS_PT_softbody' | bl_parent_id = 'PHYSICS_PT_softbody' | ||||
| bl_options = {'DEFAULT_CLOSED'} | bl_options = {'DEFAULT_CLOSED'} | ||||
| COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT', 'BLENDER_WORKBENCH'} | COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT', 'BLENDER_WORKBENCH','BLENDER_WORKBENCH_NEXT'} | ||||
| def draw_header(self, context): | def draw_header(self, context): | ||||
| softbody = context.soft_body.settings | softbody = context.soft_body.settings | ||||
| self.layout.active = softbody_panel_enabled(context.soft_body) | self.layout.active = softbody_panel_enabled(context.soft_body) | ||||
| self.layout.prop(softbody, "use_goal", text="") | self.layout.prop(softbody, "use_goal", text="") | ||||
| def draw(self, context): | def draw(self, context): | ||||
| layout = self.layout | layout = self.layout | ||||
| layout.use_property_split = True | layout.use_property_split = True | ||||
| md = context.soft_body | md = context.soft_body | ||||
| softbody = md.settings | softbody = md.settings | ||||
| ob = context.object | ob = context.object | ||||
| layout.active = softbody.use_goal and softbody_panel_enabled(md) | layout.active = softbody.use_goal and softbody_panel_enabled(md) | ||||
| layout.prop_search(softbody, "vertex_group_goal", ob, "vertex_groups", text="Vertex Group") | layout.prop_search(softbody, "vertex_group_goal", ob, "vertex_groups", text="Vertex Group") | ||||
| class PHYSICS_PT_softbody_goal_strengths(PhysicButtonsPanel, Panel): | class PHYSICS_PT_softbody_goal_strengths(PhysicButtonsPanel, Panel): | ||||
| bl_label = "Strengths" | bl_label = "Strengths" | ||||
| bl_parent_id = 'PHYSICS_PT_softbody_goal' | bl_parent_id = 'PHYSICS_PT_softbody_goal' | ||||
| bl_options = {'DEFAULT_CLOSED'} | bl_options = {'DEFAULT_CLOSED'} | ||||
| COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT', 'BLENDER_WORKBENCH'} | COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT', 'BLENDER_WORKBENCH','BLENDER_WORKBENCH_NEXT'} | ||||
| def draw(self, context): | def draw(self, context): | ||||
| layout = self.layout | layout = self.layout | ||||
| layout.use_property_split = True | layout.use_property_split = True | ||||
| md = context.soft_body | md = context.soft_body | ||||
| softbody = md.settings | softbody = md.settings | ||||
| Show All 9 Lines | def draw(self, context): | ||||
| col.prop(softbody, "goal_min", text="Min") | col.prop(softbody, "goal_min", text="Min") | ||||
| col.prop(softbody, "goal_max", text="Max") | col.prop(softbody, "goal_max", text="Max") | ||||
| class PHYSICS_PT_softbody_goal_settings(PhysicButtonsPanel, Panel): | class PHYSICS_PT_softbody_goal_settings(PhysicButtonsPanel, Panel): | ||||
| bl_label = "Settings" | bl_label = "Settings" | ||||
| bl_parent_id = 'PHYSICS_PT_softbody_goal' | bl_parent_id = 'PHYSICS_PT_softbody_goal' | ||||
| bl_options = {'DEFAULT_CLOSED'} | bl_options = {'DEFAULT_CLOSED'} | ||||
| COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT', 'BLENDER_WORKBENCH'} | COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT', 'BLENDER_WORKBENCH','BLENDER_WORKBENCH_NEXT'} | ||||
| def draw(self, context): | def draw(self, context): | ||||
| layout = self.layout | layout = self.layout | ||||
| layout.use_property_split = True | layout.use_property_split = True | ||||
| md = context.soft_body | md = context.soft_body | ||||
| softbody = md.settings | softbody = md.settings | ||||
| layout.active = softbody.use_goal and softbody_panel_enabled(md) | layout.active = softbody.use_goal and softbody_panel_enabled(md) | ||||
| flow = layout.grid_flow(row_major=True, columns=0, even_columns=True, even_rows=False, align=True) | flow = layout.grid_flow(row_major=True, columns=0, even_columns=True, even_rows=False, align=True) | ||||
| col = flow.column() | col = flow.column() | ||||
| col.prop(softbody, "goal_spring", text="Stiffness") | col.prop(softbody, "goal_spring", text="Stiffness") | ||||
| col = flow.column() | col = flow.column() | ||||
| col.prop(softbody, "goal_friction", text="Damping") | col.prop(softbody, "goal_friction", text="Damping") | ||||
| class PHYSICS_PT_softbody_edge(PhysicButtonsPanel, Panel): | class PHYSICS_PT_softbody_edge(PhysicButtonsPanel, Panel): | ||||
| bl_label = "Edges" | bl_label = "Edges" | ||||
| bl_parent_id = 'PHYSICS_PT_softbody' | bl_parent_id = 'PHYSICS_PT_softbody' | ||||
| bl_options = {'DEFAULT_CLOSED'} | bl_options = {'DEFAULT_CLOSED'} | ||||
| COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT', 'BLENDER_WORKBENCH'} | COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT', 'BLENDER_WORKBENCH','BLENDER_WORKBENCH_NEXT'} | ||||
| def draw_header(self, context): | def draw_header(self, context): | ||||
| softbody = context.soft_body.settings | softbody = context.soft_body.settings | ||||
| self.layout.active = softbody_panel_enabled(context.soft_body) | self.layout.active = softbody_panel_enabled(context.soft_body) | ||||
| self.layout.prop(softbody, "use_edges", text="") | self.layout.prop(softbody, "use_edges", text="") | ||||
| def draw(self, context): | def draw(self, context): | ||||
| Show All 34 Lines | def draw(self, context): | ||||
| col.prop(softbody, "use_edge_collision", text="Edge", toggle=False) | col.prop(softbody, "use_edge_collision", text="Edge", toggle=False) | ||||
| col.prop(softbody, "use_face_collision", text="Face", toggle=False) | col.prop(softbody, "use_face_collision", text="Face", toggle=False) | ||||
| class PHYSICS_PT_softbody_edge_aerodynamics(PhysicButtonsPanel, Panel): | class PHYSICS_PT_softbody_edge_aerodynamics(PhysicButtonsPanel, Panel): | ||||
| bl_label = "Aerodynamics" | bl_label = "Aerodynamics" | ||||
| bl_parent_id = 'PHYSICS_PT_softbody_edge' | bl_parent_id = 'PHYSICS_PT_softbody_edge' | ||||
| bl_options = {'DEFAULT_CLOSED'} | bl_options = {'DEFAULT_CLOSED'} | ||||
| COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT', 'BLENDER_WORKBENCH'} | COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT', 'BLENDER_WORKBENCH','BLENDER_WORKBENCH_NEXT'} | ||||
| def draw(self, context): | def draw(self, context): | ||||
| layout = self.layout | layout = self.layout | ||||
| layout.use_property_split = True | layout.use_property_split = True | ||||
| flow = layout.grid_flow(row_major=True, columns=0, even_columns=True, even_rows=False, align=True) | flow = layout.grid_flow(row_major=True, columns=0, even_columns=True, even_rows=False, align=True) | ||||
| md = context.soft_body | md = context.soft_body | ||||
| softbody = md.settings | softbody = md.settings | ||||
| flow.active = softbody.use_edges and softbody_panel_enabled(md) | flow.active = softbody.use_edges and softbody_panel_enabled(md) | ||||
| col = flow.column() | col = flow.column() | ||||
| col.prop(softbody, "aerodynamics_type", text="Type") | col.prop(softbody, "aerodynamics_type", text="Type") | ||||
| col = flow.column() | col = flow.column() | ||||
| col.prop(softbody, "aero", text="Factor") | col.prop(softbody, "aero", text="Factor") | ||||
| class PHYSICS_PT_softbody_edge_stiffness(PhysicButtonsPanel, Panel): | class PHYSICS_PT_softbody_edge_stiffness(PhysicButtonsPanel, Panel): | ||||
| bl_label = "Stiffness" | bl_label = "Stiffness" | ||||
| bl_parent_id = 'PHYSICS_PT_softbody_edge' | bl_parent_id = 'PHYSICS_PT_softbody_edge' | ||||
| bl_options = {'DEFAULT_CLOSED'} | bl_options = {'DEFAULT_CLOSED'} | ||||
| COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT', 'BLENDER_WORKBENCH'} | COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT', 'BLENDER_WORKBENCH','BLENDER_WORKBENCH_NEXT'} | ||||
| def draw_header(self, context): | def draw_header(self, context): | ||||
| softbody = context.soft_body.settings | softbody = context.soft_body.settings | ||||
| self.layout.active = softbody_panel_enabled(context.soft_body) | self.layout.active = softbody_panel_enabled(context.soft_body) | ||||
| self.layout.prop(softbody, "use_stiff_quads", text="") | self.layout.prop(softbody, "use_stiff_quads", text="") | ||||
| def draw(self, context): | def draw(self, context): | ||||
| layout = self.layout | layout = self.layout | ||||
| layout.use_property_split = True | layout.use_property_split = True | ||||
| md = context.soft_body | md = context.soft_body | ||||
| softbody = md.settings | softbody = md.settings | ||||
| layout.active = softbody.use_edges and softbody.use_stiff_quads and softbody_panel_enabled(md) | layout.active = softbody.use_edges and softbody.use_stiff_quads and softbody_panel_enabled(md) | ||||
| layout.prop(softbody, "shear") | layout.prop(softbody, "shear") | ||||
| class PHYSICS_PT_softbody_collision(PhysicButtonsPanel, Panel): | class PHYSICS_PT_softbody_collision(PhysicButtonsPanel, Panel): | ||||
| bl_label = "Self Collision" | bl_label = "Self Collision" | ||||
| bl_parent_id = 'PHYSICS_PT_softbody' | bl_parent_id = 'PHYSICS_PT_softbody' | ||||
| bl_options = {'DEFAULT_CLOSED'} | bl_options = {'DEFAULT_CLOSED'} | ||||
| COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT', 'BLENDER_WORKBENCH'} | COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT', 'BLENDER_WORKBENCH','BLENDER_WORKBENCH_NEXT'} | ||||
| def draw_header(self, context): | def draw_header(self, context): | ||||
| softbody = context.soft_body.settings | softbody = context.soft_body.settings | ||||
| self.layout.active = softbody_panel_enabled(context.soft_body) | self.layout.active = softbody_panel_enabled(context.soft_body) | ||||
| self.layout.prop(softbody, "use_self_collision", text="") | self.layout.prop(softbody, "use_self_collision", text="") | ||||
| def draw(self, context): | def draw(self, context): | ||||
| Show All 18 Lines | def draw(self, context): | ||||
| col.prop(softbody, "ball_stiff", text="Stiffness") | col.prop(softbody, "ball_stiff", text="Stiffness") | ||||
| col.prop(softbody, "ball_damp", text="Dampening") | col.prop(softbody, "ball_damp", text="Dampening") | ||||
| class PHYSICS_PT_softbody_solver(PhysicButtonsPanel, Panel): | class PHYSICS_PT_softbody_solver(PhysicButtonsPanel, Panel): | ||||
| bl_label = "Solver" | bl_label = "Solver" | ||||
| bl_parent_id = 'PHYSICS_PT_softbody' | bl_parent_id = 'PHYSICS_PT_softbody' | ||||
| bl_options = {'DEFAULT_CLOSED'} | bl_options = {'DEFAULT_CLOSED'} | ||||
| COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT', 'BLENDER_WORKBENCH'} | COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT', 'BLENDER_WORKBENCH','BLENDER_WORKBENCH_NEXT'} | ||||
| def draw(self, context): | def draw(self, context): | ||||
| layout = self.layout | layout = self.layout | ||||
| layout.use_property_split = True | layout.use_property_split = True | ||||
| md = context.soft_body | md = context.soft_body | ||||
| softbody = md.settings | softbody = md.settings | ||||
| layout.active = softbody_panel_enabled(md) | layout.active = softbody_panel_enabled(md) | ||||
| flow = layout.grid_flow(row_major=True, columns=0, even_columns=True, even_rows=False, align=True) | flow = layout.grid_flow(row_major=True, columns=0, even_columns=True, even_rows=False, align=True) | ||||
| col = flow.column(align=True) | col = flow.column(align=True) | ||||
| col.prop(softbody, "step_min", text="Step Size Min") | col.prop(softbody, "step_min", text="Step Size Min") | ||||
| col.prop(softbody, "step_max", text="Max") | col.prop(softbody, "step_max", text="Max") | ||||
| col = flow.column() | col = flow.column() | ||||
| col.prop(softbody, "use_auto_step", text="Auto-Step") | col.prop(softbody, "use_auto_step", text="Auto-Step") | ||||
| col.prop(softbody, "error_threshold") | col.prop(softbody, "error_threshold") | ||||
| class PHYSICS_PT_softbody_solver_diagnostics(PhysicButtonsPanel, Panel): | class PHYSICS_PT_softbody_solver_diagnostics(PhysicButtonsPanel, Panel): | ||||
| bl_label = "Diagnostics" | bl_label = "Diagnostics" | ||||
| bl_parent_id = 'PHYSICS_PT_softbody_solver' | bl_parent_id = 'PHYSICS_PT_softbody_solver' | ||||
| bl_options = {'DEFAULT_CLOSED'} | bl_options = {'DEFAULT_CLOSED'} | ||||
| COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT', 'BLENDER_WORKBENCH'} | COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT', 'BLENDER_WORKBENCH','BLENDER_WORKBENCH_NEXT'} | ||||
| def draw(self, context): | def draw(self, context): | ||||
| layout = self.layout | layout = self.layout | ||||
| layout.use_property_split = True | layout.use_property_split = True | ||||
| md = context.soft_body | md = context.soft_body | ||||
| softbody = md.settings | softbody = md.settings | ||||
| layout.active = softbody_panel_enabled(md) | layout.active = softbody_panel_enabled(md) | ||||
| layout.prop(softbody, "use_diagnose") | layout.prop(softbody, "use_diagnose") | ||||
| layout.prop(softbody, "use_estimate_matrix") | layout.prop(softbody, "use_estimate_matrix") | ||||
| class PHYSICS_PT_softbody_solver_helpers(PhysicButtonsPanel, Panel): | class PHYSICS_PT_softbody_solver_helpers(PhysicButtonsPanel, Panel): | ||||
| bl_label = "Helpers" | bl_label = "Helpers" | ||||
| bl_parent_id = 'PHYSICS_PT_softbody_solver' | bl_parent_id = 'PHYSICS_PT_softbody_solver' | ||||
| bl_options = {'DEFAULT_CLOSED'} | bl_options = {'DEFAULT_CLOSED'} | ||||
| COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT', 'BLENDER_WORKBENCH'} | COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT', 'BLENDER_WORKBENCH','BLENDER_WORKBENCH_NEXT'} | ||||
| def draw(self, context): | def draw(self, context): | ||||
| layout = self.layout | layout = self.layout | ||||
| layout.use_property_split = True | layout.use_property_split = True | ||||
| md = context.soft_body | md = context.soft_body | ||||
| softbody = md.settings | softbody = md.settings | ||||
| layout.active = softbody_panel_enabled(md) | layout.active = softbody_panel_enabled(md) | ||||
| flow = layout.grid_flow(row_major=True, columns=0, even_columns=True, even_rows=False, align=True) | flow = layout.grid_flow(row_major=True, columns=0, even_columns=True, even_rows=False, align=True) | ||||
| col = flow.column() | col = flow.column() | ||||
| col.prop(softbody, "choke") | col.prop(softbody, "choke") | ||||
| col = flow.column() | col = flow.column() | ||||
| col.prop(softbody, "fuzzy") | col.prop(softbody, "fuzzy") | ||||
| class PHYSICS_PT_softbody_field_weights(PhysicButtonsPanel, Panel): | class PHYSICS_PT_softbody_field_weights(PhysicButtonsPanel, Panel): | ||||
| bl_label = "Field Weights" | bl_label = "Field Weights" | ||||
| bl_parent_id = 'PHYSICS_PT_softbody' | bl_parent_id = 'PHYSICS_PT_softbody' | ||||
| bl_options = {'DEFAULT_CLOSED'} | bl_options = {'DEFAULT_CLOSED'} | ||||
| COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT', 'BLENDER_WORKBENCH'} | COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT', 'BLENDER_WORKBENCH','BLENDER_WORKBENCH_NEXT'} | ||||
| def draw(self, context): | def draw(self, context): | ||||
| md = context.soft_body | md = context.soft_body | ||||
| softbody = md.settings | softbody = md.settings | ||||
| effector_weights_ui(self, softbody.effector_weights, 'SOFTBODY') | effector_weights_ui(self, softbody.effector_weights, 'SOFTBODY') | ||||
| Show All 23 Lines | |||||