[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [15009] branches/apricot/source/blender/ src/transform_snap.c: Fixing snapping normal alignment for non-uniformly scaled objects.

Martin Poirier theeth at yahoo.com
Tue May 27 16:31:30 CEST 2008


Revision: 15009
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=15009
Author:   theeth
Date:     2008-05-27 16:31:29 +0200 (Tue, 27 May 2008)

Log Message:
-----------
Fixing snapping normal alignment for non-uniformly scaled objects.

Modified Paths:
--------------
    branches/apricot/source/blender/src/transform_snap.c

Modified: branches/apricot/source/blender/src/transform_snap.c
===================================================================
--- branches/apricot/source/blender/src/transform_snap.c	2008-05-27 14:13:16 UTC (rev 15008)
+++ branches/apricot/source/blender/src/transform_snap.c	2008-05-27 14:31:29 UTC (rev 15009)
@@ -892,11 +892,15 @@
 	
 	if (totvert > 0) {
 		float imat[4][4];
+		float timat[3][3]; /* transpose inverse matrix for normals */
 		float ray_start_local[3], ray_normal_local[3];
 		int test = 1;
 
 		Mat4Invert(imat, obmat);
 
+		Mat3CpyMat4(timat, imat);
+		Mat3Transp(timat);
+		
 		VECCOPY(ray_start_local, ray_start);
 		VECCOPY(ray_normal_local, ray_normal);
 		
@@ -950,7 +954,8 @@
 							VECCOPY(loc, location);
 							VECCOPY(no, normal);
 							
-							Mat4Mul3Vecfl(obmat, no);
+							Mat3MulVecfl(timat, no);
+							Normalize(no);
 			
 							project_int(loc, screen_loc);
 							
@@ -989,7 +994,8 @@
 								VECCOPY(loc, location);
 								VECCOPY(no, normal);
 								
-								Mat4Mul3Vecfl(obmat, no);
+								Mat3MulVecfl(timat, no);
+								Normalize(no);
 				
 								project_int(loc, screen_loc);
 								





More information about the Bf-blender-cvs mailing list