[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [43806] trunk/blender/source/blender: calc_curve_deform was using axis range of 1-6, but other parts of the code use 0-5.

Campbell Barton ideasman42 at gmail.com
Tue Jan 31 22:32:11 CET 2012


Revision: 43806
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=43806
Author:   campbellbarton
Date:     2012-01-31 21:32:06 +0000 (Tue, 31 Jan 2012)
Log Message:
-----------
calc_curve_deform was using axis range of 1-6, but other parts of the code use 0-5. (confusion here casued an error in the code).

make calc_curve_deform use 0-5 too, only minor changes needed.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/lattice.c
    trunk/blender/source/blender/modifiers/intern/MOD_curve.c

Modified: trunk/blender/source/blender/blenkernel/intern/lattice.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/lattice.c	2012-01-31 21:29:22 UTC (rev 43805)
+++ trunk/blender/source/blender/blenkernel/intern/lattice.c	2012-01-31 21:32:06 UTC (rev 43806)
@@ -536,7 +536,7 @@
 	Curve *cu= par->data;
 	float fac, loc[4], dir[3], new_quat[4], radius;
 	short index;
-	const int is_neg_axis = (axis > 3);
+	const int is_neg_axis = (axis > 2);
 
 	/* to be sure, mostly after file load */
 	if(cu->path==NULL) {
@@ -546,14 +546,14 @@
 	
 	/* options */
 	if (is_neg_axis) {
-		index = axis - 4;
+		index = axis - 3;
 		if(cu->flag & CU_STRETCH)
 			fac= (-co[index]-cd->dmax[index])/(cd->dmax[index] - cd->dmin[index]);
 		else
 			fac= - (co[index]-cd->dmax[index])/(cu->path->totdist);
 	}
 	else {
-		index = axis - 1;
+		index = axis;
 		if(cu->flag & CU_STRETCH)
 			fac= (co[index]-cd->dmin[index])/(cd->dmax[index] - cd->dmin[index]);
 		else
@@ -579,7 +579,7 @@
 			dir[cd->no_rot_axis-1]= 0.0f;
 		
 		/* -1 for compatibility with old track defines */
-		vec_to_quat( quat,dir, axis-1, upflag);
+		vec_to_quat( quat,dir, axis, upflag);
 		
 		/* the tilt */
 		if(loc[3]!=0.0) {
@@ -627,8 +627,8 @@
 
 		/* zero the axis which is not used,
 		 * the big block of text above now applies to these 3 lines */
-		quat_apply_track(quat, axis-1, (axis==1 || axis==3) ? 1:0); /* up flag is a dummy, set so no rotation is done */
-		vec_apply_track(cent, axis-1);
+		quat_apply_track(quat, axis, (axis == 0 || axis == 2) ? 1:0); /* up flag is a dummy, set so no rotation is done */
+		vec_apply_track(cent, axis);
 		cent[index]= 0.0f;
 
 
@@ -659,7 +659,7 @@
 	int a, flag;
 	CurveDeform cd;
 	int use_vgroups;
-	const int is_neg_axis = (defaxis > 3);
+	const int is_neg_axis = (defaxis > 2);
 
 	if(cuOb->type != OB_CURVE)
 		return;
@@ -798,7 +798,7 @@
 
 	mul_m4_v3(cd.curvespace, vec);
 	
-	if(calc_curve_deform(scene, cuOb, vec, target->trackflag+1, &cd, quat)) {
+	if(calc_curve_deform(scene, cuOb, vec, target->trackflag, &cd, quat)) {
 		float qmat[3][3];
 		
 		quat_to_mat3( qmat,quat);

Modified: trunk/blender/source/blender/modifiers/intern/MOD_curve.c
===================================================================
--- trunk/blender/source/blender/modifiers/intern/MOD_curve.c	2012-01-31 21:29:22 UTC (rev 43805)
+++ trunk/blender/source/blender/modifiers/intern/MOD_curve.c	2012-01-31 21:32:06 UTC (rev 43806)
@@ -119,8 +119,10 @@
 {
 	CurveModifierData *cmd = (CurveModifierData*) md;
 
+	/* silly that defaxis and curve_deform_verts are off by 1
+	 * but leave for now to save having to call do_versions */
 	curve_deform_verts(md->scene, cmd->object, ob, derivedData, vertexCos, numVerts,
-	                   cmd->name, cmd->defaxis);
+	                   cmd->name, cmd->defaxis-1);
 }
 
 static void deformVertsEM(



More information about the Bf-blender-cvs mailing list