Fix T65670: bone envelope head radius missing from transform panel
Make the transforms section of the properties panel consistent with the transforms section of the side-bar, and to expose some currently hidden BBone properties in the Bendy Bone section. - Object transformations were not consistent with Pose Bone transformations in that they did not use single-column layout. - Even in Pose Bone transformations, the rotation mode option was after Scale. - Edit Bone Transforms panel included "Tail Radius" and "Envelope Deform Distance", neither of which belong there. See T65670. - Expose bbone_x and bbone_z. D5454 by @Mets
This commit is contained in:
@@ -73,36 +73,44 @@ class BONE_PT_transform(BoneButtonsPanel, Panel):
|
|||||||
pchan = ob.pose.bones[bone.name]
|
pchan = ob.pose.bones[bone.name]
|
||||||
col.active = not (bone.parent and bone.use_connect)
|
col.active = not (bone.parent and bone.use_connect)
|
||||||
|
|
||||||
sub = col.row(align=True)
|
row = col.row(align=True)
|
||||||
sub.prop(pchan, "location")
|
row.prop(pchan, "location")
|
||||||
sub.prop(pchan, "lock_location", text="")
|
row.use_property_decorate = False
|
||||||
|
row.prop(pchan, "lock_location", text="", emboss=False, icon='DECORATE_UNLOCKED')
|
||||||
|
|
||||||
col = layout.column()
|
|
||||||
rotation_mode = pchan.rotation_mode
|
rotation_mode = pchan.rotation_mode
|
||||||
if rotation_mode == 'QUATERNION':
|
if rotation_mode == 'QUATERNION':
|
||||||
sub = col.row(align=True)
|
col = layout.column()
|
||||||
sub.prop(pchan, "rotation_quaternion", text="Rotation")
|
row = col.row(align=True)
|
||||||
subsub = sub.column(align=True)
|
row.prop(pchan, "rotation_quaternion", text="Rotation")
|
||||||
subsub.prop(pchan, "lock_rotation_w", text="")
|
sub = row.column(align=True)
|
||||||
subsub.prop(pchan, "lock_rotation", text="")
|
sub.use_property_decorate = False
|
||||||
|
sub.prop(pchan, "lock_rotation_w", text="", emboss=False, icon='DECORATE_UNLOCKED')
|
||||||
|
sub.prop(pchan, "lock_rotation", text="", emboss=False, icon='DECORATE_UNLOCKED')
|
||||||
elif rotation_mode == 'AXIS_ANGLE':
|
elif rotation_mode == 'AXIS_ANGLE':
|
||||||
sub = col.row(align=True)
|
col = layout.column()
|
||||||
sub.prop(pchan, "rotation_axis_angle", text="Rotation")
|
row = col.row(align=True)
|
||||||
subsub = sub.column(align=True)
|
row.prop(pchan, "rotation_axis_angle", text="Rotation")
|
||||||
subsub.prop(pchan, "lock_rotation_w", text="")
|
|
||||||
subsub.prop(pchan, "lock_rotation", text="")
|
sub = row.column(align=True)
|
||||||
|
sub.use_property_decorate = False
|
||||||
|
sub.prop(pchan, "lock_rotation_w", text="", emboss=False, icon='DECORATE_UNLOCKED')
|
||||||
|
sub.prop(pchan, "lock_rotation", text="", emboss=False, icon='DECORATE_UNLOCKED')
|
||||||
else:
|
else:
|
||||||
sub = col.row(align=True)
|
col = layout.column()
|
||||||
sub.prop(pchan, "rotation_euler", text="Rotation")
|
row = col.row(align=True)
|
||||||
sub.prop(pchan, "lock_rotation", text="")
|
row.prop(pchan, "rotation_euler", text="Rotation")
|
||||||
|
row.use_property_decorate = False
|
||||||
|
row.prop(pchan, "lock_rotation", text="", emboss=False, icon='DECORATE_UNLOCKED')
|
||||||
|
row = layout.row(align=True)
|
||||||
|
row.prop(pchan, "rotation_mode", text='Mode')
|
||||||
|
row.label(text="", icon='BLANK1')
|
||||||
|
|
||||||
col = layout.column()
|
col = layout.column()
|
||||||
sub = col.row(align=True)
|
row = col.row(align=True)
|
||||||
sub.prop(pchan, "scale")
|
row.prop(pchan, "scale")
|
||||||
sub.prop(pchan, "lock_scale", text="")
|
row.use_property_decorate = False
|
||||||
|
row.prop(pchan, "lock_scale", text="", emboss=False, icon='DECORATE_UNLOCKED')
|
||||||
col = layout.column()
|
|
||||||
col.prop(pchan, "rotation_mode")
|
|
||||||
|
|
||||||
elif context.edit_bone:
|
elif context.edit_bone:
|
||||||
bone = context.edit_bone
|
bone = context.edit_bone
|
||||||
@@ -114,10 +122,6 @@ class BONE_PT_transform(BoneButtonsPanel, Panel):
|
|||||||
col.prop(bone, "roll")
|
col.prop(bone, "roll")
|
||||||
col.prop(bone, "lock")
|
col.prop(bone, "lock")
|
||||||
|
|
||||||
col = layout.column()
|
|
||||||
col.prop(bone, "tail_radius")
|
|
||||||
col.prop(bone, "envelope_distance")
|
|
||||||
|
|
||||||
|
|
||||||
class BONE_PT_curved(BoneButtonsPanel, Panel):
|
class BONE_PT_curved(BoneButtonsPanel, Panel):
|
||||||
bl_label = "Bendy Bones"
|
bl_label = "Bendy Bones"
|
||||||
@@ -146,6 +150,10 @@ class BONE_PT_curved(BoneButtonsPanel, Panel):
|
|||||||
topcol = layout.column()
|
topcol = layout.column()
|
||||||
topcol.active = bone.bbone_segments > 1
|
topcol.active = bone.bbone_segments > 1
|
||||||
|
|
||||||
|
col = topcol.column(align=True)
|
||||||
|
col.prop(bone, "bbone_x", text="Display Size X")
|
||||||
|
col.prop(bone, "bbone_z", text="Z")
|
||||||
|
|
||||||
col = topcol.column(align=True)
|
col = topcol.column(align=True)
|
||||||
col.prop(bbone, "bbone_curveinx", text="Curve In X")
|
col.prop(bbone, "bbone_curveinx", text="Curve In X")
|
||||||
col.prop(bbone, "bbone_curveiny", text="In Y")
|
col.prop(bbone, "bbone_curveiny", text="In Y")
|
||||||
|
|||||||
@@ -54,11 +54,9 @@ class OBJECT_PT_transform(ObjectButtonsPanel, Panel):
|
|||||||
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=False)
|
|
||||||
|
|
||||||
ob = context.object
|
ob = context.object
|
||||||
|
|
||||||
col = flow.column()
|
col = layout.column()
|
||||||
row = col.row(align=True)
|
row = col.row(align=True)
|
||||||
row.prop(ob, "location")
|
row.prop(ob, "location")
|
||||||
row.use_property_decorate = False
|
row.use_property_decorate = False
|
||||||
@@ -66,7 +64,7 @@ class OBJECT_PT_transform(ObjectButtonsPanel, Panel):
|
|||||||
|
|
||||||
rotation_mode = ob.rotation_mode
|
rotation_mode = ob.rotation_mode
|
||||||
if rotation_mode == 'QUATERNION':
|
if rotation_mode == 'QUATERNION':
|
||||||
col = flow.column()
|
col = layout.column()
|
||||||
row = col.row(align=True)
|
row = col.row(align=True)
|
||||||
row.prop(ob, "rotation_quaternion", text="Rotation")
|
row.prop(ob, "rotation_quaternion", text="Rotation")
|
||||||
sub = row.column(align=True)
|
sub = row.column(align=True)
|
||||||
@@ -74,7 +72,7 @@ class OBJECT_PT_transform(ObjectButtonsPanel, Panel):
|
|||||||
sub.prop(ob, "lock_rotation_w", text="", emboss=False, icon='DECORATE_UNLOCKED')
|
sub.prop(ob, "lock_rotation_w", text="", emboss=False, icon='DECORATE_UNLOCKED')
|
||||||
sub.prop(ob, "lock_rotation", text="", emboss=False, icon='DECORATE_UNLOCKED')
|
sub.prop(ob, "lock_rotation", text="", emboss=False, icon='DECORATE_UNLOCKED')
|
||||||
elif rotation_mode == 'AXIS_ANGLE':
|
elif rotation_mode == 'AXIS_ANGLE':
|
||||||
col = flow.column()
|
col = layout.column()
|
||||||
row = col.row(align=True)
|
row = col.row(align=True)
|
||||||
row.prop(ob, "rotation_axis_angle", text="Rotation")
|
row.prop(ob, "rotation_axis_angle", text="Rotation")
|
||||||
|
|
||||||
@@ -83,22 +81,21 @@ class OBJECT_PT_transform(ObjectButtonsPanel, Panel):
|
|||||||
sub.prop(ob, "lock_rotation_w", text="", emboss=False, icon='DECORATE_UNLOCKED')
|
sub.prop(ob, "lock_rotation_w", text="", emboss=False, icon='DECORATE_UNLOCKED')
|
||||||
sub.prop(ob, "lock_rotation", text="", emboss=False, icon='DECORATE_UNLOCKED')
|
sub.prop(ob, "lock_rotation", text="", emboss=False, icon='DECORATE_UNLOCKED')
|
||||||
else:
|
else:
|
||||||
col = flow.column()
|
col = layout.column()
|
||||||
row = col.row(align=True)
|
row = col.row(align=True)
|
||||||
row.prop(ob, "rotation_euler", text="Rotation")
|
row.prop(ob, "rotation_euler", text="Rotation")
|
||||||
row.use_property_decorate = False
|
row.use_property_decorate = False
|
||||||
row.prop(ob, "lock_rotation", text="", emboss=False, icon='DECORATE_UNLOCKED')
|
row.prop(ob, "lock_rotation", text="", emboss=False, icon='DECORATE_UNLOCKED')
|
||||||
|
row = layout.row(align=True)
|
||||||
|
row.prop(ob, "rotation_mode", text="Mode")
|
||||||
|
row.label(text="", icon='BLANK1')
|
||||||
|
|
||||||
col = flow.column()
|
col = layout.column()
|
||||||
row = col.row(align=True)
|
row = col.row(align=True)
|
||||||
row.prop(ob, "scale")
|
row.prop(ob, "scale")
|
||||||
row.use_property_decorate = False
|
row.use_property_decorate = False
|
||||||
row.prop(ob, "lock_scale", text="", emboss=False, icon='DECORATE_UNLOCKED')
|
row.prop(ob, "lock_scale", text="", emboss=False, icon='DECORATE_UNLOCKED')
|
||||||
|
|
||||||
row = layout.row(align=True)
|
|
||||||
row.prop(ob, "rotation_mode")
|
|
||||||
row.label(text="", icon='BLANK1')
|
|
||||||
|
|
||||||
|
|
||||||
class OBJECT_PT_delta_transform(ObjectButtonsPanel, Panel):
|
class OBJECT_PT_delta_transform(ObjectButtonsPanel, Panel):
|
||||||
bl_label = "Delta Transform"
|
bl_label = "Delta Transform"
|
||||||
|
|||||||
@@ -922,13 +922,13 @@ static void rna_def_bone_common(StructRNA *srna, int editbone)
|
|||||||
|
|
||||||
prop = RNA_def_property(srna, "bbone_x", PROP_FLOAT, PROP_NONE);
|
prop = RNA_def_property(srna, "bbone_x", PROP_FLOAT, PROP_NONE);
|
||||||
RNA_def_property_float_sdna(prop, NULL, "xwidth");
|
RNA_def_property_float_sdna(prop, NULL, "xwidth");
|
||||||
RNA_def_property_range(prop, 0.0f, 1000.0f);
|
RNA_def_property_ui_range(prop, 0.0f, 1000.0f, 1, RNA_TRANSLATION_PREC_DEFAULT);
|
||||||
RNA_def_property_ui_text(prop, "B-Bone Display X Width", "B-Bone X size");
|
RNA_def_property_ui_text(prop, "B-Bone Display X Width", "B-Bone X size");
|
||||||
RNA_def_property_update(prop, 0, "rna_Armature_update_data");
|
RNA_def_property_update(prop, 0, "rna_Armature_update_data");
|
||||||
|
|
||||||
prop = RNA_def_property(srna, "bbone_z", PROP_FLOAT, PROP_NONE);
|
prop = RNA_def_property(srna, "bbone_z", PROP_FLOAT, PROP_NONE);
|
||||||
RNA_def_property_float_sdna(prop, NULL, "zwidth");
|
RNA_def_property_float_sdna(prop, NULL, "zwidth");
|
||||||
RNA_def_property_range(prop, 0.0f, 1000.0f);
|
RNA_def_property_ui_range(prop, 0.0f, 1000.0f, 1, RNA_TRANSLATION_PREC_DEFAULT);
|
||||||
RNA_def_property_ui_text(prop, "B-Bone Display Z Width", "B-Bone Z size");
|
RNA_def_property_ui_text(prop, "B-Bone Display Z Width", "B-Bone Z size");
|
||||||
RNA_def_property_update(prop, 0, "rna_Armature_update_data");
|
RNA_def_property_update(prop, 0, "rna_Armature_update_data");
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user