From a8685ee4fd6eaba79fa53f4adf261d672947a000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel-Junior=20Dub=C3=A9?= <35472759+daniel-junior-dube@users.noreply.github.com> Date: Sun, 4 Oct 2020 06:12:52 -0400 Subject: [PATCH] Add Vector2Reflect to raymath.h (#1400) Vector3Reflect exists but not Vector2Reflect. The code is pretty much the same. I'm not sure what RMDEF does, but I added it to match other function definitions (haven't done much C programming, maybe I'm missing something). Can someone explain to me what it does? --- src/raymath.h | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/raymath.h b/src/raymath.h index 783c4449b..06ab13201 100644 --- a/src/raymath.h +++ b/src/raymath.h @@ -297,6 +297,19 @@ RMDEF Vector2 Vector2Lerp(Vector2 v1, Vector2 v2, float amount) return result; } +// Calculate reflected vector to normal +RMDEF Vector2 Vector2Reflect(Vector2 v, Vector2 normal) +{ + Vector2 result = { 0 }; + + float dotProduct = Vector2DotProduct(v, normal); + + result.x = v.x - (2.0f*normal.x)*dotProduct; + result.y = v.y - (2.0f*normal.y)*dotProduct; + + return result; +} + // Rotate Vector by float in Degrees. RMDEF Vector2 Vector2Rotate(Vector2 v, float degs) {