[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [17542] trunk/blender/source/blender: [ #18021] Rotating gets locked to axis after trackball rotate mode is entered

Martin Poirier theeth at yahoo.com
Sun Nov 23 16:27:54 CET 2008


Revision: 17542
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=17542
Author:   theeth
Date:     2008-11-23 16:27:53 +0100 (Sun, 23 Nov 2008)

Log Message:
-----------
[#18021] Rotating gets locked to axis after trackball rotate mode is entered

Reset transform restriction flags when switching to other transformations while running.

Also don't draw constraint if no constraint flag is on (old annoyance).

Modified Paths:
--------------
    trunk/blender/source/blender/include/transform.h
    trunk/blender/source/blender/src/transform.c
    trunk/blender/source/blender/src/transform_constraints.c
    trunk/blender/source/blender/src/transform_generics.c

Modified: trunk/blender/source/blender/include/transform.h
===================================================================
--- trunk/blender/source/blender/include/transform.h	2008-11-23 10:00:01 UTC (rev 17541)
+++ trunk/blender/source/blender/include/transform.h	2008-11-23 15:27:53 UTC (rev 17542)
@@ -468,6 +468,7 @@
 
 void initTrans(TransInfo *t);
 void postTrans (TransInfo *t);
+void resetTransRestrictions(TransInfo *t);
 
 void drawLine(float *center, float *dir, char axis, short options);
 

Modified: trunk/blender/source/blender/src/transform.c
===================================================================
--- trunk/blender/source/blender/src/transform.c	2008-11-23 10:00:01 UTC (rev 17541)
+++ trunk/blender/source/blender/src/transform.c	2008-11-23 15:27:53 UTC (rev 17542)
@@ -737,6 +737,7 @@
 		case GKEY:
 			/* only switch when... */
 			if( ELEM3(Trans.mode, TFM_ROTATION, TFM_RESIZE, TFM_TRACKBALL) ) { 
+				resetTransRestrictions(&Trans); 
 				restoreTransObjects(&Trans);
 				initTranslation(&Trans);
 				Trans.redraw = 1;
@@ -745,6 +746,7 @@
 		case SKEY:
 			/* only switch when... */
 			if( ELEM3(Trans.mode, TFM_ROTATION, TFM_TRANSLATION, TFM_TRACKBALL) ) { 
+				resetTransRestrictions(&Trans); 
 				restoreTransObjects(&Trans);
 				initResize(&Trans);
 				Trans.redraw = 1;
@@ -752,8 +754,10 @@
 			break;
 		case RKEY:
 			/* only switch when... */
-			if( ELEM4(Trans.mode, TFM_ROTATION, TFM_RESIZE, TFM_TRACKBALL, TFM_TRANSLATION) ) { 
+			if( ELEM4(Trans.mode, TFM_ROTATION, TFM_RESIZE, TFM_TRACKBALL, TFM_TRANSLATION) ) {
 				
+				resetTransRestrictions(&Trans); 
+				
 				if (Trans.mode == TFM_ROTATION) {
 					restoreTransObjects(&Trans);
 					initTrackball(&Trans);

Modified: trunk/blender/source/blender/src/transform_constraints.c
===================================================================
--- trunk/blender/source/blender/src/transform_constraints.c	2008-11-23 10:00:01 UTC (rev 17541)
+++ trunk/blender/source/blender/src/transform_constraints.c	2008-11-23 15:27:53 UTC (rev 17542)
@@ -685,6 +685,8 @@
 		return;
 	if (t->flag & T_USES_MANIPULATOR)
 		return;
+	if (t->flag & T_NO_CONSTRAINT)
+		return;
 	
 	/* nasty exception for Z constraint in camera view */
 	if((t->flag & T_OBJECT) && G.vd->camera==OBACT && G.vd->persp==V3D_CAMOB) 

Modified: trunk/blender/source/blender/src/transform_generics.c
===================================================================
--- trunk/blender/source/blender/src/transform_generics.c	2008-11-23 10:00:01 UTC (rev 17541)
+++ trunk/blender/source/blender/src/transform_generics.c	2008-11-23 15:27:53 UTC (rev 17542)
@@ -649,6 +649,11 @@
 	myloadmatrix(G.vd->viewmat);
 }
 
+void resetTransRestrictions(TransInfo *t)
+{
+	t->flag &= ~T_ALL_RESTRICTIONS;
+}
+
 void initTrans (TransInfo *t)
 {
 	





More information about the Bf-blender-cvs mailing list