Changeset View
Changeset View
Standalone View
Standalone View
rigify/rot_mode.py
| Show All 32 Lines | |||||
| # 'location': '', | # 'location': '', | ||||
| # "description": "Converts bones rotation mode", | # "description": "Converts bones rotation mode", | ||||
| # "warning": "", | # "warning": "", | ||||
| # "wiki_url": "", | # "wiki_url": "", | ||||
| # "tracker_url": "https://github.com/MarioMey/rotation_mode_addon/", | # "tracker_url": "https://github.com/MarioMey/rotation_mode_addon/", | ||||
| # "category": "Animation"} | # "category": "Animation"} | ||||
| import bpy | import bpy | ||||
| from bpy.props import ( | |||||
| BoolProperty, | |||||
| EnumProperty, | |||||
| ) | |||||
| order_list = ['QUATERNION', 'XYZ', 'XZY', 'YXZ', 'YZX', 'ZXY', 'ZYX'] | order_list = ['QUATERNION', 'XYZ', 'XZY', 'YXZ', 'YZX', 'ZXY', 'ZYX'] | ||||
| class convert(): | class convert(): | ||||
| def get_or_create_fcurve(self, action, data_path, array_index=-1, group=None): | def get_or_create_fcurve(self, action, data_path, array_index=-1, group=None): | ||||
| for fc in action.fcurves: | for fc in action.fcurves: | ||||
| if fc.data_path == data_path and (array_index < 0 or fc.array_index == array_index): | if fc.data_path == data_path and (array_index < 0 or fc.array_index == array_index): | ||||
| ▲ Show 20 Lines • Show All 272 Lines • ▼ Show 20 Lines | def execute(op, context): | ||||
| if id_store.rigify_convert_only_selected: | if id_store.rigify_convert_only_selected: | ||||
| convert.all_act_sel_bon(obj, pose_bones, order) | convert.all_act_sel_bon(obj, pose_bones, order) | ||||
| else: | else: | ||||
| convert.all_act_every_bon(obj, order) | convert.all_act_every_bon(obj, order) | ||||
| return {'FINISHED'} | return {'FINISHED'} | ||||
| ### Registering ### | |||||
| classes = ( | |||||
| ToolsPanel, | |||||
| CONVERT_OT_quat2eu_current_action, | |||||
| CONVERT_OT_quat2eu_all_actions, | |||||
| ) | |||||
| def register(): | def register(): | ||||
| IDStore = bpy.types.WindowManager | from bpy.utils import register_class | ||||
| # Properties. | |||||
| items = [('QUATERNION', 'QUATERNION', 'QUATERNION'), | items = [('QUATERNION', 'QUATERNION', 'QUATERNION'), | ||||
| ('XYZ', 'XYZ', 'XYZ'), | ('XYZ', 'XYZ', 'XYZ'), | ||||
| ('XZY', 'XZY', 'XZY'), | ('XZY', 'XZY', 'XZY'), | ||||
| ('YXZ', 'YXZ', 'YXZ'), | ('YXZ', 'YXZ', 'YXZ'), | ||||
| ('YZX', 'YZX', 'YZX'), | ('YZX', 'YZX', 'YZX'), | ||||
| ('ZXY', 'ZXY', 'ZXY'), | ('ZXY', 'ZXY', 'ZXY'), | ||||
| ('ZYX', 'ZYX', 'ZYX')] | ('ZYX', 'ZYX', 'ZYX')] | ||||
| bpy.types.Scene.order_list = EnumProperty( | |||||
| bpy.types.Scene.order_list = bpy.props.EnumProperty(items=items, name='Convert to', | items=items, name='Convert to', | ||||
| description="The target rotation mode", default='QUATERNION') | description="The target rotation mode", default='QUATERNION') | ||||
| IDStore.rigify_convert_only_selected = bpy.props.BoolProperty( | IDStore = bpy.types.WindowManager | ||||
| name="Convert Only Selected", description="Convert selected bones only", default=True) | IDStore.rigify_convert_only_selected = 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(): | def unregister(): | ||||
| IDStore = bpy.types.WindowManager | from bpy.utils import unregister_class | ||||
| bpy.utils.unregister_class(ToolsPanel) | # Classes. | ||||
| bpy.utils.unregister_class(CONVERT_OT_quat2eu_current_action) | for cls in classes: | ||||
| bpy.utils.unregister_class(CONVERT_OT_quat2eu_all_actions) | unregister_class(cls) | ||||
| # Properties. | |||||
| IDStore = bpy.types.WindowManager | |||||
| del IDStore.rigify_convert_only_selected | del IDStore.rigify_convert_only_selected | ||||
| # bpy.utils.register_module(__name__) | |||||