diff options
author | Campbell Barton <ideasman42@gmail.com> | 2010-03-08 12:06:58 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2010-03-08 12:06:58 +0300 |
commit | 3b105657d50bdcc2dfaf574ac3a5ad4f22b8b237 (patch) | |
tree | 7345436a325903302be27a50b85f214e8e16d919 /source/blender/blenkernel/intern | |
parent | 581efb43469c68cc728a2dab3a9db48d296f2c18 (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')
-rw-r--r-- | source/blender/blenkernel/intern/scene.c | 33 |
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) { |