Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDalai Felinto <dfelinto@gmail.com>2011-02-27 12:21:13 +0300
committerDalai Felinto <dfelinto@gmail.com>2011-02-27 12:21:13 +0300
commitac1b08a9281e7a93064455b89a36715f094da2b0 (patch)
tree03529091ed4094cb13819d15608719ec16f816f8 /release
parent2e5eb4152262adfc382860073dc5e73ced187e35 (diff)
BGE patch: [#26223] Some RigidBody joints fixes (ui angles, conetwist/hinge limits etc) by Juha Mäki-Kanto + ui changes pour moi
From the tracker::: Issues fixed: - ConeTwist-constraint's params weren't making it to the CcdPhysicsEnvironment, also added Hinge's params. - UI wasn't using angles where applicable. - btHingeConstraint's constructor can create frame-matrices which don't align so the hinge doesn's start at 0 degree tilt. This is an issue when setting limits. Changes: - UI: Hinge limits can be set (and disabled). - UI: ConeTwist only has max-limits and only the twistX can be disabled - PyApi via rna_constraint.c: added the functions limit_xyz_min, limit_xyz_max (for 6dof), limit_angle_xyz_min, limit_angle_xyz_max (for 6dof), limit_angle_x_min, limit_angle_x_max (for hinge). - PyApi: dropped python-function limit_cone_min. .:. Extra: UI Changes: - renamed "RigidBody Joint" to "Rigid Boidy Joint" - reorganized UI to conform with other parameters (e.g. Limit Rot) - added dis/active all over the place :)
Diffstat (limited to 'release')
-rw-r--r--release/scripts/ui/properties_object_constraint.py84
1 files changed, 69 insertions, 15 deletions
diff --git a/release/scripts/ui/properties_object_constraint.py b/release/scripts/ui/properties_object_constraint.py
index ad6c0630289..6034fb9e51e 100644
--- a/release/scripts/ui/properties_object_constraint.py
+++ b/release/scripts/ui/properties_object_constraint.py
@@ -535,32 +535,86 @@ class ConstraintButtonsPanel():
layout.label(text="Limits:")
split = layout.split()
- col = split.column(align=True)
- col.prop(con, "use_angular_limit_x", text="Angular X")
- col.prop(con, "use_angular_limit_y", text="Angular Y")
- col.prop(con, "use_angular_limit_z", text="Angular Z")
+ col = split.column()
+ col.prop(con, "use_angular_limit_x", text="Angle X")
+ subcol = col.column()
+ subcol.active =con.use_angular_limit_x
+ subcol.prop(con, "limit_angle_max_x", text="")
col = split.column()
- col.prop(con, "limit_cone_min", text="")
+ col.prop(con, "use_angular_limit_y", text="Angle Y")
+ subcol = col.column()
+ subcol.active =con.use_angular_limit_y
+ subcol.prop(con, "limit_angle_max_y", text="")
+
col = split.column()
- col.prop(con, "limit_cone_max", text="")
+ col.prop(con, "use_angular_limit_z", text="Angle Z")
+ subcol = col.column()
+ subcol.active =con.use_angular_limit_z
+ subcol.prop(con, "limit_angle_max_z", text="")
elif con.pivot_type == 'GENERIC_6_DOF':
layout.label(text="Limits:")
split = layout.split()
-
+
col = split.column(align=True)
col.prop(con, "use_limit_x", text="X")
+ sub = col.column()
+ sub.active = con.use_limit_x
+ sub.prop(con, "limit_min_x", text="Min")
+ sub.prop(con, "limit_max_x", text="Max")
+
+ col = split.column(align=True)
col.prop(con, "use_limit_y", text="Y")
+ sub = col.column()
+ sub.active = con.use_limit_y
+ sub.prop(con, "limit_min_y", text="Min")
+ sub.prop(con, "limit_max_y", text="Max")
+
+ col = split.column(align=True)
col.prop(con, "use_limit_z", text="Z")
- col.prop(con, "use_angular_limit_x", text="Angular X")
- col.prop(con, "use_angular_limit_y", text="Angular Y")
- col.prop(con, "use_angular_limit_z", text="Angular Z")
+ sub = col.column()
+ sub.active = con.use_limit_z
+ sub.prop(con, "limit_min_z", text="Min")
+ sub.prop(con, "limit_max_z", text="Max")
+
+ split = layout.split()
+
+ col = split.column(align=True)
+ col.prop(con, "use_angular_limit_x", text="Angle X")
+ sub = col.column()
+ sub.active = con.use_angular_limit_x
+ sub.prop(con, "limit_angle_min_x", text="Min")
+ sub.prop(con, "limit_angle_max_x", text="Max")
+
+ col = split.column(align=True)
+ col.prop(con, "use_angular_limit_y", text="Angle Y")
+ sub = col.column()
+ sub.active = con.use_angular_limit_y
+ sub.prop(con, "limit_angle_min_y", text="Min")
+ sub.prop(con, "limit_angle_max_y", text="Max")
+
+ col = split.column(align=True)
+ col.prop(con, "use_angular_limit_z", text="Angle Z")
+ sub = col.column()
+ sub.active = con.use_angular_limit_z
+ sub.prop(con, "limit_angle_min_z", text="Min")
+ sub.prop(con, "limit_angle_max_z", text="Max")
- col = split.column()
- col.prop(con, "limit_generic_min", text="")
- col = split.column()
- col.prop(con, "limit_generic_max", text="")
+ elif con.pivot_type == 'HINGE':
+ layout.label(text="Limits:")
+ split = layout.split()
+
+ row = split.row(align=True)
+ col = row.column()
+ col.prop(con, "use_angular_limit_x", text="Angle X")
+
+ col = row.column()
+ col.active = con.use_angular_limit_x
+ col.prop(con, "limit_angle_min_x", text="Min")
+ col = row.column()
+ col.active = con.use_angular_limit_x
+ col.prop(con, "limit_angle_max_x", text="Max")
def CLAMP_TO(self, context, layout, con):
self.target_template(layout, con)
@@ -736,4 +790,4 @@ def unregister():
bpy.utils.unregister_module(__name__)
if __name__ == "__main__":
- register()
+ register() \ No newline at end of file