Skip to content
Snippets Groups Projects
Commit ebe61b60 authored by Luca Bonavita's avatar Luca Bonavita
Browse files

== rotobezier ==

- moved the conditions Obj.type == 'CURVE' in poll methods
- general formatting
parent c688bf29
No related branches found
No related tags found
No related merge requests found
...@@ -31,8 +31,9 @@ bl_addon_info = { ...@@ -31,8 +31,9 @@ bl_addon_info = {
'func=detail&aid=24839&group_id=153&atid=469', 'func=detail&aid=24839&group_id=153&atid=469',
'category': 'Animation'} 'category': 'Animation'}
'''------------------------------------------------------------------------- '''
Thanks to Campbell Barton for hes API additions and fixes -------------------------------------------------------------------------
Thanks to Campbell Barton for his API additions and fixes
Daniel Salazar - ZanQdo Daniel Salazar - ZanQdo
Rev 0.1 initial release Rev 0.1 initial release
...@@ -42,7 +43,8 @@ Rev 0.4 moved from curve properties to toolbar ...@@ -42,7 +43,8 @@ Rev 0.4 moved from curve properties to toolbar
Rev 0.5 added pass index property Rev 0.5 added pass index property
Rev 0.6 re-arranged UI Rev 0.6 re-arranged UI
Rev 0.7 Adding options for what properties to keyframe Rev 0.7 Adding options for what properties to keyframe
-------------------------------------------------------------------------''' -------------------------------------------------------------------------
'''
import bpy import bpy
from bpy.props import * from bpy.props import *
...@@ -71,7 +73,6 @@ bpy.types.WindowManager.key_tilt = BoolProperty( ...@@ -71,7 +73,6 @@ bpy.types.WindowManager.key_tilt = BoolProperty(
# GUI (Panel) # GUI (Panel)
# #
class VIEW3D_PT_rotobezier(bpy.types.Panel): class VIEW3D_PT_rotobezier(bpy.types.Panel):
bl_space_type = 'VIEW_3D' bl_space_type = 'VIEW_3D'
bl_region_type = 'TOOLS' bl_region_type = 'TOOLS'
bl_label = 'RotoBezier' bl_label = 'RotoBezier'
...@@ -126,39 +127,38 @@ class CURVE_OT_insert_keyframe_rotobezier(bpy.types.Operator): ...@@ -126,39 +127,38 @@ class CURVE_OT_insert_keyframe_rotobezier(bpy.types.Operator):
bl_description = 'Insert a RotoBezier Keyframe' bl_description = 'Insert a RotoBezier Keyframe'
bl_options = {'REGISTER', 'UNDO'} bl_options = {'REGISTER', 'UNDO'}
# on mouse up: # on mouse up:
def invoke(self, context, event): def invoke(self, context, event):
self.execute(context) self.execute(context)
return {'FINISHED'} return {'FINISHED'}
@classmethod
def poll(cls, context):
return (context.active_object.type == 'CURVE')
def execute(op, context): def execute(op, context):
Obj = context.active_object Obj = context.active_object
if Obj.type == 'CURVE': Mode = False
Mode = False if context.mode != 'OBJECT':
if context.mode != 'OBJECT': Mode = not Mode
Mode = not Mode bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle() Data = Obj.data
Data = Obj.data
for Splines in Data.splines:
for CVs in Splines.bezier_points:
if context.window_manager.key_points:
CVs.keyframe_insert('co')
CVs.keyframe_insert('handle_left')
CVs.keyframe_insert('handle_right')
if context.window_manager.key_bevel:
CVs.keyframe_insert('radius')
if context.window_manager.key_tilt:
CVs.keyframe_insert('tilt')
for Splines in Data.splines: if Mode:
for CVs in Splines.bezier_points: bpy.ops.object.editmode_toggle()
if context.window_manager.key_points:
CVs.keyframe_insert('co')
CVs.keyframe_insert('handle_left')
CVs.keyframe_insert('handle_right')
if context.window_manager.key_bevel:
CVs.keyframe_insert('radius')
if context.window_manager.key_tilt:
CVs.keyframe_insert('tilt')
if Mode:
bpy.ops.object.editmode_toggle()
return {'FINISHED'} return {'FINISHED'}
...@@ -170,39 +170,38 @@ class CURVE_OT_delete_keyframe_rotobezier(bpy.types.Operator): ...@@ -170,39 +170,38 @@ class CURVE_OT_delete_keyframe_rotobezier(bpy.types.Operator):
bl_description = 'Delete a RotoBezier Keyframe' bl_description = 'Delete a RotoBezier Keyframe'
bl_options = {'REGISTER', 'UNDO'} bl_options = {'REGISTER', 'UNDO'}
# on mouse up: # on mouse up:
def invoke(self, context, event): def invoke(self, context, event):
self.execute(context) self.execute(context)
return {'FINISHED'} return {'FINISHED'}
@classmethod
def poll(cls, context):
return (context.active_object.type == 'CURVE')
def execute(op, context): def execute(op, context):
Obj = context.active_object Obj = context.active_object
if Obj.type == 'CURVE': Mode = False
Mode = False if context.mode != 'OBJECT':
if context.mode != 'OBJECT': Mode = not Mode
Mode = not Mode bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle() Data = Obj.data
Data = Obj.data
for Splines in Data.splines:
for Splines in Data.splines: for CVs in Splines.bezier_points:
for CVs in Splines.bezier_points: if context.window_manager.key_points:
if context.window_manager.key_points: CVs.keyframe_delete('co')
CVs.keyframe_delete('co') CVs.keyframe_delete('handle_left')
CVs.keyframe_delete('handle_left') CVs.keyframe_delete('handle_right')
CVs.keyframe_delete('handle_right') if context.window_manager.key_bevel:
if context.window_manager.key_bevel: CVs.keyframe_delete('radius')
CVs.keyframe_delete('radius') if context.window_manager.key_tilt:
if context.window_manager.key_tilt: CVs.keyframe_delete('tilt')
CVs.keyframe_delete('tilt')
if Mode:
if Mode: bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
return {'FINISHED'} return {'FINISHED'}
...@@ -215,59 +214,47 @@ class CURVE_OT_clear_animation_rotobezier(bpy.types.Operator): ...@@ -215,59 +214,47 @@ class CURVE_OT_clear_animation_rotobezier(bpy.types.Operator):
# on mouse up: # on mouse up:
def invoke(self, context, event): def invoke(self, context, event):
wm = context.window_manager wm = context.window_manager
return wm.invoke_confirm(self, event) return wm.invoke_confirm(self, event)
def execute(op, context): def execute(op, context):
Data = context.active_object.data Data = context.active_object.data
Data.animation_data_clear() Data.animation_data_clear()
return {'FINISHED'} return {'FINISHED'}
# Matte Material Assignment Func
def MakeMatte (Type): def MakeMatte (Type):
'''
Matte Material Assignment Function
'''
Obj = bpy.context.active_object Obj = bpy.context.active_object
# Material # Material
def CheckMat (MatName): def CheckMat (MatName):
Result = False Result = False
Mats = bpy.data.materials Mats = bpy.data.materials
for Mat in Mats: for Mat in Mats:
if Mat.name == MatName: if Mat.name == MatName:
Result = not Result Result = not Result
return Result return Result
if Type == 'White': if Type == 'White':
MatName = 'RotoBezier_WhiteMatte' MatName = 'RotoBezier_WhiteMatte'
MatCol = (1,1,1) MatCol = (1,1,1)
elif Type == 'Black': elif Type == 'Black':
MatName = 'RotoBezier_BlackMatte' MatName = 'RotoBezier_BlackMatte'
MatCol = (0,0,0) MatCol = (0,0,0)
if CheckMat(MatName): if CheckMat(MatName):
Mat = bpy.data.materials[MatName] Mat = bpy.data.materials[MatName]
if not Obj.material_slots: if not Obj.material_slots:
bpy.ops.object.material_slot_add() bpy.ops.object.material_slot_add()
Obj.material_slots[0].material = Mat Obj.material_slots[0].material = Mat
else: else:
Mat = bpy.data.materials.new(MatName) Mat = bpy.data.materials.new(MatName)
Mat.diffuse_color = MatCol Mat.diffuse_color = MatCol
Mat.use_shadeless = True Mat.use_shadeless = True
...@@ -288,6 +275,7 @@ def MakeMatte (Type): ...@@ -288,6 +275,7 @@ def MakeMatte (Type):
Curve.use_fill_front = False Curve.use_fill_front = False
Curve.use_fill_back = False Curve.use_fill_back = False
class CURVE_OT_make_white_matte_rotobezier(bpy.types.Operator): class CURVE_OT_make_white_matte_rotobezier(bpy.types.Operator):
bl_label = 'White Matte' bl_label = 'White Matte'
bl_idname = 'curve.make_white_matte_rotobezier' bl_idname = 'curve.make_white_matte_rotobezier'
...@@ -296,16 +284,11 @@ class CURVE_OT_make_white_matte_rotobezier(bpy.types.Operator): ...@@ -296,16 +284,11 @@ class CURVE_OT_make_white_matte_rotobezier(bpy.types.Operator):
# on mouse up: # on mouse up:
def invoke(self, context, event): def invoke(self, context, event):
self.execute(context) self.execute(context)
return {'FINISHED'} return {'FINISHED'}
def execute(op, context): def execute(op, context):
MakeMatte('White') MakeMatte('White')
return {'FINISHED'} return {'FINISHED'}
...@@ -317,16 +300,11 @@ class CURVE_OT_make_black_matte_rotobezier(bpy.types.Operator): ...@@ -317,16 +300,11 @@ class CURVE_OT_make_black_matte_rotobezier(bpy.types.Operator):
# on mouse up: # on mouse up:
def invoke(self, context, event): def invoke(self, context, event):
self.execute(context) self.execute(context)
return {'FINISHED'} return {'FINISHED'}
def execute(op, context): def execute(op, context):
MakeMatte('Black') MakeMatte('Black')
return {'FINISHED'} return {'FINISHED'}
...@@ -338,21 +316,16 @@ class CURVE_OT_toggle_handles_rotobezier(bpy.types.Operator): ...@@ -338,21 +316,16 @@ class CURVE_OT_toggle_handles_rotobezier(bpy.types.Operator):
# on mouse up: # on mouse up:
def invoke(self, context, event): def invoke(self, context, event):
self.execute(context) self.execute(context)
return {'FINISHED'} return {'FINISHED'}
def execute(op, context): def execute(op, context):
Obj = context.active_object Obj = context.active_object
Curve = Obj.data Curve = Obj.data
if Curve.show_handles: if Curve.show_handles:
Curve.show_handles = False Curve.show_handles = False
else: else:
Curve.show_handles = True Curve.show_handles = True
return {'FINISHED'} return {'FINISHED'}
...@@ -364,14 +337,10 @@ class CURVE_OT_toggle_draw_rotobezier(bpy.types.Operator): ...@@ -364,14 +337,10 @@ class CURVE_OT_toggle_draw_rotobezier(bpy.types.Operator):
# on mouse up: # on mouse up:
def invoke(self, context, event): def invoke(self, context, event):
self.execute(context) self.execute(context)
return {'FINISHED'} return {'FINISHED'}
def execute(op, context): def execute(op, context):
Obj = context.active_object Obj = context.active_object
if Obj.draw_type == 'SOLID': if Obj.draw_type == 'SOLID':
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment