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

git.blender.org/blender-addons.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/rigify
diff options
context:
space:
mode:
Diffstat (limited to 'rigify')
-rw-r--r--rigify/rig_ui_template.py51
-rw-r--r--rigify/ui.py11
2 files changed, 30 insertions, 32 deletions
diff --git a/rigify/rig_ui_template.py b/rigify/rig_ui_template.py
index 8c66b8b3..d7c2e870 100644
--- a/rigify/rig_ui_template.py
+++ b/rigify/rig_ui_template.py
@@ -299,7 +299,7 @@ def parse_bone_names(names_string):
''']
-UTILITIES_FUNC_ARM_FKIK = ['''
+UTILITIES_FUNC_OLD_ARM_FKIK = ['''
######################
## IK Arm functions ##
######################
@@ -416,7 +416,7 @@ def ik2fk_arm(obj, fk, ik):
correct_scale(view_layer, uarmi, uarm.matrix)
''']
-UTILITIES_FUNC_LEG_FKIK = ['''
+UTILITIES_FUNC_OLD_LEG_FKIK = ['''
######################
## IK Leg functions ##
######################
@@ -558,7 +558,7 @@ def ik2fk_leg(obj, fk, ik):
correct_scale(view_layer, thighi, thigh.matrix)
''']
-UTILITIES_FUNC_POLE = ['''
+UTILITIES_FUNC_OLD_POLE = ['''
################################
## IK Rotation-Pole functions ##
################################
@@ -623,9 +623,9 @@ def rotPoleToggle(rig, limb_type, controls, ik_ctrl, fk_ctrl, parent, pole):
bpy.ops.pose.select_all(action='DESELECT')
''']
-REGISTER_OP_ARM_FKIK = ['Rigify_Arm_FK2IK', 'Rigify_Arm_IK2FK']
+REGISTER_OP_OLD_ARM_FKIK = ['Rigify_Arm_FK2IK', 'Rigify_Arm_IK2FK']
-UTILITIES_OP_ARM_FKIK = ['''
+UTILITIES_OP_OLD_ARM_FKIK = ['''
##################################
## IK/FK Arm snapping operators ##
##################################
@@ -681,9 +681,9 @@ class Rigify_Arm_IK2FK(bpy.types.Operator):
return {'FINISHED'}
''']
-REGISTER_OP_LEG_FKIK = ['Rigify_Leg_FK2IK', 'Rigify_Leg_IK2FK']
+REGISTER_OP_OLD_LEG_FKIK = ['Rigify_Leg_FK2IK', 'Rigify_Leg_IK2FK']
-UTILITIES_OP_LEG_FKIK = ['''
+UTILITIES_OP_OLD_LEG_FKIK = ['''
##################################
## IK/FK Leg snapping operators ##
##################################
@@ -743,9 +743,9 @@ class Rigify_Leg_IK2FK(bpy.types.Operator):
return {'FINISHED'}
''']
-REGISTER_OP_POLE = ['Rigify_Rot2PoleSwitch']
+REGISTER_OP_OLD_POLE = ['Rigify_Rot2PoleSwitch']
-UTILITIES_OP_POLE = ['''
+UTILITIES_OP_OLD_POLE = ['''
###########################
## IK Rotation Pole Snap ##
###########################
@@ -774,24 +774,24 @@ class Rigify_Rot2PoleSwitch(bpy.types.Operator):
return {'FINISHED'}
''']
-REGISTER_RIG_ARM = REGISTER_OP_ARM_FKIK + REGISTER_OP_POLE
+REGISTER_RIG_OLD_ARM = REGISTER_OP_OLD_ARM_FKIK + REGISTER_OP_OLD_POLE
-UTILITIES_RIG_ARM = [
+UTILITIES_RIG_OLD_ARM = [
*UTILITIES_FUNC_COMMON_IKFK,
- *UTILITIES_FUNC_ARM_FKIK,
- *UTILITIES_FUNC_POLE,
- *UTILITIES_OP_ARM_FKIK,
- *UTILITIES_OP_POLE,
+ *UTILITIES_FUNC_OLD_ARM_FKIK,
+ *UTILITIES_FUNC_OLD_POLE,
+ *UTILITIES_OP_OLD_ARM_FKIK,
+ *UTILITIES_OP_OLD_POLE,
]
-REGISTER_RIG_LEG = REGISTER_OP_LEG_FKIK + REGISTER_OP_POLE
+REGISTER_RIG_OLD_LEG = REGISTER_OP_OLD_LEG_FKIK + REGISTER_OP_OLD_POLE
-UTILITIES_RIG_LEG = [
+UTILITIES_RIG_OLD_LEG = [
*UTILITIES_FUNC_COMMON_IKFK,
- *UTILITIES_FUNC_LEG_FKIK,
- *UTILITIES_FUNC_POLE,
- *UTILITIES_OP_LEG_FKIK,
- *UTILITIES_OP_POLE,
+ *UTILITIES_FUNC_OLD_LEG_FKIK,
+ *UTILITIES_FUNC_OLD_POLE,
+ *UTILITIES_OP_OLD_LEG_FKIK,
+ *UTILITIES_OP_OLD_POLE,
]
##############################
@@ -801,18 +801,9 @@ UTILITIES_RIG_LEG = [
UI_REGISTER = [
'RigUI',
'RigLayers',
- *REGISTER_OP_ARM_FKIK,
- *REGISTER_OP_LEG_FKIK,
]
-# Include arm and leg utilities for now in case somebody wants to use
-# legacy limb rigs, which expect these to be available by default.
UI_UTILITIES = [
- *UTILITIES_FUNC_COMMON_IKFK,
- *UTILITIES_FUNC_ARM_FKIK,
- *UTILITIES_FUNC_LEG_FKIK,
- *UTILITIES_OP_ARM_FKIK,
- *UTILITIES_OP_LEG_FKIK,
]
UI_SLIDERS = '''
diff --git a/rigify/ui.py b/rigify/ui.py
index c0b827b1..2f858925 100644
--- a/rigify/ui.py
+++ b/rigify/ui.py
@@ -670,8 +670,15 @@ class VIEW3D_PT_rigify_animation_tools(bpy.types.Panel):
@classmethod
def poll(cls, context):
- return context.object and context.object.type == 'ARMATURE'\
- and context.active_object.data.get("rig_id") is not None
+ obj = context.active_object
+ if obj and obj.type == 'ARMATURE':
+ rig_id = obj.data.get("rig_id")
+ if rig_id is not None:
+ has_arm = hasattr(bpy.types, 'POSE_OT_rigify_arm_ik2fk_' + rig_id)
+ has_leg = hasattr(bpy.types, 'POSE_OT_rigify_leg_ik2fk_' + rig_id)
+ return has_arm or has_leg
+
+ return False
def draw(self, context):
obj = context.active_object