forked from bartvdbraak/blender
Bug fix #34620
SHIFT+T (texture space transform) crashed in editmode. Not checking NULL pointer.
This commit is contained in:
parent
ad9e675ee1
commit
1d9b80fc3b
@ -3583,12 +3583,15 @@ static void ElementRotation(TransInfo *t, TransData *td, float mat[3][3], short
|
|||||||
if ((t->flag & T_V3D_ALIGN) == 0) { // align mode doesn't rotate objects itself
|
if ((t->flag & T_V3D_ALIGN) == 0) { // align mode doesn't rotate objects itself
|
||||||
/* euler or quaternion? */
|
/* euler or quaternion? */
|
||||||
if ((td->ext->rotOrder == ROT_MODE_QUAT) || (td->flag & TD_USEQUAT)) {
|
if ((td->ext->rotOrder == ROT_MODE_QUAT) || (td->flag & TD_USEQUAT)) {
|
||||||
mul_serie_m3(fmat, td->mtx, mat, td->smtx, NULL, NULL, NULL, NULL, NULL);
|
/* can be called for texture space translate for example, then opt out */
|
||||||
mat3_to_quat(quat, fmat); // Actual transform
|
if (td->ext->quat) {
|
||||||
|
mul_serie_m3(fmat, td->mtx, mat, td->smtx, NULL, NULL, NULL, NULL, NULL);
|
||||||
mul_qt_qtqt(td->ext->quat, quat, td->ext->iquat);
|
mat3_to_quat(quat, fmat); // Actual transform
|
||||||
/* this function works on end result */
|
|
||||||
protectedQuaternionBits(td->protectflag, td->ext->quat, td->ext->iquat);
|
mul_qt_qtqt(td->ext->quat, quat, td->ext->iquat);
|
||||||
|
/* this function works on end result */
|
||||||
|
protectedQuaternionBits(td->protectflag, td->ext->quat, td->ext->iquat);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if (td->ext->rotOrder == ROT_MODE_AXISANGLE) {
|
else if (td->ext->rotOrder == ROT_MODE_AXISANGLE) {
|
||||||
/* calculate effect based on quats */
|
/* calculate effect based on quats */
|
||||||
|
Loading…
Reference in New Issue
Block a user