From 1355384006c89a42cdad7c6670647a66a0d0ad84 Mon Sep 17 00:00:00 2001
From: Daniel Salazar <zanqdo@gmail.com>
Date: Fri, 3 Dec 2010 09:16:55 +0000
Subject: [PATCH] RotoBezier: Adding support for NURBS animation

---
 animation_rotobezier.py | 64 +++++++++++++++++++++++++++--------------
 1 file changed, 42 insertions(+), 22 deletions(-)

diff --git a/animation_rotobezier.py b/animation_rotobezier.py
index c49a72eb8..ef2054b75 100644
--- a/animation_rotobezier.py
+++ b/animation_rotobezier.py
@@ -146,17 +146,27 @@ class CURVE_OT_insert_keyframe_rotobezier(bpy.types.Operator):
             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 Spline in Data.splines:
+            if Spline.type == 'BEZIER':
+                for CV in Spline.bezier_points:
+                    if context.window_manager.key_points:
+                        CV.keyframe_insert('co')
+                        CV.keyframe_insert('handle_left')
+                        CV.keyframe_insert('handle_right')
+                    if context.window_manager.key_bevel:
+                        CV.keyframe_insert('radius')
+                    if context.window_manager.key_tilt:
+                        CV.keyframe_insert('tilt')
+                    
+            elif Spline.type == 'NURBS':
+                for CV in Spline.points:
+                    if context.window_manager.key_points:
+                        CV.keyframe_insert('co')
+                    if context.window_manager.key_bevel:
+                        CV.keyframe_insert('radius')
+                    if context.window_manager.key_tilt:
+                        CV.keyframe_insert('tilt')
+                        
         if Mode:
             bpy.ops.object.editmode_toggle()
 
@@ -189,17 +199,27 @@ class CURVE_OT_delete_keyframe_rotobezier(bpy.types.Operator):
             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')
-        
+        for Spline in Data.splines:
+            if Spline.type == 'BEZIER':
+                for CV in Spline.bezier_points:
+                    if context.window_manager.key_points:
+                        CV.keyframe_delete('co')
+                        CV.keyframe_delete('handle_left')
+                        CV.keyframe_delete('handle_right')
+                    if context.window_manager.key_bevel:
+                        CV.keyframe_delete('radius')
+                    if context.window_manager.key_tilt:
+                        CV.keyframe_delete('tilt')
+                    
+            elif Spline.type == 'NURBS':
+                for CV in Spline.points:
+                    if context.window_manager.key_points:
+                        CV.keyframe_delete('co')
+                    if context.window_manager.key_bevel:
+                        CV.keyframe_delete('radius')
+                    if context.window_manager.key_tilt:
+                        CV.keyframe_delete('tilt')
+                        
         if Mode:
             bpy.ops.object.editmode_toggle()
 
-- 
GitLab