Added missing Vector3 slerp and Vector3 project
Vector3 slerp and Vector3 project were missing from godot cpp so I added them.pull/459/head
parent
a733457285
commit
96ae052e06
|
@ -165,6 +165,11 @@ struct Vector3 {
|
||||||
z + (p_t * (p_b.z - z)));
|
z + (p_t * (p_b.z - z)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inline Vector3 slerp(const Vector3 &p_b, real_t p_t) const {
|
||||||
|
real_t theta = angle_to(p_b);
|
||||||
|
return rotated(cross(p_b).normalized(), theta * p_t);
|
||||||
|
}
|
||||||
|
|
||||||
Vector3 cubic_interpolate(const Vector3 &b, const Vector3 &pre_a, const Vector3 &post_b, const real_t t) const;
|
Vector3 cubic_interpolate(const Vector3 &b, const Vector3 &pre_a, const Vector3 &post_b, const real_t t) const;
|
||||||
|
|
||||||
Vector3 move_toward(const Vector3 &p_to, const real_t p_delta) const {
|
Vector3 move_toward(const Vector3 &p_to, const real_t p_delta) const {
|
||||||
|
@ -206,6 +211,10 @@ struct Vector3 {
|
||||||
return x * b.x + y * b.y + z * b.z;
|
return x * b.x + y * b.y + z * b.z;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inline Vector3 project(const Vector3 &p_b) const {
|
||||||
|
return p_b * (dot(p_b) / p_b.length_squared());
|
||||||
|
}
|
||||||
|
|
||||||
inline real_t angle_to(const Vector3 &b) const {
|
inline real_t angle_to(const Vector3 &b) const {
|
||||||
return std::atan2(cross(b).length(), dot(b));
|
return std::atan2(cross(b).length(), dot(b));
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue