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