[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [43804] trunk/blender/source/blender/ blenkernel/intern/lattice.c: fix incorrect neg axis check for the curve deform modifier's boundbox.
Campbell Barton
ideasman42 at gmail.com
Tue Jan 31 22:20:37 CET 2012
Revision: 43804
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=43804
Author: campbellbarton
Date: 2012-01-31 21:20:30 +0000 (Tue, 31 Jan 2012)
Log Message:
-----------
fix incorrect neg axis check for the curve deform modifier's boundbox.
Modified Paths:
--------------
trunk/blender/source/blender/blenkernel/intern/lattice.c
Modified: trunk/blender/source/blender/blenkernel/intern/lattice.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/lattice.c 2012-01-31 21:06:52 UTC (rev 43803)
+++ trunk/blender/source/blender/blenkernel/intern/lattice.c 2012-01-31 21:20:30 UTC (rev 43804)
@@ -530,16 +530,14 @@
/* co: local coord, result local too */
/* returns quaternion for rotation, using cd->no_rot_axis */
/* axis is using another define!!! */
-static int calc_curve_deform(Scene *scene, Object *par, float co[3], short axis, CurveDeform *cd, float quat_r[4])
+static int calc_curve_deform(Scene *scene, Object *par, float co[3],
+ const short axis, CurveDeform *cd, float quat_r[4])
{
Curve *cu= par->data;
float fac, loc[4], dir[3], new_quat[4], radius;
- short /*upflag, */ index;
+ short index;
+ const int is_neg_axis = (axis > 3);
- index= axis-1;
- if(index>2)
- index -= 3; /* negative */
-
/* to be sure, mostly after file load */
if(cu->path==NULL) {
makeDispListCurveTypes(scene, par, 0);
@@ -547,13 +545,15 @@
}
/* options */
- if(ELEM3(axis, OB_NEGX+1, OB_NEGY+1, OB_NEGZ+1)) { /* OB_NEG# 0-5, MOD_CURVE_POS# 1-6 */
+ if (is_neg_axis) {
+ index = axis - 4;
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;
if(cu->flag & CU_STRETCH)
fac= (co[index]-cd->dmin[index])/(cd->dmax[index] - cd->dmin[index]);
else
@@ -659,6 +659,7 @@
int a, flag;
CurveDeform cd;
int use_vgroups;
+ const int is_neg_axis = (defaxis > 3);
if(cuOb->type != OB_CURVE)
return;
@@ -670,7 +671,7 @@
init_curve_deform(cuOb, target, &cd);
/* dummy bounds, keep if CU_DEFORM_BOUNDS_OFF is set */
- if(defaxis < 3) {
+ if(is_neg_axis == FALSE) {
cd.dmin[0]= cd.dmin[1]= cd.dmin[2]= 0.0f;
cd.dmax[0]= cd.dmax[1]= cd.dmax[2]= 1.0f;
}
More information about the Bf-blender-cvs
mailing list