[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [24097] trunk/blender/source/blender/ editors/transform/transform.c: Revert multiplication order change from revision 23692

Martin Poirier theeth at yahoo.com
Mon Oct 26 20:50:07 CET 2009


Revision: 24097
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=24097
Author:   theeth
Date:     2009-10-26 20:50:07 +0100 (Mon, 26 Oct 2009)

Log Message:
-----------
Revert multiplication order change from revision 23692

The previous order is correct, the new order forced all global scale on local axis (in object mode).

The "problem" with scaling (or mirroring) in object mode along an axis that is not aligned along one of the local axis is that the result has to be decomposed (as best it can by TransMat3ToSize) into scaling factors along local axis. The more axis aligned the object is, the more "correct" it will look, with the worse being a scale along two local axis when the scaling axis is right between them.

One "solution" could be to make all Mirror transform in object mode work on local axis only (but I don't think that would be correct, since it still works correctly on aligned axis).

Revision Links:
--------------
    http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=23692

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

Modified: trunk/blender/source/blender/editors/transform/transform.c
===================================================================
--- trunk/blender/source/blender/editors/transform/transform.c	2009-10-26 19:19:55 UTC (rev 24096)
+++ trunk/blender/source/blender/editors/transform/transform.c	2009-10-26 19:50:07 UTC (rev 24097)
@@ -2342,7 +2342,7 @@
 		if (t->flag & (T_OBJECT|T_TEXTURE|T_POSE)) {
 			float obsizemat[3][3];
 			// Reorient the size mat to fit the oriented object.
-			Mat3MulMat3(obsizemat, td->axismtx, tmat);
+			Mat3MulMat3(obsizemat, tmat, td->axismtx);
 			//printmatrix3("obsizemat", obsizemat);
 			TransMat3ToSize(obsizemat, td->axismtx, fsize);
 			//printvecf("fsize", fsize);





More information about the Bf-blender-cvs mailing list