Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2021-01-16 03:29:56 +0300
committerCampbell Barton <ideasman42@gmail.com>2021-01-16 03:32:00 +0300
commitc4bbe44e472b97911127ce354954ff7e9e290a3d (patch)
tree943218e8bc3326e258bc7120af28d24ceb12fe33 /source/blender/editors/transform
parent2f0d919f89cbed64965fa7c39d92419b0ef5bd9e (diff)
Add Object Tool: workaround non-orthogonal orientation matrices
Diffstat (limited to 'source/blender/editors/transform')
-rw-r--r--source/blender/editors/transform/transform_orientations.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/source/blender/editors/transform/transform_orientations.c b/source/blender/editors/transform/transform_orientations.c
index 606862f05aa..90b2ce2a385 100644
--- a/source/blender/editors/transform/transform_orientations.c
+++ b/source/blender/editors/transform/transform_orientations.c
@@ -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) */