[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [33149] trunk/blender/source/blender: bugfix [#24777] Scale both markers and keyframes at the same time?
Campbell Barton
ideasman42 at gmail.com
Thu Nov 18 06:05:07 CET 2010
Revision: 33149
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=33149
Author: campbellbarton
Date: 2010-11-18 06:05:06 +0100 (Thu, 18 Nov 2010)
Log Message:
-----------
bugfix [#24777] Scale both markers and keyframes at the same time?
sync marker option worked for translate and extend but not for scale in the dope sheet.
Modified Paths:
--------------
trunk/blender/source/blender/blenkernel/BKE_scene.h
trunk/blender/source/blender/blenkernel/intern/scene.c
trunk/blender/source/blender/editors/transform/transform_conversions.c
Modified: trunk/blender/source/blender/blenkernel/BKE_scene.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_scene.h 2010-11-18 04:26:50 UTC (rev 33148)
+++ trunk/blender/source/blender/blenkernel/BKE_scene.h 2010-11-18 05:05:06 UTC (rev 33149)
@@ -76,6 +76,7 @@
char *scene_find_last_marker_name(struct Scene *scene, int frame);
int scene_marker_tfm_translate(struct Scene *scene, int delta, int flag);
int scene_marker_tfm_extend(struct Scene *scene, int delta, int flag, int frame, char side);
+int scene_marker_tfm_scale(struct Scene *scene, float value, int flag);
struct Base *scene_add_base(struct Scene *sce, struct Object *ob);
void scene_deselect_all(struct Scene *sce);
Modified: trunk/blender/source/blender/blenkernel/intern/scene.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/scene.c 2010-11-18 04:26:50 UTC (rev 33148)
+++ trunk/blender/source/blender/blenkernel/intern/scene.c 2010-11-18 05:05:06 UTC (rev 33149)
@@ -859,6 +859,21 @@
return tot;
}
+int scene_marker_tfm_scale(struct Scene *scene, float value, int flag)
+{
+ TimeMarker *marker;
+ int tot= 0;
+
+ for (marker= scene->markers.first; marker; marker= marker->next) {
+ if ((marker->flag & flag) == flag) {
+ marker->frame= CFRA + (int)floorf(((float)(marker->frame - CFRA) * value) + 0.5f);
+ tot++;
+ }
+ }
+
+ return tot;
+}
+
Base *scene_add_base(Scene *sce, Object *ob)
{
Base *b= MEM_callocN(sizeof(*b), "scene_add_base");
Modified: trunk/blender/source/blender/editors/transform/transform_conversions.c
===================================================================
--- trunk/blender/source/blender/editors/transform/transform_conversions.c 2010-11-18 04:26:50 UTC (rev 33148)
+++ trunk/blender/source/blender/editors/transform/transform_conversions.c 2010-11-18 05:05:06 UTC (rev 33149)
@@ -4886,6 +4886,9 @@
else if (ELEM(t->frame_side, 'L', 'R'))
scene_marker_tfm_extend(t->scene, floor(t->vec[0] + 0.5f), SELECT, t->scene->r.cfra, t->frame_side);
}
+ else if(t->mode == TFM_TIME_SCALE) {
+ scene_marker_tfm_scale(t->scene, t->vec[0], SELECT);
+ }
}
#if 0 // XXX future of this is still not clear
More information about the Bf-blender-cvs
mailing list