Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoshua Leung <aligorith@gmail.com>2011-04-05 15:49:58 +0400
committerJoshua Leung <aligorith@gmail.com>2011-04-05 15:49:58 +0400
commitb2753f6af9d31486b6254327b30f3f0868a3203f (patch)
tree17f60b0958e81727e117d74fa7c50ab7039146ef /release/scripts/startup/keyingsets_builtins.py
parentbbf82877cf75bb01ce284e908bb411ae6277e55d (diff)
"Bugfix" (i.e. feature request in disguise!) [#26772] Delta Scaling,
Rotation and Location don't have Keying Sets Added Keying Sets for Delta Loc/Rot/Scale settings (aka dLoc/dRot). These settings could already be found in the Object properties, under the collapsed "Delta Transforms" panel. I've added these to the end of the Keying Sets list, since adding any earlier will end up breaking active Keying Set setting in older files. Besides, these settings aren't that frequently used either...
Diffstat (limited to 'release/scripts/startup/keyingsets_builtins.py')
-rw-r--r--release/scripts/startup/keyingsets_builtins.py91
1 files changed, 91 insertions, 0 deletions
diff --git a/release/scripts/startup/keyingsets_builtins.py b/release/scripts/startup/keyingsets_builtins.py
index 6b0b282fd47..cefc5cf38ed 100644
--- a/release/scripts/startup/keyingsets_builtins.py
+++ b/release/scripts/startup/keyingsets_builtins.py
@@ -23,6 +23,11 @@ Built-In Keying Sets
None of these Keying Sets should be removed, as these
are needed by various parts of Blender in order for them
to work correctly.
+
+Beware also about changing the order that these are defined
+here, since this can result in old files referring to the
+wrong Keying Set as the active one, potentially resulting
+in lost (i.e. unkeyed) animation.
"""
import bpy
@@ -352,6 +357,92 @@ class BUILTIN_KSI_WholeCharacter(bpy.types.KeyingSetInfo):
# for now, just add all of 'em
ksi.addProp(ks, bone, '["%s"]' % (prop))
+###############################
+
+# Delta Location
+class BUILTIN_KSI_DeltaLocation(bpy.types.KeyingSetInfo):
+ bl_label = "Delta Location"
+
+ # poll - selected objects only (and only if active object in object mode)
+ poll = keyingsets_utils.RKS_POLL_selected_objects
+
+ # iterator - selected objects only
+ iterator = keyingsets_utils.RKS_ITER_selected_objects
+
+ # generator - delta location channels only
+ def generate(ksi, context, ks, data):
+ # get id-block and path info
+ id_block, base_path, grouping = keyingsets_utils.get_transform_generators_base_info(data)
+
+ # add the property name to the base path
+ path = keyingsets_utils.path_add_property(base_path, "delta_location")
+
+ # add Keying Set entry for this...
+ if grouping:
+ ks.paths.add(id_block, path, group_method='NAMED', group_name=grouping)
+ else:
+ ks.paths.add(id_block, path)
+
+
+# Delta Rotation
+class BUILTIN_KSI_DeltaRotation(bpy.types.KeyingSetInfo):
+ bl_label = "Delta Rotation"
+
+ # poll - selected objects only (and only if active object in object mode)
+ poll = keyingsets_utils.RKS_POLL_selected_objects
+
+ # iterator - selected objects only
+ iterator = keyingsets_utils.RKS_ITER_selected_objects
+
+ # generator - delta location channels only
+ def generate(ksi, context, ks, data):
+ # get id-block and path info
+ id_block, base_path, grouping = keyingsets_utils.get_transform_generators_base_info(data)
+
+ # add the property name to the base path
+ # rotation mode affects the property used
+ if data.rotation_mode == 'QUATERNION':
+ path = path_add_property(base_path, "delta_rotation_quaternion")
+ elif data.rotation_mode == 'AXIS_ANGLE':
+ # XXX: for now, this is not available yet
+ #path = path_add_property(base_path, "delta_rotation_axis_angle")
+ return;
+ else:
+ path = keyingsets_utils.path_add_property(base_path, "delta_rotation_euler")
+
+ # add Keying Set entry for this...
+ if grouping:
+ ks.paths.add(id_block, path, group_method='NAMED', group_name=grouping)
+ else:
+ ks.paths.add(id_block, path)
+
+
+# Delta Scale
+class BUILTIN_KSI_DeltaScale(bpy.types.KeyingSetInfo):
+ bl_label = "Delta Scale"
+
+ # poll - selected objects only (and only if active object in object mode)
+ poll = keyingsets_utils.RKS_POLL_selected_objects
+
+ # iterator - selected objects only
+ iterator = keyingsets_utils.RKS_ITER_selected_objects
+
+ # generator - delta location channels only
+ def generate(ksi, context, ks, data):
+ # get id-block and path info
+ id_block, base_path, grouping = keyingsets_utils.get_transform_generators_base_info(data)
+
+ # add the property name to the base path
+ path = keyingsets_utils.path_add_property(base_path, "delta_scale")
+
+ # add Keying Set entry for this...
+ if grouping:
+ ks.paths.add(id_block, path, group_method='NAMED', group_name=grouping)
+ else:
+ ks.paths.add(id_block, path)
+
+###############################
+
def register():
bpy.utils.register_module(__name__)