[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [32558] trunk/blender/source/blender/ editors/transform/transform_conversions.c: [#21475] Moving a Transform strip upwards moves its animation sidewards

Janne Karhu jhkarh at gmail.com
Mon Oct 18 12:52:57 CEST 2010


Revision: 32558
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=32558
Author:   jhk
Date:     2010-10-18 12:52:57 +0200 (Mon, 18 Oct 2010)

Log Message:
-----------
[#21475] Moving a Transform strip upwards moves its animation sidewards
* F-Curve translation is now calculated from the difference of the strips original & resulting start time, instead of using the transform data directly.

Modified Paths:
--------------
    trunk/blender/source/blender/editors/transform/transform_conversions.c

Modified: trunk/blender/source/blender/editors/transform/transform_conversions.c
===================================================================
--- trunk/blender/source/blender/editors/transform/transform_conversions.c	2010-10-18 08:17:04 UTC (rev 32557)
+++ trunk/blender/source/blender/editors/transform/transform_conversions.c	2010-10-18 10:52:57 UTC (rev 32558)
@@ -2284,11 +2284,10 @@
 }
 
 /* *** SEQUENCE EDITOR *** */
-#define XXX_DURIAN_ANIM_TX_HACK
 void flushTransSeq(TransInfo *t)
 {
 	ListBase *seqbasep= seq_give_editing(t->scene, FALSE)->seqbasep; /* Editing null check already done */
-	int a, new_frame;
+	int a, new_frame, old_start;
 	TransData *td= NULL;
 	TransData2D *td2d= NULL;
 	TransDataSeq *tdsq= NULL;
@@ -2305,16 +2304,11 @@
 	for(a=0, td= t->data, td2d= t->data2d; a<t->total; a++, td++, td2d++) {
 		tdsq= (TransDataSeq *)td->extra;
 		seq= tdsq->seq;
+		old_start = seq->start;
 		new_frame= (int)floor(td2d->loc[0] + 0.5f);
 
 		switch (tdsq->sel_flag) {
 		case SELECT:
-#ifdef XXX_DURIAN_ANIM_TX_HACK
-			if (seq != seq_prev) {
-				int ofs = (new_frame - tdsq->start_offset) - seq->start; // breaks for single strips - color/image
-				seq_offset_animdata(t->scene, seq, ofs);
-			}
-#endif
 			if (seq->type != SEQ_META && (seq->depth != 0 || seq_tx_test(seq))) /* for meta's, their children move */
 				seq->start= new_frame - tdsq->start_offset;
 
@@ -2345,6 +2339,9 @@
 			else {
 				calc_sequence_disp(t->scene, seq);
 			}
+
+			if(tdsq->sel_flag == SELECT)
+				seq_offset_animdata(t->scene, seq, seq->start - old_start);
 		}
 		seq_prev= seq;
 	}
@@ -3851,6 +3848,7 @@
  * seq->depth must be set before running this function so we know if the strips
  * are root level or not
  */
+#define XXX_DURIAN_ANIM_TX_HACK
 static void SeqTransInfo(TransInfo *t, Sequence *seq, int *recursive, int *count, int *flag)
 {
  





More information about the Bf-blender-cvs mailing list