diff --git a/README.md b/README.md index 5b9e2c8..98226ce 100644 --- a/README.md +++ b/README.md @@ -9,6 +9,7 @@ Feel free to submit a pull request with your own contributions! - [LinearInterpolation.lua](#linearinterpolation) - [Map.lua](#map) - [ModelCFramer.lua](#modelcframer) + - [Reflection.lua](#reflection) - [RoundNumbers.lua](#roundnumbers) ### AngleBetween @@ -111,6 +112,21 @@ end ---------- +### Reflection +[`Reflection.lua`](src/Reflection.lua) + +```lua +-- Finding the reflection vector for an incident vector +-- Arguments made for raycast [Origin, RaycastResult.Position, RaycastResult.Normal] + +local function Reflection(origin : Vector3,hitpos : Vector3,normal : Vector3) + return ((hitpos - origin) - 2*((hitpos - origin):Dot(normal) * normal)) +end +``` + +---------- + + ### RoundNumbers [`RoundNumbers.lua`](src/RoundNumbers.lua) diff --git a/src/Reflection.lua b/src/Reflection.lua new file mode 100644 index 0000000..3f8ede0 --- /dev/null +++ b/src/Reflection.lua @@ -0,0 +1,6 @@ +-- Finding the reflection vector for an incident vector +-- Arguments made for raycast [Origin, RaycastResult.Position, RaycastResult.Normal] + +local function Reflection(origin : Vector3,hitpos : Vector3,normal : Vector3) + return ((hitpos - origin) - 2*((hitpos - origin):Dot(normal) * normal)) +end \ No newline at end of file