[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [33002] trunk/blender/source/blender/ editors/transform: Bugfix #24621: NLA strips move insensitively across tracks

Joshua Leung aligorith at gmail.com
Thu Nov 11 11:27:25 CET 2010


Revision: 33002
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=33002
Author:   aligorith
Date:     2010-11-11 11:27:24 +0100 (Thu, 11 Nov 2010)

Log Message:
-----------
Bugfix #24621: NLA strips move insensitively across tracks

This was a 2-part bug:
1) "Track index" (i.e. "index of NLA track within NLA Stack") was calculated incorrectly when the transform data is created. A typo meant that this was actually "index of strip within original track" 

2) Strips were flying around madly vertically (especially for downward movements, and with extreme difficulty for upwards) as the track index was being updated incorrectly. I suspect at the time I was misreading it as trackIndex = ... vs trackIndex += ..., though it obviously looked wrong looking at it now!

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

Modified: trunk/blender/source/blender/editors/transform/transform_conversions.c
===================================================================
--- trunk/blender/source/blender/editors/transform/transform_conversions.c	2010-11-11 10:07:33 UTC (rev 33001)
+++ trunk/blender/source/blender/editors/transform/transform_conversions.c	2010-11-11 10:27:24 UTC (rev 33002)
@@ -2662,6 +2662,7 @@
 	for (ale= anim_data.first; ale; ale= ale->next) {
 		/* only if a real NLA-track */
 		if (ale->type == ANIMTYPE_NLATRACK) {
+			AnimData *adt = ale->adt;
 			NlaTrack *nlt= (NlaTrack *)ale->data;
 			NlaStrip *strip;
 			
@@ -2686,7 +2687,7 @@
 						tdn->id= ale->id;
 						tdn->oldTrack= tdn->nlt= nlt;
 						tdn->strip= strip;
-						tdn->trackIndex= BLI_findindex(&nlt->strips, strip);
+						tdn->trackIndex= BLI_findindex(&adt->nla_tracks, nlt);
 						
 						yval= (float)(tdn->trackIndex * NLACHANNEL_STEP);
 						

Modified: trunk/blender/source/blender/editors/transform/transform_generics.c
===================================================================
--- trunk/blender/source/blender/editors/transform/transform_generics.c	2010-11-11 10:07:33 UTC (rev 33001)
+++ trunk/blender/source/blender/editors/transform/transform_generics.c	2010-11-11 10:27:24 UTC (rev 33002)
@@ -582,7 +582,7 @@
 							BKE_nlatrack_add_strip(track, strip);
 							
 							tdn->nlt= track;
-							tdn->trackIndex += (n + 1); /* + 1, since n==0 would mean that we didn't change track */
+							tdn->trackIndex++;
 						}
 						else /* can't move any further */
 							break;
@@ -600,7 +600,7 @@
 							BKE_nlatrack_add_strip(track, strip);
 							
 							tdn->nlt= track;
-							tdn->trackIndex -= (n - 1); /* - 1, since n==0 would mean that we didn't change track */
+							tdn->trackIndex--;
 						}
 						else /* can't move any further */
 							break;





More information about the Bf-blender-cvs mailing list