[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [53768] trunk/blender/source/blender/ editors/transform/transform.c: transform feature - G-key during transform toggles slide ( edge slide or vertex slide), similar to how trackbacll rotate toggles.

Campbell Barton ideasman42 at gmail.com
Sun Jan 13 15:22:38 CET 2013


Revision: 53768
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=53768
Author:   campbellbarton
Date:     2013-01-13 14:22:37 +0000 (Sun, 13 Jan 2013)
Log Message:
-----------
transform feature - G-key during transform toggles slide (edge slide or vertex slide), similar to how trackbacll rotate toggles.

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	2013-01-13 14:08:53 UTC (rev 53767)
+++ trunk/blender/source/blender/editors/transform/transform.c	2013-01-13 14:22:37 UTC (rev 53768)
@@ -880,20 +880,46 @@
 				break;
 			case TFM_MODAL_TRANSLATE:
 				/* only switch when... */
-				if (ELEM3(t->mode, TFM_ROTATION, TFM_RESIZE, TFM_TRACKBALL) ) {
+				if (ELEM5(t->mode, TFM_ROTATION, TFM_RESIZE, TFM_TRACKBALL, TFM_EDGE_SLIDE, TFM_VERT_SLIDE)) {
+					if (t->mode == TFM_EDGE_SLIDE) {
+						freeEdgeSlideVerts(t);
+					}
+					else if (t->mode == TFM_VERT_SLIDE) {
+						freeVertSlideVerts(t);
+					}
 					resetTransRestrictions(t);
 					restoreTransObjects(t);
 					initTranslation(t);
 					initSnapping(t, NULL); // need to reinit after mode change
 					t->redraw |= TREDRAW_HARD;
+					WM_event_add_mousemove(t->context);
 				}
-				else if (t->mode == TFM_TRANSLATION) {
-					if (t->options & (CTX_MOVIECLIP | CTX_MASK)) {
-						restoreTransObjects(t);
+				else {
+					if (t->obedit && t->obedit->type == OB_MESH) {
+						if (t->mode == TFM_TRANSLATION) {
+							resetTransRestrictions(t);
+							restoreTransObjects(t);
 
-						t->flag ^= T_ALT_TRANSFORM;
-						t->redraw |= TREDRAW_HARD;
+							/* first try edge slide */
+							initEdgeSlide(t);
+							/* if that fails, do vertex slide */
+							if (t->state == TRANS_CANCEL) {
+								t->state = TRANS_STARTING;
+								initVertSlide(t);
+							}
+							initSnapping(t, NULL); // need to reinit after mode change
+							t->redraw |= TREDRAW_HARD;
+							WM_event_add_mousemove(t->context);
+						}
 					}
+					else if (t->options & (CTX_MOVIECLIP | CTX_MASK)) {
+						if (t->mode == TFM_TRANSLATION) {
+							restoreTransObjects(t);
+
+							t->flag ^= T_ALT_TRANSFORM;
+							t->redraw |= TREDRAW_HARD;
+						}
+					}
 				}
 				break;
 			case TFM_MODAL_ROTATE:
@@ -6184,7 +6210,6 @@
 				else {
 					madd_v3_v3v3fl(sv->v->co, sv->co_orig_3d, dir, tperc);
 				}
-				printf("%.6f\n", tperc);
 			}
 			else {
 				copy_v3_v3(sv->v->co, sv->co_orig_3d);




More information about the Bf-blender-cvs mailing list