diff options
Diffstat (limited to 'core/math/vector3.cpp')
-rw-r--r-- | core/math/vector3.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/core/math/vector3.cpp b/core/math/vector3.cpp index d4317d506c..cc71b1dacf 100644 --- a/core/math/vector3.cpp +++ b/core/math/vector3.cpp @@ -64,6 +64,17 @@ Vector3 Vector3::snapped(Vector3 p_step) const { return v; } +Vector3 Vector3::limit_length(const real_t p_len) const { + const real_t l = length(); + Vector3 v = *this; + if (l > 0 && p_len < l) { + v /= l; + v *= p_len; + } + + return v; +} + Vector3 Vector3::cubic_interpolate(const Vector3 &p_b, const Vector3 &p_pre_a, const Vector3 &p_post_b, real_t p_weight) const { Vector3 p0 = p_pre_a; Vector3 p1 = *this; |