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:
Thomas Dinges
2013-01-23 11:40:35 +00:00
parent 5412d00310
commit be21034ae4
3 changed files with 155 additions and 165 deletions

View File

@@ -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")

View File

@@ -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__)

View File

@@ -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):