@@ -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 {
@@ -241,7 +241,7 @@ real_t Vector3::distance_squared_to(const Vector3 &p_b) const {
Vector3 Vector3::project(const Vector3 &p_b) const {
real_t Vector3::angle_to(const Vector3 &p_b) const {
@@ -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;
@@ -210,6 +210,11 @@ namespace Godot
);
+ public Vector3 Project(Vector3 onNormal)
public Vector3 Reflect(Vector3 n)
#if DEBUG