UI / Layout scripts:
* Code cleanup for new Rigid Body panels. * Removed some unneeded split() calls. * Remove redundant check for "ob.rigid_body_constraint" in the draw() function of the "Rigid Body Constraint" panel. The check is already made in the poll.
This commit is contained in:
@@ -50,13 +50,10 @@ class PHYSICS_PT_rigid_body(PHYSICS_PT_rigidbody_panel, Panel):
|
||||
|
||||
if rbo is not None:
|
||||
layout.prop(rbo, "type", text="Type")
|
||||
|
||||
row = layout.row()
|
||||
row.prop(rbo, "kinematic", text="Animated")
|
||||
layout.prop(rbo, "kinematic", text="Animated")
|
||||
|
||||
if rbo.type == 'ACTIVE':
|
||||
col = layout.column()
|
||||
col.prop(rbo, "mass")
|
||||
layout.prop(rbo, "mass")
|
||||
|
||||
|
||||
class PHYSICS_PT_rigid_body_collisions(PHYSICS_PT_rigidbody_panel, Panel):
|
||||
@@ -91,6 +88,7 @@ class PHYSICS_PT_rigid_body_collisions(PHYSICS_PT_rigidbody_panel, Panel):
|
||||
sub = col.column()
|
||||
sub.active = rbo.use_margin
|
||||
sub.prop(rbo, "collision_margin", text="Margin")
|
||||
|
||||
layout.prop(rbo, "collision_groups")
|
||||
|
||||
|
||||
|
||||
@@ -42,174 +42,167 @@ class PHYSICS_PT_rigid_body_constraint(PHYSICS_PT_rigidbody_constraint_panel, Pa
|
||||
ob = context.object
|
||||
rbc = ob.rigid_body_constraint
|
||||
|
||||
if rbc:
|
||||
layout.prop(rbc, "type")
|
||||
layout.prop(rbc, "type")
|
||||
|
||||
split = layout.split()
|
||||
row = layout.row()
|
||||
row.prop(rbc, "enabled")
|
||||
row.prop(rbc, "disable_collisions")
|
||||
|
||||
row = split.row()
|
||||
row.prop(rbc, "enabled")
|
||||
row.prop(rbc, "disable_collisions")
|
||||
layout.prop(rbc, "object1")
|
||||
layout.prop(rbc, "object2")
|
||||
|
||||
split = layout.split()
|
||||
split.prop(rbc, "object1")
|
||||
split = layout.split()
|
||||
split.prop(rbc, "object2")
|
||||
row = layout.row()
|
||||
row.prop(rbc, "use_breaking")
|
||||
sub = row.row()
|
||||
sub.active = rbc.use_breaking
|
||||
sub.prop(rbc, "breaking_threshold", text="Threshold")
|
||||
|
||||
split = layout.split()
|
||||
col = split.row()
|
||||
col.prop(rbc, "use_breaking")
|
||||
sub = col.column()
|
||||
sub.active = rbc.use_breaking
|
||||
sub.prop(rbc, "breaking_threshold", text="Threshold")
|
||||
row = layout.row()
|
||||
row.prop(rbc, "override_solver_iterations", text="Override Iterations")
|
||||
sub = row.row()
|
||||
sub.active = rbc.override_solver_iterations
|
||||
sub.prop(rbc, "num_solver_iterations", text="Iterations")
|
||||
|
||||
split = layout.split()
|
||||
col = split.row()
|
||||
col.prop(rbc, "override_solver_iterations", text="Override Iterations")
|
||||
sub = col.split()
|
||||
sub.active = rbc.override_solver_iterations
|
||||
sub.prop(rbc, "num_solver_iterations", text="Iterations")
|
||||
if rbc.type == 'HINGE':
|
||||
col = layout.column(align=True)
|
||||
col.label("Limits:")
|
||||
|
||||
if rbc.type == 'HINGE':
|
||||
row = col.row()
|
||||
sub = row.row()
|
||||
sub.scale_x = 0.5
|
||||
sub.prop(rbc, "use_limit_ang_z", toggle=True)
|
||||
sub = row.row()
|
||||
sub.active = rbc.use_limit_ang_z
|
||||
sub.prop(rbc, "limit_ang_z_lower", text="Lower")
|
||||
sub.prop(rbc, "limit_ang_z_upper", text="Upper")
|
||||
|
||||
elif rbc.type == 'SLIDER':
|
||||
col = layout.column(align=True)
|
||||
col.label("Limits:")
|
||||
|
||||
row = col.row()
|
||||
sub = row.row()
|
||||
sub.scale_x = 0.5
|
||||
sub.prop(rbc, "use_limit_lin_x", toggle=True)
|
||||
sub = row.row()
|
||||
sub.active = rbc.use_limit_lin_x
|
||||
sub.prop(rbc, "limit_lin_x_lower", text="Lower")
|
||||
sub.prop(rbc, "limit_lin_x_upper", text="Upper")
|
||||
|
||||
elif rbc.type == 'PISTON':
|
||||
col = layout.column(align=True)
|
||||
col.label("Limits:")
|
||||
|
||||
row = col.row()
|
||||
sub = row.row()
|
||||
sub.scale_x = 0.5
|
||||
sub.prop(rbc, "use_limit_lin_x", toggle=True)
|
||||
sub = row.row()
|
||||
sub.active = rbc.use_limit_lin_x
|
||||
sub.prop(rbc, "limit_lin_x_lower", text="Lower")
|
||||
sub.prop(rbc, "limit_lin_x_upper", text="Upper")
|
||||
|
||||
col = layout.column(align=True)
|
||||
|
||||
row = col.row()
|
||||
sub = row.row()
|
||||
sub.scale_x = 0.5
|
||||
sub.prop(rbc, "use_limit_ang_x", toggle=True)
|
||||
sub = row.row()
|
||||
sub.active = rbc.use_limit_ang_x
|
||||
sub.prop(rbc, "limit_ang_x_lower", text="Lower")
|
||||
sub.prop(rbc, "limit_ang_x_upper", text="Upper")
|
||||
|
||||
elif rbc.type in {'GENERIC', 'GENERIC_SPRING'}:
|
||||
col = layout.column(align=True)
|
||||
col.label("Limits:")
|
||||
|
||||
row = col.row()
|
||||
sub = row.row()
|
||||
sub.scale_x = 0.5
|
||||
sub.prop(rbc, "use_limit_lin_x", toggle=True)
|
||||
sub = row.row()
|
||||
sub.active = rbc.use_limit_lin_x
|
||||
sub.prop(rbc, "limit_lin_x_lower", text="Lower")
|
||||
sub.prop(rbc, "limit_lin_x_upper", text="Upper")
|
||||
|
||||
row = col.row()
|
||||
sub = row.row()
|
||||
sub.scale_x = 0.5
|
||||
sub.prop(rbc, "use_limit_lin_y", toggle=True)
|
||||
sub = row.row()
|
||||
sub.active = rbc.use_limit_lin_y
|
||||
sub.prop(rbc, "limit_lin_y_lower", text="Lower")
|
||||
sub.prop(rbc, "limit_lin_y_upper", text="Upper")
|
||||
|
||||
row = col.row()
|
||||
sub = row.row()
|
||||
sub.scale_x = 0.5
|
||||
sub.prop(rbc, "use_limit_lin_z", toggle=True)
|
||||
sub = row.row()
|
||||
sub.active = rbc.use_limit_lin_z
|
||||
sub.prop(rbc, "limit_lin_z_lower", text="Lower")
|
||||
sub.prop(rbc, "limit_lin_z_upper", text="Upper")
|
||||
|
||||
col = layout.column(align=True)
|
||||
|
||||
row = col.row()
|
||||
sub = row.row()
|
||||
sub.scale_x = 0.5
|
||||
sub.prop(rbc, "use_limit_ang_x", toggle=True)
|
||||
sub = row.row()
|
||||
sub.active = rbc.use_limit_ang_x
|
||||
sub.prop(rbc, "limit_ang_x_lower", text="Lower")
|
||||
sub.prop(rbc, "limit_ang_x_upper", text="Upper")
|
||||
|
||||
row = col.row()
|
||||
sub = row.row()
|
||||
sub.scale_x = 0.5
|
||||
sub.prop(rbc, "use_limit_ang_y", toggle=True)
|
||||
sub = row.row()
|
||||
sub.active = rbc.use_limit_ang_y
|
||||
sub.prop(rbc, "limit_ang_y_lower", text="Lower")
|
||||
sub.prop(rbc, "limit_ang_y_upper", text="Upper")
|
||||
|
||||
row = col.row()
|
||||
sub = row.row()
|
||||
sub.scale_x = 0.5
|
||||
sub.prop(rbc, "use_limit_ang_z", toggle=True)
|
||||
sub = row.row()
|
||||
sub.active = rbc.use_limit_ang_z
|
||||
sub.prop(rbc, "limit_ang_z_lower", text="Lower")
|
||||
sub.prop(rbc, "limit_ang_z_upper", text="Upper")
|
||||
|
||||
if rbc.type == 'GENERIC_SPRING':
|
||||
col = layout.column(align=True)
|
||||
col.label("Limits:")
|
||||
col.label("Springs:")
|
||||
|
||||
row = col.row()
|
||||
sub = row.row()
|
||||
sub.scale_x = 0.5
|
||||
sub.prop(rbc, "use_limit_ang_z", toggle=True)
|
||||
sub.scale_x = 0.1
|
||||
sub.prop(rbc, "use_spring_x", toggle=True, text="X")
|
||||
sub = row.row()
|
||||
sub.active = rbc.use_limit_ang_z
|
||||
sub.prop(rbc, "limit_ang_z_lower", text="Lower")
|
||||
sub.prop(rbc, "limit_ang_z_upper", text="Upper")
|
||||
|
||||
elif rbc.type == 'SLIDER':
|
||||
col = layout.column(align=True)
|
||||
col.label("Limits:")
|
||||
sub.active = rbc.use_spring_x
|
||||
sub.prop(rbc, "spring_stiffness_x", text="Stiffness")
|
||||
sub.prop(rbc, "spring_damping_x")
|
||||
|
||||
row = col.row()
|
||||
sub = row.row()
|
||||
sub.scale_x = 0.5
|
||||
sub.prop(rbc, "use_limit_lin_x", toggle=True)
|
||||
sub.scale_x = 0.1
|
||||
sub.prop(rbc, "use_spring_y", toggle=True, text="Y")
|
||||
sub = row.row()
|
||||
sub.active = rbc.use_limit_lin_x
|
||||
sub.prop(rbc, "limit_lin_x_lower", text="Lower")
|
||||
sub.prop(rbc, "limit_lin_x_upper", text="Upper")
|
||||
|
||||
elif rbc.type == 'PISTON':
|
||||
col = layout.column(align=True)
|
||||
col.label("Limits:")
|
||||
sub.active = rbc.use_spring_y
|
||||
sub.prop(rbc, "spring_stiffness_y", text="Stiffness")
|
||||
sub.prop(rbc, "spring_damping_y")
|
||||
|
||||
row = col.row()
|
||||
sub = row.row()
|
||||
sub.scale_x = 0.5
|
||||
sub.prop(rbc, "use_limit_lin_x", toggle=True)
|
||||
sub.scale_x = 0.1
|
||||
sub.prop(rbc, "use_spring_z", toggle=True, text="Z")
|
||||
sub = row.row()
|
||||
sub.active = rbc.use_limit_lin_x
|
||||
sub.prop(rbc, "limit_lin_x_lower", text="Lower")
|
||||
sub.prop(rbc, "limit_lin_x_upper", text="Upper")
|
||||
|
||||
col = layout.column(align=True)
|
||||
|
||||
row = col.row()
|
||||
sub = row.row()
|
||||
sub.scale_x = 0.5
|
||||
sub.prop(rbc, "use_limit_ang_x", toggle=True)
|
||||
sub = row.row()
|
||||
sub.active = rbc.use_limit_ang_x
|
||||
sub.prop(rbc, "limit_ang_x_lower", text="Lower")
|
||||
sub.prop(rbc, "limit_ang_x_upper", text="Upper")
|
||||
|
||||
elif rbc.type in {'GENERIC', 'GENERIC_SPRING'}:
|
||||
col = layout.column(align=True)
|
||||
col.label("Limits:")
|
||||
|
||||
row = col.row()
|
||||
sub = row.row()
|
||||
sub.scale_x = 0.5
|
||||
sub.prop(rbc, "use_limit_lin_x", toggle=True)
|
||||
sub = row.row()
|
||||
sub.active = rbc.use_limit_lin_x
|
||||
sub.prop(rbc, "limit_lin_x_lower", text="Lower")
|
||||
sub.prop(rbc, "limit_lin_x_upper", text="Upper")
|
||||
|
||||
row = col.row()
|
||||
sub = row.row()
|
||||
sub.scale_x = 0.5
|
||||
sub.prop(rbc, "use_limit_lin_y", toggle=True)
|
||||
sub = row.row()
|
||||
sub.active = rbc.use_limit_lin_y
|
||||
sub.prop(rbc, "limit_lin_y_lower", text="Lower")
|
||||
sub.prop(rbc, "limit_lin_y_upper", text="Upper")
|
||||
|
||||
row = col.row()
|
||||
sub = row.row()
|
||||
sub.scale_x = 0.5
|
||||
sub.prop(rbc, "use_limit_lin_z", toggle=True)
|
||||
sub = row.row()
|
||||
sub.active = rbc.use_limit_lin_z
|
||||
sub.prop(rbc, "limit_lin_z_lower", text="Lower")
|
||||
sub.prop(rbc, "limit_lin_z_upper", text="Upper")
|
||||
|
||||
col = layout.column(align=True)
|
||||
|
||||
row = col.row()
|
||||
sub = row.row()
|
||||
sub.scale_x = 0.5
|
||||
sub.prop(rbc, "use_limit_ang_x", toggle=True)
|
||||
sub = row.row()
|
||||
sub.active = rbc.use_limit_ang_x
|
||||
sub.prop(rbc, "limit_ang_x_lower", text="Lower")
|
||||
sub.prop(rbc, "limit_ang_x_upper", text="Upper")
|
||||
|
||||
row = col.row()
|
||||
sub = row.row()
|
||||
sub.scale_x = 0.5
|
||||
sub.prop(rbc, "use_limit_ang_y", toggle=True)
|
||||
sub = row.row()
|
||||
sub.active = rbc.use_limit_ang_y
|
||||
sub.prop(rbc, "limit_ang_y_lower", text="Lower")
|
||||
sub.prop(rbc, "limit_ang_y_upper", text="Upper")
|
||||
|
||||
row = col.row()
|
||||
sub = row.row()
|
||||
sub.scale_x = 0.5
|
||||
sub.prop(rbc, "use_limit_ang_z", toggle=True)
|
||||
sub = row.row()
|
||||
sub.active = rbc.use_limit_ang_z
|
||||
sub.prop(rbc, "limit_ang_z_lower", text="Lower")
|
||||
sub.prop(rbc, "limit_ang_z_upper", text="Upper")
|
||||
|
||||
if rbc.type == 'GENERIC_SPRING':
|
||||
col = layout.column(align=True)
|
||||
col.label("Springs:")
|
||||
|
||||
row = col.row()
|
||||
sub = row.row()
|
||||
sub.scale_x = 0.1
|
||||
sub.prop(rbc, "use_spring_x", toggle=True, text="X")
|
||||
sub = row.row()
|
||||
sub.active = rbc.use_spring_x
|
||||
sub.prop(rbc, "spring_stiffness_x", text="Stiffness")
|
||||
sub.prop(rbc, "spring_damping_x")
|
||||
|
||||
row = col.row()
|
||||
sub = row.row()
|
||||
sub.scale_x = 0.1
|
||||
sub.prop(rbc, "use_spring_y", toggle=True, text="Y")
|
||||
sub = row.row()
|
||||
sub.active = rbc.use_spring_y
|
||||
sub.prop(rbc, "spring_stiffness_y", text="Stiffness")
|
||||
sub.prop(rbc, "spring_damping_y")
|
||||
|
||||
row = col.row()
|
||||
sub = row.row()
|
||||
sub.scale_x = 0.1
|
||||
sub.prop(rbc, "use_spring_z", toggle=True, text="Z")
|
||||
sub = row.row()
|
||||
sub.active = rbc.use_spring_z
|
||||
sub.prop(rbc, "spring_stiffness_z", text="Stiffness")
|
||||
sub.prop(rbc, "spring_damping_z")
|
||||
sub.active = rbc.use_spring_z
|
||||
sub.prop(rbc, "spring_stiffness_z", text="Stiffness")
|
||||
sub.prop(rbc, "spring_damping_z")
|
||||
|
||||
if __name__ == "__main__": # only for live edit.
|
||||
bpy.utils.register_module(__name__)
|
||||
|
||||
@@ -272,25 +272,24 @@ class SCENE_PT_rigid_body_world(SceneButtonsPanel, Panel):
|
||||
if rbw is None:
|
||||
layout.operator("rigidbody.world_add")
|
||||
else:
|
||||
col = layout.column()
|
||||
col.operator("rigidbody.world_remove")
|
||||
layout.operator("rigidbody.world_remove")
|
||||
|
||||
col = layout.column()
|
||||
col.active = rbw.enabled
|
||||
|
||||
colsub = col.column()
|
||||
colsub.prop(rbw, "group")
|
||||
colsub.prop(rbw, "constraints")
|
||||
col = col.column()
|
||||
col.prop(rbw, "group")
|
||||
col.prop(rbw, "constraints")
|
||||
|
||||
split = col.split()
|
||||
|
||||
colsub = split.column()
|
||||
colsub.prop(rbw, "time_scale", text="Speed")
|
||||
colsub.prop(rbw, "use_split_impulse")
|
||||
col = split.column()
|
||||
col.prop(rbw, "time_scale", text="Speed")
|
||||
col.prop(rbw, "use_split_impulse")
|
||||
|
||||
colsub = split.column()
|
||||
colsub.prop(rbw, "steps_per_second", text="Steps Per Second")
|
||||
colsub.prop(rbw, "num_solver_iterations", text="Solver Iterations")
|
||||
col = split.column()
|
||||
col.prop(rbw, "steps_per_second", text="Steps Per Second")
|
||||
col.prop(rbw, "num_solver_iterations", text="Solver Iterations")
|
||||
|
||||
|
||||
class SCENE_PT_rigid_body_cache(SceneButtonsPanel, Panel):
|
||||
|
||||
Reference in New Issue
Block a user