From 9b13b3fc2a934291ad20d2a89937b41533f9ae15 Mon Sep 17 00:00:00 2001 From: NuklearBomb <33639078+NuklearBomb@users.noreply.github.com> Date: Mon, 9 Jul 2018 15:17:38 -0400 Subject: [PATCH] Added "New" and "NewV" functions "New" and "NewV" functions have been added for creating Vector2, Vector3, Quaternion, and Matrix types in a more streamlined fashion. --- src/raymath.h | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/src/raymath.h b/src/raymath.h index 4e100bc38..72dc58df8 100644 --- a/src/raymath.h +++ b/src/raymath.h @@ -153,6 +153,20 @@ RMDEF float Clamp(float value, float min, float max) // Module Functions Definition - Vector2 math //---------------------------------------------------------------------------------- +// Create a vector +RMDEF Vector2 Vector2New(float x, float y) +{ + Vector2 result = { x, y }; + return result; +} + +// Create a vector from a float array +RMDEF Vector2 Vector2NewV(float arr[2]) +{ + Vector2 result = { arr[0], arr[1] }; + return result; +} + // Vector with components value 0.0f RMDEF Vector2 Vector2Zero(void) { @@ -242,6 +256,20 @@ RMDEF Vector2 Vector2Normalize(Vector2 v) // Module Functions Definition - Vector3 math //---------------------------------------------------------------------------------- +// Create a vector +RMDEF Vector3 Vector3New(float x, float y, float z) +{ + Vector3 result = { x, y, z }; + return result; +} + +// Create a vector from a float array +RMDEF Vector3 Vector3NewV(float arr[3]) +{ + Vector3 result = { arr[0], arr[1], arr[2] }; + return result; +} + // Vector with components value 0.0f RMDEF Vector3 Vector3Zero(void) { @@ -506,6 +534,17 @@ RMDEF float3 Vector3ToFloatV(Vector3 v) // Module Functions Definition - Matrix math //---------------------------------------------------------------------------------- +// Create a matrix from a float array +RMDEF Matrix MatrixNewV(float m[16]) +{ + Matrix result = { m[0], m[1], m[2], m[3], + m[4], m[5], m[6], m[7], + m[8], m[9], m[10], m[11], + m[12], m[13], m[14], m[15] }; + + return result; +} + // Compute matrix determinant RMDEF float MatrixDeterminant(Matrix mat) { @@ -970,6 +1009,20 @@ RMDEF float16 MatrixToFloatV(Matrix mat) // Module Functions Definition - Quaternion math //---------------------------------------------------------------------------------- +// Create a quaternion +RMDEF Quaternion QuaternionNew(float x, float y, float z, float w) +{ + Quaternion result = { x, y, z, w }; + return result; +} + +// Create a quaternion from a float array +RMDEF Quaternion QuaternionNewV(float arr[4]) +{ + Quaternion result = { arr[0], arr[1], arr[2], arr[3] }; + return result; +} + // Returns identity quaternion RMDEF Quaternion QuaternionIdentity(void) {