Transform: fix redo rotate adjusting orientation
Regression in recent update. Also de-duplicate orientation matrix initialization.
This commit is contained in:
@@ -2226,8 +2226,10 @@ void saveTransform(bContext *C, TransInfo *t, wmOperator *op)
|
|||||||
* so use the orientation in the constraint if set */
|
* so use the orientation in the constraint if set */
|
||||||
|
|
||||||
/* Use 'orient_matrix' instead. */
|
/* Use 'orient_matrix' instead. */
|
||||||
if (orientation != V3D_ORIENT_CUSTOM_MATRIX) {
|
if (t->flag & T_MODAL) {
|
||||||
RNA_property_enum_set(op->ptr, prop, orientation);
|
if (orientation != V3D_ORIENT_CUSTOM_MATRIX) {
|
||||||
|
RNA_property_enum_set(op->ptr, prop, orientation);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3459,10 +3461,6 @@ static void initShear(TransInfo *t)
|
|||||||
t->orient_axis = 2;
|
t->orient_axis = 2;
|
||||||
t->orient_axis_ortho = 1;
|
t->orient_axis_ortho = 1;
|
||||||
}
|
}
|
||||||
if (t->orient_matrix_is_set == false) {
|
|
||||||
t->orient_matrix_is_set = true;
|
|
||||||
copy_m3_m3(t->orient_matrix, t->spacemtx);
|
|
||||||
}
|
|
||||||
|
|
||||||
initShear_mouseInputMode(t);
|
initShear_mouseInputMode(t);
|
||||||
|
|
||||||
@@ -4166,18 +4164,6 @@ static void initRotation(TransInfo *t)
|
|||||||
|
|
||||||
if (t->flag & T_2D_EDIT)
|
if (t->flag & T_2D_EDIT)
|
||||||
t->flag |= T_NO_CONSTRAINT;
|
t->flag |= T_NO_CONSTRAINT;
|
||||||
|
|
||||||
if ((t->options & CTX_PAINT_CURVE) == 0) {
|
|
||||||
if (t->orient_matrix_is_set == false) {
|
|
||||||
t->orient_matrix_is_set = true;
|
|
||||||
t->orientation.unset = V3D_ORIENT_VIEW;
|
|
||||||
copy_m3_m4(t->orient_matrix, t->viewinv);
|
|
||||||
normalize_m3(t->orient_matrix);
|
|
||||||
negate_m3(t->orient_matrix);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
t->orient_axis = 2;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Used by Transform Rotation and Transform Normal Rotation */
|
/* Used by Transform Rotation and Transform Normal Rotation */
|
||||||
@@ -4692,16 +4678,6 @@ static void initNormalRotation(TransInfo *t)
|
|||||||
|
|
||||||
storeCustomLNorValue(tc, bm);
|
storeCustomLNorValue(tc, bm);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (t->orient_matrix_is_set == false) {
|
|
||||||
t->orient_matrix_is_set = true;
|
|
||||||
t->orientation.unset = V3D_ORIENT_VIEW;
|
|
||||||
copy_m3_m4(t->orient_matrix, t->viewinv);
|
|
||||||
normalize_m3(t->orient_matrix);
|
|
||||||
negate_m3(t->orient_matrix);
|
|
||||||
}
|
|
||||||
|
|
||||||
t->orient_axis = 2;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Works by getting custom normal from clnor_data, transform, then store */
|
/* Works by getting custom normal from clnor_data, transform, then store */
|
||||||
|
|||||||
@@ -1342,6 +1342,10 @@ void initTransInfo(bContext *C, TransInfo *t, wmOperator *op, const wmEvent *eve
|
|||||||
/* Leave 't->orient_matrix_is_set' to false,
|
/* Leave 't->orient_matrix_is_set' to false,
|
||||||
* so we overwrite it when we have a useful value. */
|
* so we overwrite it when we have a useful value. */
|
||||||
|
|
||||||
|
/* Default to rotate on the Z axis. */
|
||||||
|
t->orient_axis = 2;
|
||||||
|
t->orient_axis_ortho = 1;
|
||||||
|
|
||||||
/* if there's an event, we're modal */
|
/* if there's an event, we're modal */
|
||||||
if (event) {
|
if (event) {
|
||||||
t->flag |= T_MODAL;
|
t->flag |= T_MODAL;
|
||||||
|
|||||||
@@ -483,6 +483,20 @@ void initTransformOrientation(bContext *C, TransInfo *t)
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (t->orient_matrix_is_set == false) {
|
||||||
|
t->orient_matrix_is_set = true;
|
||||||
|
if (t->flag & T_MODAL) {
|
||||||
|
/* Rotate for example defaults to operating on the view plane. */
|
||||||
|
t->orientation.unset = V3D_ORIENT_VIEW;
|
||||||
|
copy_m3_m4(t->orient_matrix, t->viewinv);
|
||||||
|
normalize_m3(t->orient_matrix);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
copy_m3_m3(t->orient_matrix, t->spacemtx);
|
||||||
|
}
|
||||||
|
negate_m3(t->orient_matrix);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user