summaryrefslogtreecommitdiff
path: root/core/math/matrix3.h
diff options
context:
space:
mode:
authorFerenc Arn <tagcup@yahoo.com>2016-10-18 15:50:21 -0500
committerFerenc Arn <tagcup@yahoo.com>2017-01-03 17:41:04 -0600
commitbd7ba0b664fa98381db9ef8edb69ba211213d595 (patch)
tree8e313066ce55a3366cd6b972ff429372583cda28 /core/math/matrix3.h
parentf2e99826c0b1e8227644bfab0795d858c504d279 (diff)
Use right handed coordinate system for rotation matrices and quaternions. Also fixes Euler angles (XYZ convention, which is used as default by Blender).
Furthermore, functions which expect a rotation matrix will now give an error simply, rather than trying to orthonormalize such matrices. The documentation for such functions has be updated accordingly. This commit breaks code using 3D rotations, and is a part of the breaking changes in 2.1 -> 3.0 transition. The code affected within Godot code base is fixed in this commit.
Diffstat (limited to 'core/math/matrix3.h')
-rw-r--r--core/math/matrix3.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/core/math/matrix3.h b/core/math/matrix3.h
index 2792200b7d..1d967c03b8 100644
--- a/core/math/matrix3.h
+++ b/core/math/matrix3.h
@@ -91,6 +91,8 @@ public:
return elements[0][2] * v[0] + elements[1][2] * v[1] + elements[2][2] * v[2];
}
+ bool isequal_approx(const Matrix3& a, const Matrix3& b) const;
+
bool operator==(const Matrix3& p_matrix) const;
bool operator!=(const Matrix3& p_matrix) const;
@@ -102,6 +104,9 @@ public:
int get_orthogonal_index() const;
void set_orthogonal_index(int p_index);
+ bool is_orthogonal() const;
+ bool is_rotation() const;
+
operator String() const;
void get_axis_and_angle(Vector3 &r_axis,real_t& r_angle) const;