forked from bartvdbraak/blender
[#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).
This commit is contained in:
parent
1dca0e1c46
commit
1a28bf797e
@ -468,6 +468,7 @@ int validSnappingNormal(TransInfo *t);
|
||||
|
||||
void initTrans(TransInfo *t);
|
||||
void postTrans (TransInfo *t);
|
||||
void resetTransRestrictions(TransInfo *t);
|
||||
|
||||
void drawLine(float *center, float *dir, char axis, short options);
|
||||
|
||||
|
@ -737,6 +737,7 @@ static void transformEvent(unsigned short event, short val) {
|
||||
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 @@ static void transformEvent(unsigned short event, short val) {
|
||||
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,7 +754,9 @@ static void transformEvent(unsigned short event, short val) {
|
||||
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);
|
||||
|
@ -685,6 +685,8 @@ void BIF_drawConstraint(void)
|
||||
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)
|
||||
|
@ -649,6 +649,11 @@ void drawLine(float *center, float *dir, char axis, short options)
|
||||
myloadmatrix(G.vd->viewmat);
|
||||
}
|
||||
|
||||
void resetTransRestrictions(TransInfo *t)
|
||||
{
|
||||
t->flag &= ~T_ALL_RESTRICTIONS;
|
||||
}
|
||||
|
||||
void initTrans (TransInfo *t)
|
||||
{
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user