[Mono] Vector2/3 Project methods

This commit is contained in:
Aaron Franke 2018-08-22 13:27:35 -04:00
parent 334acc017f
commit 434973fb83
4 changed files with 12 additions and 2 deletions

View file

@ -122,7 +122,7 @@ Vector2 Vector2::rotated(real_t p_by) const {
}
Vector2 Vector2::project(const Vector2 &p_b) const {
return p_b * (dot(p_b) / p_b.dot(p_b));
return p_b * (dot(p_b) / p_b.length_squared());
}
Vector2 Vector2::snapped(const Vector2 &p_by) const {

View file

@ -241,7 +241,7 @@ real_t Vector3::distance_squared_to(const Vector3 &p_b) const {
}
Vector3 Vector3::project(const Vector3 &p_b) const {
return p_b * (dot(p_b) / p_b.dot(p_b));
return p_b * (dot(p_b) / p_b.length_squared());
}
real_t Vector3::angle_to(const Vector3 &p_b) const {

View file

@ -184,6 +184,11 @@ namespace Godot
return result;
}
public Vector2 Project(Vector2 onNormal)
{
return onNormal * (Dot(onNormal) / onNormal.LengthSquared());
}
public Vector2 Reflect(Vector2 n)
{
return 2.0f * n * Dot(n) - this;

View file

@ -210,6 +210,11 @@ namespace Godot
);
}
public Vector3 Project(Vector3 onNormal)
{
return onNormal * (Dot(onNormal) / onNormal.LengthSquared());
}
public Vector3 Reflect(Vector3 n)
{
#if DEBUG