diff --git a/include/core/Vector2.hpp b/include/core/Vector2.hpp index 99ac60f2..5364330c 100644 --- a/include/core/Vector2.hpp +++ b/include/core/Vector2.hpp @@ -180,8 +180,8 @@ struct Vector2 { return -reflect(p_normal); } - inline Vector2 reflect(const Vector2 &p_vec) const { - return p_vec - *this * this->dot(p_vec) * 2.0; + inline Vector2 reflect(const Vector2 &p_normal) const { + return -(*this -p_normal * this->dot(p_normal) * 2.0); } inline real_t angle() const { diff --git a/include/core/Vector3.hpp b/include/core/Vector3.hpp index 2d78f211..8b39113b 100644 --- a/include/core/Vector3.hpp +++ b/include/core/Vector3.hpp @@ -238,8 +238,8 @@ struct Vector3 { return v; } - inline Vector3 reflect(const Vector3 &by) const { - return by - *this * this->dot(by) * 2.f; + inline Vector3 reflect(const Vector3 &p_normal) const { + return -(*this - p_normal * this->dot(p_normal) * 2.f); } inline Vector3 rotated(const Vector3 &axis, const real_t phi) const {