[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [32636] trunk/blender/source/blender/ editors/transform/transform.c: bugfix [#24331] EdgeSlide not as flawless as 2.49's

Campbell Barton ideasman42 at gmail.com
Thu Oct 21 15:33:51 CEST 2010


Revision: 32636
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=32636
Author:   campbellbarton
Date:     2010-10-21 15:33:51 +0200 (Thu, 21 Oct 2010)

Log Message:
-----------
bugfix [#24331] EdgeSlide not as flawless as 2.49's 
ensure minimum mouse distance for sliding edge verts else it becomes unusable.

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	2010-10-21 11:20:44 UTC (rev 32635)
+++ trunk/blender/source/blender/editors/transform/transform.c	2010-10-21 13:33:51 UTC (rev 32636)
@@ -4563,7 +4563,26 @@
 	start[0] = t->mval[0];
 	start[1] = t->mval[1];
 	add_v3_v3v3(end, start, vec);
-	
+
+
+	/* Ensure minimum screen distance, when looking top down on edge loops */
+#define EDGE_SLIDE_MIN 30
+	if (len_squared_v2v2(start, end) < (EDGE_SLIDE_MIN * EDGE_SLIDE_MIN)) {
+		if(ABS(start[0]-end[0]) + ABS(start[1]-end[1]) < 4.0f) {
+			/* even more exceptional case, points are ontop of eachother */
+			end[0]= start[0];
+			end[1]= start[1] + EDGE_SLIDE_MIN;
+		}
+		else {
+			sub_v2_v2(end, start);
+			normalize_v2(end);
+			mul_v2_fl(end, EDGE_SLIDE_MIN);
+			add_v2_v2(end, start);
+		}
+	}
+#undef EDGE_SLIDE_MIN
+
+
 	sld->start[0] = (short) start[0];
 	sld->start[1] = (short) start[1];
 	sld->end[0] = (short) end[0];





More information about the Bf-blender-cvs mailing list