From d4fcda5935c5c561e77aadd32a32500cf280dcaa Mon Sep 17 00:00:00 2001
From: Damien Picard <dam.pic@free.fr>
Date: Sun, 16 Jan 2022 23:00:11 +0100
Subject: [PATCH] Fix T94846: AnimAll does not keyframe bezier curve handle
 type

Add option to export Bezier curves' left and right handle types
---
 animation_animall.py | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/animation_animall.py b/animation_animall.py
index 141c032a1..811cb2c91 100644
--- a/animation_animall.py
+++ b/animation_animall.py
@@ -93,6 +93,11 @@ class AnimallProperties(bpy.types.PropertyGroup):
         description="Insert keyframes on point locations",
         default=False
     )
+    key_handle_type: BoolProperty(
+        name="Handle Types",
+        description="Insert keyframes on Bezier point types",
+        default=False
+    )
     key_radius: BoolProperty(
         name="Radius",
         description="Insert keyframes on point radius (Shrink/Fatten)",
@@ -181,6 +186,8 @@ class VIEW3D_PT_animall(Panel):
             row = col.row()
             row.prop(animall_properties, "key_radius")
             row.prop(animall_properties, "key_tilt")
+            row = col.row()
+            row.prop(animall_properties, "key_handle_type")
 
         elif obj.type == 'SURFACE':
             row.prop(animall_properties, "key_points")
@@ -271,6 +278,10 @@ class ANIM_OT_insert_keyframe_animall(Operator):
                                 if animall_properties.key_radius:
                                     insert_key(CV, 'radius', group="Spline %s CV %s" % (s_i, v_i))
 
+                                if animall_properties.key_handle_type:
+                                    insert_key(CV, 'handle_left_type', group="spline %s CV %s" % (s_i, v_i))
+                                    insert_key(CV, 'handle_right_type', group="spline %s CV %s" % (s_i, v_i))
+
                                 if animall_properties.key_tilt:
                                     insert_key(CV, 'tilt', group="Spline %s CV %s" % (s_i, v_i))
 
@@ -468,6 +479,9 @@ class ANIM_OT_delete_keyframe_animall(Operator):
                                     delete_key(CV, 'co')
                                     delete_key(CV, 'handle_left')
                                     delete_key(CV, 'handle_right')
+                                if animall_properties.key_handle_type:
+                                    delete_key(CV, 'handle_left_type')
+                                    delete_key(CV, 'handle_right_type')
                                 if animall_properties.key_radius:
                                     delete_key(CV, 'radius')
                                 if animall_properties.key_tilt:
-- 
GitLab