diff options
author | Bastiaan Olij <mux213@gmail.com> | 2018-11-22 22:14:28 +1100 |
---|---|---|
committer | Bastiaan Olij <mux213@gmail.com> | 2018-11-22 22:14:28 +1100 |
commit | d7982cfac3496de12cb41f789973f2d996628236 (patch) | |
tree | b53d6cb9eef00a2adc8435c69ab7a1a81f373ed4 /src/core/Vector3.cpp | |
parent | 8ffda12b83f3ba22cb4cfa785f5931c15b6897c0 (diff) | |
download | redot-cpp-d7982cfac3496de12cb41f789973f2d996628236.tar.gz |
Redid PR 190 for master now that nativescript 1.1 has been merged
Diffstat (limited to 'src/core/Vector3.cpp')
-rw-r--r-- | src/core/Vector3.cpp | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/src/core/Vector3.cpp b/src/core/Vector3.cpp index 2f2e45e..4098825 100644 --- a/src/core/Vector3.cpp +++ b/src/core/Vector3.cpp @@ -10,7 +10,6 @@ namespace godot { - Vector3::Vector3(real_t x, real_t y, real_t z) { this->x = x; @@ -209,6 +208,11 @@ Vector3 Vector3::cubic_interpolate(const Vector3& b, const Vector3& pre_a, const return out; } +Vector3 Vector3::bounce(const Vector3& p_normal) const +{ + return -reflect(p_normal); +} + real_t Vector3::length() const { real_t x2=x*x; @@ -242,6 +246,11 @@ real_t Vector3::dot(const Vector3& b) const return x*b.x + y*b.y + z*b.z; } +real_t Vector3::angle_to(const Vector3& b) const +{ + return std::atan2(cross(b).length(), dot(b)); +} + Vector3 Vector3::floor() const { return Vector3(::floor(x), ::floor(y), ::floor(z)); @@ -252,7 +261,18 @@ Vector3 Vector3::inverse() const return Vector3( 1.0/x, 1.0/y, 1.0/z ); } +bool Vector3::is_normalized() const +{ + return std::abs(length_squared() - 1.0) < 0.00001; +} +Basis Vector3::outer(const Vector3& b) const +{ + Vector3 row0(x * b.x, x * b.y, x * b.z); + Vector3 row1(y * b.x, y * b.y, y * b.z); + Vector3 row2(z * b.x, z * b.y, z * b.z); + return Basis(row0, row1, row2); +} int Vector3::max_axis() const |