[Bf-blender-cvs] [31a1bcf] master: fix T37411: Transform mouse constraint could fail in some situations.

Campbell Barton noreply at git.blender.org
Wed Nov 20 16:22:30 CET 2013


Commit: 31a1bcfcd7041c3d346ce8b4eb16786c353153c1
Author: Campbell Barton
Date:   Thu Nov 21 02:15:38 2013 +1100
http://developer.blender.org/rB31a1bcfcd7041c3d346ce8b4eb16786c353153c1

fix T37411: Transform mouse constraint could fail in some situations.

Was caused by int rounding when an axis was < 1.0.

===================================================================

M	source/blender/editors/transform/transform_constraints.c

===================================================================

diff --git a/source/blender/editors/transform/transform_constraints.c b/source/blender/editors/transform/transform_constraints.c
index 8df289f..4ba87eb 100644
--- a/source/blender/editors/transform/transform_constraints.c
+++ b/source/blender/editors/transform/transform_constraints.c
@@ -930,9 +930,9 @@ static void setNearestAxis2d(TransInfo *t)
 static void setNearestAxis3d(TransInfo *t)
 {
 	float zfac;
-	float mvec[3], axis[3], proj[3];
+	float mvec[3], proj[3];
 	float len[3];
-	int i, icoord[2];
+	int i;
 
 	/* calculate mouse movement */
 	mvec[0] = (float)(t->mval[0] - t->con.imval[0]);
@@ -950,15 +950,16 @@ static void setNearestAxis3d(TransInfo *t)
 	zfac = len_v3(t->persinv[0]) * 2.0f / t->ar->winx * zfac * 30.0f;
 
 	for (i = 0; i < 3; i++) {
+		float axis[3], axis_2d[2];
+
 		copy_v3_v3(axis, t->con.mtx[i]);
 
 		mul_v3_fl(axis, zfac);
 		/* now we can project to get window coordinate */
 		add_v3_v3(axis, t->con.center);
-		projectIntView(t, axis, icoord);
+		projectFloatView(t, axis, axis_2d);
 
-		axis[0] = (float)(icoord[0] - t->center2d[0]);
-		axis[1] = (float)(icoord[1] - t->center2d[1]);
+		sub_v2_v2v2(axis, axis_2d, t->center2d);
 		axis[2] = 0.0f;
 
 		if (normalize_v3(axis) != 0.0f) {




More information about the Bf-blender-cvs mailing list