[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [14012] trunk/blender/source/blender/src: Bugfix:

Joshua Leung aligorith at gmail.com
Sat Mar 8 12:08:25 CET 2008


Revision: 14012
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=14012
Author:   aligorith
Date:     2008-03-08 12:08:24 +0100 (Sat, 08 Mar 2008)

Log Message:
-----------
Bugfix:

Time-Slide transform tool in the Action Editor now works as well as it did before the Action-Keys transform refactor. However, numeric input is now broken as a side-effect of this.

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

Modified: trunk/blender/source/blender/src/transform.c
===================================================================
--- trunk/blender/source/blender/src/transform.c	2008-03-08 04:22:52 UTC (rev 14011)
+++ trunk/blender/source/blender/src/transform.c	2008-03-08 11:08:24 UTC (rev 14012)
@@ -4353,12 +4353,46 @@
 	float minx= *((float *)(t->customData));
 	float maxx= *((float *)(t->customData) + 1);
 	
+	#if 0
+	  if (NLA_ACTION_SCALED) 	 
+	                 sval[0]= get_action_frame(OBACT, sval[0]); 	 
+	  	 
+	         /* used for drawing */ 	 
+	         if (mode=='t') { 	 
+	                 G.saction->flag |= SACTION_MOVING; 	 
+	                 G.saction->timeslide= sval[0]; 	 
+	         }
+			 
+	/// WHAT FOLLOWS IS IN THE LOOP
+	 if (NLA_ACTION_SCALED) 	 
+		 cval[0]= get_action_frame(OBACT, cval[0]); 	 
+
+	if (mode=='t') 	 
+		 G.saction->timeslide= cval[0];
+
+	 if( sval[0] > minx && sval[0] < maxx) { 	 
+		 float timefac, cvalc= CLAMPIS(cval[0], minx, maxx); 	 
+
+		 /* left half */ 	 
+		 if(tv[i].oldloc[0] < sval[0]) { 	 
+				 timefac= ( sval[0] - tv[i].oldloc[0])/(sval[0] - minx); 	 
+				 tv[i].loc[0]= cvalc - timefac*( cvalc - minx); 	 
+		 } 	 
+		 else { 	 
+				 timefac= (tv[i].oldloc[0] - sval[0])/(maxx - sval[0]); 	 
+				 tv[i].loc[0]= cvalc + timefac*(maxx- cvalc); 	 
+		 } 	 
+	 }
+#endif
+	
 	/* set value for drawing black line */
 	if (t->spacetype == SPACE_ACTION) {
-		G.saction->timeslide= t->fac;
+		float cvalf = t->fac;
 		
 		if (NLA_ACTION_SCALED)
-			sval= get_action_frame(OBACT, sval);
+			cvalf= get_action_frame(OBACT, cvalf);
+			
+		G.saction->timeslide= cvalf;
 	}
 	
 	/* it doesn't matter whether we apply to t->data or t->data2d, but t->data2d is more convenient */
@@ -4374,7 +4408,7 @@
 			cval= get_action_frame(ob, cval);
 		
 		/* only apply to data if in range */
-		if (sval > minx && sval < maxx) {
+		if ((sval > minx) && (sval < maxx)) {
 			float cvalc= CLAMPIS(cval, minx, maxx);
 			float timefac;
 			

Modified: trunk/blender/source/blender/src/transform_conversions.c
===================================================================
--- trunk/blender/source/blender/src/transform_conversions.c	2008-03-08 04:22:52 UTC (rev 14011)
+++ trunk/blender/source/blender/src/transform_conversions.c	2008-03-08 11:08:24 UTC (rev 14012)
@@ -2653,7 +2653,7 @@
 	
 	/* check if we're supposed to be setting minx/maxx for TimeSlide */
 	if (t->mode == TFM_TIME_SLIDE) {
-		float min = 0, max = 0;
+		float min=999999999.0f, max=-999999999.0;
 		int i;
 		
 		td= (t->data + 1);





More information about the Bf-blender-cvs mailing list