[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