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:
authorCampbell Barton <ideasman42@gmail.com>2010-03-08 12:06:58 +0300
committerCampbell Barton <ideasman42@gmail.com>2010-03-08 12:06:58 +0300
commit3b105657d50bdcc2dfaf574ac3a5ad4f22b8b237 (patch)
tree7345436a325903302be27a50b85f214e8e16d919 /source/blender/blenkernel/intern/scene.c
parent581efb43469c68cc728a2dab3a9db48d296f2c18 (diff)
option to transform markers in the dope sheet, needed for re-timing animation. currently supports translate and extend.
TODO: - select markers in dope sheet. - transform time scale.
Diffstat (limited to 'source/blender/blenkernel/intern/scene.c')
-rw-r--r--source/blender/blenkernel/intern/scene.c33
1 files changed, 33 insertions, 0 deletions
diff --git a/source/blender/blenkernel/intern/scene.c b/source/blender/blenkernel/intern/scene.c
index 77b1202aa20..630ddb49c7e 100644
--- a/source/blender/blenkernel/intern/scene.c
+++ b/source/blender/blenkernel/intern/scene.c
@@ -783,6 +783,39 @@ char *scene_find_last_marker_name(Scene *scene, int frame)
return best_marker ? best_marker->name : NULL;
}
+/* markers need transforming from different parts of the code so have
+ * a generic function to do this */
+int scene_marker_tfm_translate(Scene *scene, int delta, int flag)
+{
+ TimeMarker *marker;
+ int tot= 0;
+
+ for (marker= scene->markers.first; marker; marker= marker->next) {
+ if ((marker->flag & flag) == flag) {
+ marker->frame += delta;
+ tot++;
+ }
+ }
+
+ return tot;
+}
+
+int scene_marker_tfm_extend(Scene *scene, int delta, int flag, int frame, char side)
+{
+ TimeMarker *marker;
+ int tot= 0;
+
+ for (marker= scene->markers.first; marker; marker= marker->next) {
+ if ((marker->flag & flag) == flag) {
+ if((side=='L' && marker->frame < frame) || (side=='R' && marker->frame > frame)) {
+ marker->frame += delta;
+ tot++;
+ }
+ }
+ }
+
+ return tot;
+}
Base *scene_add_base(Scene *sce, Object *ob)
{