diff options
Diffstat (limited to 'rigify/rot_mode.py')
-rw-r--r-- | rigify/rot_mode.py | 77 |
1 files changed, 35 insertions, 42 deletions
diff --git a/rigify/rot_mode.py b/rigify/rot_mode.py index e30e28d1..9abfecea 100644 --- a/rigify/rot_mode.py +++ b/rigify/rot_mode.py @@ -38,8 +38,10 @@ blender.stackexchange.com/questions/40711/how-to-convert-quaternions-keyframes-t # "category": "Animation"} import bpy - -order_list = ['QUATERNION', 'XYZ', 'XZY', 'YXZ', 'YZX', 'ZXY', 'ZYX'] +from bpy.props import ( + BoolProperty, + EnumProperty, +) class convert(): @@ -219,32 +221,10 @@ class convert(): convert = convert() -# def initSceneProperties(scn): -# -# bpy.types.Scene.order_list = bpy.props.EnumProperty( -# items = [('QUATERNION', 'QUATERNION', 'QUATERNION' ), -# ('XYZ', 'XYZ', 'XYZ' ), -# ('XZY', 'XZY', 'XZY' ), -# ('YXZ', 'YXZ', 'YXZ' ), -# ('YZX', 'YZX', 'YZX' ), -# ('ZXY', 'ZXY', 'ZXY' ), -# ('ZYX', 'ZYX', 'ZYX' ) ], -# name = "Order", -# description = "The target rotation mode") -# -# scn['order_list'] = 0 -# -# return -# -# initSceneProperties(bpy.context.scene) - - -# GUI (Panel) -# class ToolsPanel(bpy.types.Panel): bl_space_type = 'VIEW_3D' - bl_region_type = 'TOOLS' - bl_category = "Tools" + bl_region_type = 'UI' + bl_category = 'View' bl_context = "posemode" bl_label = 'Rigify Quat/Euler Converter' @@ -290,7 +270,7 @@ class CONVERT_OT_quat2eu_current_action(bpy.types.Operator): obj = bpy.context.active_object pose_bones = bpy.context.selected_pose_bones action = obj.animation_data.action - order = order_list[bpy.context.scene['order_list']] + order = bpy.context.scene.order_list id_store = context.window_manager if id_store.rigify_convert_only_selected: @@ -315,7 +295,7 @@ class CONVERT_OT_quat2eu_all_actions(bpy.types.Operator): def execute(op, context): obj = bpy.context.active_object pose_bones = bpy.context.selected_pose_bones - order = order_list[bpy.context.scene['order_list']] + order = bpy.context.scene.order_list id_store = context.window_manager if id_store.rigify_convert_only_selected: @@ -326,9 +306,19 @@ class CONVERT_OT_quat2eu_all_actions(bpy.types.Operator): return {'FINISHED'} +### Registering ### + +classes = ( + ToolsPanel, + CONVERT_OT_quat2eu_current_action, + CONVERT_OT_quat2eu_all_actions, +) + + def register(): - IDStore = bpy.types.WindowManager + from bpy.utils import register_class + # Properties. items = [('QUATERNION', 'QUATERNION', 'QUATERNION'), ('XYZ', 'XYZ', 'XYZ'), ('XZY', 'XZY', 'XZY'), @@ -336,24 +326,27 @@ def register(): ('YZX', 'YZX', 'YZX'), ('ZXY', 'ZXY', 'ZXY'), ('ZYX', 'ZYX', 'ZYX')] + bpy.types.Scene.order_list = EnumProperty( + items=items, name='Convert to', + description="The target rotation mode", default='QUATERNION') - bpy.types.Scene.order_list = bpy.props.EnumProperty(items=items, name='Convert to', - description="The target rotation mode", default='QUATERNION') + IDStore = bpy.types.WindowManager + IDStore.rigify_convert_only_selected = BoolProperty( + name="Convert Only Selected", + description="Convert selected bones only", default=True) - IDStore.rigify_convert_only_selected = bpy.props.BoolProperty( - name="Convert Only Selected", description="Convert selected bones only", default=True) + # Classes. + for cls in classes: + register_class(cls) - bpy.utils.register_class(ToolsPanel) - bpy.utils.register_class(CONVERT_OT_quat2eu_current_action) - bpy.utils.register_class(CONVERT_OT_quat2eu_all_actions) def unregister(): - IDStore = bpy.types.WindowManager + from bpy.utils import unregister_class - bpy.utils.unregister_class(ToolsPanel) - bpy.utils.unregister_class(CONVERT_OT_quat2eu_current_action) - bpy.utils.unregister_class(CONVERT_OT_quat2eu_all_actions) + # Classes. + for cls in classes: + unregister_class(cls) + # Properties. + IDStore = bpy.types.WindowManager del IDStore.rigify_convert_only_selected - -# bpy.utils.register_module(__name__) |