[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