[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [56269] trunk/blender/source/blender/ editors/transform: allow to scale and rotate from edge/vertex slide.

Campbell Barton ideasman42 at gmail.com
Wed Apr 24 17:15:02 CEST 2013


Revision: 56269
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=56269
Author:   campbellbarton
Date:     2013-04-24 15:15:01 +0000 (Wed, 24 Apr 2013)
Log Message:
-----------
allow to scale and rotate from edge/vertex slide. 

Modified Paths:
--------------
    trunk/blender/source/blender/editors/transform/transform.c
    trunk/blender/source/blender/editors/transform/transform.h
    trunk/blender/source/blender/editors/transform/transform_generics.c

Modified: trunk/blender/source/blender/editors/transform/transform.c
===================================================================
--- trunk/blender/source/blender/editors/transform/transform.c	2013-04-24 15:06:42 UTC (rev 56268)
+++ trunk/blender/source/blender/editors/transform/transform.c	2013-04-24 15:15:01 UTC (rev 56269)
@@ -908,12 +908,7 @@
 			case TFM_MODAL_TRANSLATE:
 				/* only switch when... */
 				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);
-					}
+					resetTransModal(t);
 					resetTransRestrictions(t);
 					restoreTransObjects(t);
 					initTranslation(t);
@@ -928,6 +923,7 @@
 				else {
 					if (t->obedit && t->obedit->type == OB_MESH) {
 						if ((t->mode == TFM_TRANSLATION) && (t->spacetype == SPACE_VIEW3D)) {
+							resetTransModal(t);
 							resetTransRestrictions(t);
 							restoreTransObjects(t);
 
@@ -963,8 +959,8 @@
 			case TFM_MODAL_ROTATE:
 				/* only switch when... */
 				if (!(t->options & CTX_TEXTURE) && !(t->options & (CTX_MOVIECLIP | CTX_MASK))) {
-					if (ELEM4(t->mode, TFM_ROTATION, TFM_RESIZE, TFM_TRACKBALL, TFM_TRANSLATION) ) {
-						
+					if (ELEM6(t->mode, TFM_ROTATION, TFM_RESIZE, TFM_TRACKBALL, TFM_TRANSLATION, TFM_EDGE_SLIDE, TFM_VERT_SLIDE)) {
+						resetTransModal(t);
 						resetTransRestrictions(t);
 						
 						if (t->mode == TFM_ROTATION) {
@@ -982,7 +978,8 @@
 				break;
 			case TFM_MODAL_RESIZE:
 				/* only switch when... */
-				if (ELEM3(t->mode, TFM_ROTATION, TFM_TRANSLATION, TFM_TRACKBALL) ) {
+				if (ELEM5(t->mode, TFM_ROTATION, TFM_TRANSLATION, TFM_TRACKBALL, TFM_EDGE_SLIDE, TFM_VERT_SLIDE)) {
+					resetTransModal(t);
 					resetTransRestrictions(t);
 					restoreTransObjects(t);
 					initResize(t);
@@ -1227,6 +1224,7 @@
 			case GKEY:
 				/* only switch when... */
 				if (ELEM3(t->mode, TFM_ROTATION, TFM_RESIZE, TFM_TRACKBALL) ) {
+					resetTransModal(t);
 					resetTransRestrictions(t);
 					restoreTransObjects(t);
 					initTranslation(t);
@@ -1237,6 +1235,7 @@
 			case SKEY:
 				/* only switch when... */
 				if (ELEM3(t->mode, TFM_ROTATION, TFM_TRANSLATION, TFM_TRACKBALL) ) {
+					resetTransModal(t);
 					resetTransRestrictions(t);
 					restoreTransObjects(t);
 					initResize(t);
@@ -1248,7 +1247,7 @@
 				/* only switch when... */
 				if (!(t->options & CTX_TEXTURE)) {
 					if (ELEM4(t->mode, TFM_ROTATION, TFM_RESIZE, TFM_TRACKBALL, TFM_TRANSLATION) ) {
-
+						resetTransModal(t);
 						resetTransRestrictions(t);
 
 						if (t->mode == TFM_ROTATION) {

Modified: trunk/blender/source/blender/editors/transform/transform.h
===================================================================
--- trunk/blender/source/blender/editors/transform/transform.h	2013-04-24 15:06:42 UTC (rev 56268)
+++ trunk/blender/source/blender/editors/transform/transform.h	2013-04-24 15:15:01 UTC (rev 56269)
@@ -697,6 +697,7 @@
 
 int initTransInfo(struct bContext *C, TransInfo *t, struct wmOperator *op, const struct wmEvent *event);
 void postTrans(struct bContext *C, TransInfo *t);
+void resetTransModal(TransInfo *t);
 void resetTransRestrictions(TransInfo *t);
 
 void drawLine(TransInfo *t, const float center[3], const float dir[3], char axis, short options);

Modified: trunk/blender/source/blender/editors/transform/transform_generics.c
===================================================================
--- trunk/blender/source/blender/editors/transform/transform_generics.c	2013-04-24 15:06:42 UTC (rev 56268)
+++ trunk/blender/source/blender/editors/transform/transform_generics.c	2013-04-24 15:15:01 UTC (rev 56269)
@@ -1002,6 +1002,19 @@
 	}
 }
 
+/**
+ * Free data before switching to another mode.
+ */
+void resetTransModal(TransInfo *t)
+{
+	if (t->mode == TFM_EDGE_SLIDE) {
+		freeEdgeSlideVerts(t);
+	}
+	else if (t->mode == TFM_VERT_SLIDE) {
+		freeVertSlideVerts(t);
+	}
+}
+
 void resetTransRestrictions(TransInfo *t)
 {
 	t->flag &= ~T_ALL_RESTRICTIONS;




More information about the Bf-blender-cvs mailing list