[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [12167] trunk/blender/source/blender/src/ transform.c: Bugfix:

Joshua Leung aligorith at gmail.com
Sat Sep 29 05:52:26 CEST 2007


Revision: 12167
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=12167
Author:   aligorith
Date:     2007-09-29 05:52:25 +0200 (Sat, 29 Sep 2007)

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

For transform in UV/Image editor (and soon, the IPO editor), transformations on 'local' axes (i.e. GXX, or GYY) won't work. Therefore, I've disabled this for those cases.

Note: A small part of the IPO editor transform-code port is in this commit too.

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

Modified: trunk/blender/source/blender/src/transform.c
===================================================================
--- trunk/blender/source/blender/src/transform.c	2007-09-28 11:06:13 UTC (rev 12166)
+++ trunk/blender/source/blender/src/transform.c	2007-09-29 03:52:25 UTC (rev 12167)
@@ -267,16 +267,26 @@
 	}
 	else if(t->spacetype==SPACE_IMAGE) {
 		float divx, divy, aspx, aspy;
-
+		
 		transform_aspect_ratio_tface_uv(&aspx, &aspy);
-
+		
 		divx= G.v2d->mask.xmax-G.v2d->mask.xmin;
 		divy= G.v2d->mask.ymax-G.v2d->mask.ymin;
-
+		
 		vec[0]= aspx*(G.v2d->cur.xmax-G.v2d->cur.xmin)*(dx)/divx;
 		vec[1]= aspy*(G.v2d->cur.ymax-G.v2d->cur.ymin)*(dy)/divy;
 		vec[2]= 0.0f;
 	}
+	else if(t->spacetype==SPACE_IPO) {
+		float divx, divy;
+		
+		divx= G.v2d->mask.xmax-G.v2d->mask.xmin;
+		divy= G.v2d->mask.ymax-G.v2d->mask.ymin;
+		
+		vec[0]= (G.v2d->cur.xmax-G.v2d->cur.xmin)*(dx) / (divx);
+		vec[1]= (G.v2d->cur.ymax-G.v2d->cur.ymin)*(dy) / (divy);
+		vec[2]= 0.0f;
+	}
 }
 
 void projectIntView(TransInfo *t, float *vec, int *adr)
@@ -638,14 +648,19 @@
 		case XKEY:
 			if ((Trans.flag & T_NO_CONSTRAINT)==0) {
 				if (cmode == 'X') {
-					if (Trans.con.mode & CON_USER) {
+					if (Trans.flag & T_2D_EDIT) {
 						stopConstraint(&Trans);
 					}
 					else {
-						if (G.qual == 0)
-							setUserConstraint(&Trans, (CON_AXIS0), "along %s X");
-						else if ((G.qual == LR_SHIFTKEY) && ((Trans.flag & T_2D_EDIT)==0))
-							setUserConstraint(&Trans, (CON_AXIS1|CON_AXIS2), "locking %s X");
+						if (Trans.con.mode & CON_USER) {
+							stopConstraint(&Trans);
+						}
+						else {
+							if (G.qual == 0)
+								setUserConstraint(&Trans, (CON_AXIS0), "along %s X");
+							else if (G.qual == LR_SHIFTKEY)
+								setUserConstraint(&Trans, (CON_AXIS1|CON_AXIS2), "locking %s X");
+						}
 					}
 				}
 				else {
@@ -660,14 +675,19 @@
 		case YKEY:
 			if ((Trans.flag & T_NO_CONSTRAINT)==0) {
 				if (cmode == 'Y') {
-					if (Trans.con.mode & CON_USER) {
+					if (Trans.flag & T_2D_EDIT) {
 						stopConstraint(&Trans);
 					}
 					else {
-						if (G.qual == 0)
-							setUserConstraint(&Trans, (CON_AXIS1), "along %s Y");
-						else if ((G.qual == LR_SHIFTKEY) && ((Trans.flag & T_2D_EDIT)==0))
-							setUserConstraint(&Trans, (CON_AXIS0|CON_AXIS2), "locking %s Y");
+						if (Trans.con.mode & CON_USER) {
+							stopConstraint(&Trans);
+						}
+						else {
+							if (G.qual == 0)
+								setUserConstraint(&Trans, (CON_AXIS1), "along %s Y");
+							else if (G.qual == LR_SHIFTKEY)
+								setUserConstraint(&Trans, (CON_AXIS0|CON_AXIS2), "locking %s Y");
+						}
 					}
 				}
 				else {





More information about the Bf-blender-cvs mailing list