Merge branch 'blender-v2.92-release'

This commit is contained in:
Campbell Barton 2021-01-16 11:39:27 +11:00
commit 3856c58f5d
2 changed files with 15 additions and 0 deletions

View File

@ -795,6 +795,12 @@ static void view3d_interactive_add_calc_plane(bContext *C,
const RegionView3D *rv3d = region->regiondata;
ED_transform_calc_orientation_from_type(C, r_matrix_orient);
/* Non-orthogonal matrices cause the preview and final result not to match.
*
* While making orthogonal doesn't always work well (especially with gimbal orientation for e.g.)
* it's a corner case, without better alternatives as objects don't support shear. */
orthogonalize_m3(r_matrix_orient, plane_axis);
SnapObjectContext *snap_context = NULL;
bool snap_context_free = false;

View File

@ -500,6 +500,15 @@ void ED_transform_calc_orientation_from_type(const bContext *C, float r_mat[3][3
C, r_mat, scene, rv3d, ob, obedit, orientation_type, orientation_index_custom, pivot_point);
}
/**
* \note The resulting matrix may not be orthogonal,
* callers that depend on `r_mat` to be orthogonal should use #orthogonalize_m3.
*
* A non orthogonal matrix may be returned when:
* - #V3D_ORIENT_GIMBAL the result won't be orthogonal unless the object has no rotation.
* - #V3D_ORIENT_LOCAL may contain shear from non-uniform scale in parent/child relationships.
* - #V3D_ORIENT_CUSTOM may have been created from #V3D_ORIENT_LOCAL.
*/
short ED_transform_calc_orientation_from_type_ex(const bContext *C,
float r_mat[3][3],
/* extra args (can be accessed from context) */