Merge pull request #21240 from aaronfranke/mono-project-vector

[Mono] Vector2/3 Project methods
This commit is contained in:
Rémi Verschelde 2018-08-23 08:59:26 +02:00 committed by GitHub
commit 1e729630d6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
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