[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