aboutsummaryrefslogtreecommitdiff
path: root/core/math/transform.cpp
diff options
context:
space:
mode:
authorFerenc Arn2017-01-05 11:31:39 -0600
committerFerenc Arn2017-01-08 10:36:14 -0600
commit6b1252cdfa5988b77917518bc291a0cc34e5066e (patch)
tree05e0b10a1b80fcb97bbcaec8c6aca276a2502f49 /core/math/transform.cpp
parent76c2e8583e70e8c976a306e77a40e8e7226aa249 (diff)
downloadgodot-6b1252cdfa5988b77917518bc291a0cc34e5066e.tar.gz
godot-6b1252cdfa5988b77917518bc291a0cc34e5066e.tar.zst
godot-6b1252cdfa5988b77917518bc291a0cc34e5066e.zip
Diffstat (limited to 'core/math/transform.cpp')
-rw-r--r--core/math/transform.cpp9
1 files changed, 5 insertions, 4 deletions
diff --git a/core/math/transform.cpp b/core/math/transform.cpp
index 8516e4afc..0dba12101 100644
--- a/core/math/transform.cpp
+++ b/core/math/transform.cpp
@@ -54,7 +54,8 @@ void Transform::invert() {
}
Transform Transform::inverse() const {
-
+ // FIXME: this function assumes the basis is a rotation matrix, with no scaling.
+ // Transform::affine_inverse can handle matrices with scaling, so GDScript should eventually use that.
Transform ret=*this;
ret.invert();
return ret;
@@ -63,12 +64,12 @@ Transform Transform::inverse() const {
void Transform::rotate(const Vector3& p_axis,real_t p_phi) {
- *this = *this * Transform( Matrix3( p_axis, p_phi ), Vector3() );
+ *this = rotated(p_axis, p_phi);
}
Transform Transform::rotated(const Vector3& p_axis,real_t p_phi) const{
- return *this * Transform( Matrix3( p_axis, p_phi ), Vector3() );
+ return Transform(Matrix3( p_axis, p_phi ), Vector3()) * (*this);
}
void Transform::rotate_basis(const Vector3& p_axis,real_t p_phi) {
@@ -113,7 +114,7 @@ void Transform::set_look_at( const Vector3& p_eye, const Vector3& p_target, cons
}
-Transform Transform::interpolate_with(const Transform& p_transform, float p_c) const {
+Transform Transform::interpolate_with(const Transform& p_transform, real_t p_c) const {
/* not sure if very "efficient" but good enough? */