[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