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)
{
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs