mirror of
https://github.com/tiennm99/godot.git
synced 2026-08-05 08:22:59 +00:00
Add SLERP to Vector{2,3}, optimize Quat's Vector3 rotation.
Also even out Basis and Quat APIs a little.
This commit is contained in:
@@ -826,3 +826,16 @@ void Basis::set_diagonal(const Vector3 p_diag) {
|
||||
elements[2][1] = 0;
|
||||
elements[2][2] = p_diag.z;
|
||||
}
|
||||
|
||||
Basis Basis::slerp(const Basis &target, const real_t &t) const {
|
||||
// TODO: implement this directly without using quaternions to make it more efficient
|
||||
#ifdef MATH_CHECKS
|
||||
ERR_FAIL_COND_V(is_rotation() == false, Basis());
|
||||
ERR_FAIL_COND_V(target.is_rotation() == false, Basis());
|
||||
#endif
|
||||
|
||||
Quat from(*this);
|
||||
Quat to(target);
|
||||
|
||||
return Basis(from.slerp(to, t));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user