From ebe61b60a44a899c1cc1be60750617643474eb88 Mon Sep 17 00:00:00 2001
From: Luca Bonavita <mindrones@gmail.com>
Date: Fri, 26 Nov 2010 15:06:07 +0000
Subject: [PATCH] == rotobezier ==

- moved the conditions Obj.type == 'CURVE' in poll methods
- general formatting
---
 animation_rotobezier.py | 143 ++++++++++++++++------------------------
 1 file changed, 56 insertions(+), 87 deletions(-)

diff --git a/animation_rotobezier.py b/animation_rotobezier.py
index 92932fcf4..92ae49d81 100644
--- a/animation_rotobezier.py
+++ b/animation_rotobezier.py
@@ -31,8 +31,9 @@ bl_addon_info = {
         'func=detail&aid=24839&group_id=153&atid=469',
     '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
 
 Rev 0.1 initial release
@@ -42,7 +43,8 @@ Rev 0.4 moved from curve properties to toolbar
 Rev 0.5 added pass index property
 Rev 0.6 re-arranged UI
 Rev 0.7 Adding options for what properties to keyframe
--------------------------------------------------------------------------'''
+-------------------------------------------------------------------------
+'''
 
 import bpy
 from bpy.props import *
@@ -71,7 +73,6 @@ bpy.types.WindowManager.key_tilt = BoolProperty(
 # GUI (Panel)
 #
 class VIEW3D_PT_rotobezier(bpy.types.Panel):
-
     bl_space_type = 'VIEW_3D'
     bl_region_type = 'TOOLS'
     bl_label = 'RotoBezier'
@@ -126,39 +127,38 @@ class CURVE_OT_insert_keyframe_rotobezier(bpy.types.Operator):
     bl_description = 'Insert a RotoBezier Keyframe'
     bl_options = {'REGISTER', 'UNDO'}
     
-    
     # on mouse up:
     def invoke(self, context, event):
-
         self.execute(context)
-
         return {'FINISHED'}
-
-
+    
+    @classmethod
+    def poll(cls, context):
+        return (context.active_object.type == 'CURVE')
+    
     def execute(op, context):
         
         Obj = context.active_object
         
-        if Obj.type == 'CURVE':
-            Mode = False
-            if context.mode != 'OBJECT':
-                Mode = not Mode
-                bpy.ops.object.editmode_toggle()
-            Data = Obj.data
+        Mode = False
+        if context.mode != 'OBJECT':
+            Mode = not Mode
+            bpy.ops.object.editmode_toggle()
+        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:
-                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')
-            
-            if Mode:
-                bpy.ops.object.editmode_toggle()
+        if Mode:
+            bpy.ops.object.editmode_toggle()
 
 
         return {'FINISHED'}
@@ -170,39 +170,38 @@ class CURVE_OT_delete_keyframe_rotobezier(bpy.types.Operator):
     bl_description = 'Delete a RotoBezier Keyframe'
     bl_options = {'REGISTER', 'UNDO'}
     
-    
     # on mouse up:
     def invoke(self, context, event):
-
         self.execute(context)
-
         return {'FINISHED'}
 
+    @classmethod
+    def poll(cls, context):
+        return (context.active_object.type == 'CURVE')
 
     def execute(op, context):
         
         Obj = context.active_object
 
-        if Obj.type == 'CURVE':
-            Mode = False
-            if context.mode != 'OBJECT':
-                Mode = not Mode
-                bpy.ops.object.editmode_toggle()
-            Data = Obj.data
-            
-            for Splines in Data.splines:
-                for CVs in Splines.bezier_points:
-                    if context.window_manager.key_points:
-                        CVs.keyframe_delete('co')
-                        CVs.keyframe_delete('handle_left')
-                        CVs.keyframe_delete('handle_right')
-                    if context.window_manager.key_bevel:
-                        CVs.keyframe_delete('radius')
-                    if context.window_manager.key_tilt:
-                        CVs.keyframe_delete('tilt')
-            
-            if Mode:
-                bpy.ops.object.editmode_toggle()
+        Mode = False
+        if context.mode != 'OBJECT':
+            Mode = not Mode
+            bpy.ops.object.editmode_toggle()
+        Data = Obj.data
+        
+        for Splines in Data.splines:
+            for CVs in Splines.bezier_points:
+                if context.window_manager.key_points:
+                    CVs.keyframe_delete('co')
+                    CVs.keyframe_delete('handle_left')
+                    CVs.keyframe_delete('handle_right')
+                if context.window_manager.key_bevel:
+                    CVs.keyframe_delete('radius')
+                if context.window_manager.key_tilt:
+                    CVs.keyframe_delete('tilt')
+        
+        if Mode:
+            bpy.ops.object.editmode_toggle()
 
         return {'FINISHED'}
 
@@ -215,59 +214,47 @@ class CURVE_OT_clear_animation_rotobezier(bpy.types.Operator):
 
     # on mouse up:
     def invoke(self, context, event):
-        
         wm = context.window_manager
         return wm.invoke_confirm(self, event)
     
-    
     def execute(op, context):
-        
         Data = context.active_object.data
         Data.animation_data_clear()
-        
         return {'FINISHED'}
 
 
-# Matte Material Assignment Func
 def MakeMatte (Type):
+    '''
+    Matte Material Assignment Function
+    '''
     
     Obj = bpy.context.active_object
     
     # Material
     def CheckMat (MatName):
-        
         Result = False
-        
         Mats = bpy.data.materials
-        
         for Mat in Mats:
             if Mat.name == MatName:
                 Result = not Result
         
         return Result
     
-    
     if Type == 'White':
-        
         MatName = 'RotoBezier_WhiteMatte'
         MatCol = (1,1,1)
-    
+
     elif Type == 'Black':
-        
         MatName = 'RotoBezier_BlackMatte'
         MatCol = (0,0,0)
-    
+
     if CheckMat(MatName):
-        
         Mat = bpy.data.materials[MatName]
-        
         if not Obj.material_slots:
             bpy.ops.object.material_slot_add()
-            
         Obj.material_slots[0].material = Mat
     
     else:
-        
         Mat = bpy.data.materials.new(MatName)
         Mat.diffuse_color = MatCol
         Mat.use_shadeless = True
@@ -288,6 +275,7 @@ def MakeMatte (Type):
     Curve.use_fill_front = False
     Curve.use_fill_back = False
 
+
 class CURVE_OT_make_white_matte_rotobezier(bpy.types.Operator):
     bl_label = 'White Matte'
     bl_idname = 'curve.make_white_matte_rotobezier'
@@ -296,16 +284,11 @@ class CURVE_OT_make_white_matte_rotobezier(bpy.types.Operator):
 
     # on mouse up:
     def invoke(self, context, event):
-
         self.execute(context)
-
         return {'FINISHED'}
 
-
     def execute(op, context):
-        
         MakeMatte('White')
-
         return {'FINISHED'}
 
 
@@ -317,16 +300,11 @@ class CURVE_OT_make_black_matte_rotobezier(bpy.types.Operator):
 
     # on mouse up:
     def invoke(self, context, event):
-
         self.execute(context)
-
         return {'FINISHED'}
 
-
     def execute(op, context):
-        
         MakeMatte('Black')
-        
         return {'FINISHED'}
 
 
@@ -338,21 +316,16 @@ class CURVE_OT_toggle_handles_rotobezier(bpy.types.Operator):
 
     # on mouse up:
     def invoke(self, context, event):
-        
         self.execute(context)
-        
         return {'FINISHED'}
     
-    
     def execute(op, context):
-        
         Obj = context.active_object
         Curve = Obj.data
         if Curve.show_handles:
             Curve.show_handles = False
         else:
             Curve.show_handles = True
-        
         return {'FINISHED'}
 
 
@@ -364,14 +337,10 @@ class CURVE_OT_toggle_draw_rotobezier(bpy.types.Operator):
 
     # on mouse up:
     def invoke(self, context, event):
-        
         self.execute(context)
-        
         return {'FINISHED'}
     
-    
     def execute(op, context):
-        
         Obj = context.active_object
         
         if Obj.draw_type == 'SOLID':
-- 
GitLab