diff options
| author | raysan5 <raysan5@gmail.com> | 2016-01-11 13:29:55 +0100 |
|---|---|---|
| committer | raysan5 <raysan5@gmail.com> | 2016-01-11 13:29:55 +0100 |
| commit | 5e7686695fcfe32bbf956990ced0a02b7c881af1 (patch) | |
| tree | 534c4b2f488e6cb0e650316fbee2b9d7a4d12664 /src/raymath.c | |
| parent | e5a56fa98515337c805e5a641cd3787cb6898596 (diff) | |
| download | raylib-5e7686695fcfe32bbf956990ced0a02b7c881af1.tar.gz raylib-5e7686695fcfe32bbf956990ced0a02b7c881af1.zip | |
Review Light/Material system
Simplified for the user (more intuitive and clear)
Removed lighting module dependency
Diffstat (limited to 'src/raymath.c')
| -rw-r--r-- | src/raymath.c | 63 |
1 files changed, 38 insertions, 25 deletions
diff --git a/src/raymath.c b/src/raymath.c index eb773e5f..5feef59d 100644 --- a/src/raymath.c +++ b/src/raymath.c @@ -43,6 +43,18 @@ // Module Functions Definition - Vector3 math //---------------------------------------------------------------------------------- +// Converts Vector3 to float array +float *VectorToFloat(Vector3 vec) +{ + static float buffer[3]; + + buffer[0] = vec.x; + buffer[1] = vec.y; + buffer[2] = vec.z; + + return buffer; +} + // Add two vectors Vector3 VectorAdd(Vector3 v1, Vector3 v2) { @@ -225,31 +237,32 @@ Vector3 VectorZero(void) // Module Functions Definition - Matrix math //---------------------------------------------------------------------------------- -// Returns an OpenGL-ready vector (glMultMatrixf) -// NOTE: Returned vector is row-major instead column-major as expected, -// it means, returned vector is a transposed version of the matrix! -float *GetMatrixVector(Matrix mat) -{ - static float vector[16]; - - vector[0] = mat.m0; - vector[1] = mat.m4; - vector[2] = mat.m8; - vector[3] = mat.m12; - vector[4] = mat.m1; - vector[5] = mat.m5; - vector[6] = mat.m9; - vector[7] = mat.m13; - vector[8] = mat.m2; - vector[9] = mat.m6; - vector[10] = mat.m10; - vector[11] = mat.m14; - vector[12] = mat.m3; - vector[13] = mat.m7; - vector[14] = mat.m11; - vector[15] = mat.m15; - - return vector; +// Converts Matrix to float array +// NOTE: Returned vector is a transposed version of the Matrix struct, +// it should be this way because, despite raymath use OpenGL column-major convention, +// Matrix struct memory alignment and variables naming are not coherent +float *MatrixToFloat(Matrix mat) +{ + static float buffer[16]; + + buffer[0] = mat.m0; + buffer[1] = mat.m4; + buffer[2] = mat.m8; + buffer[3] = mat.m12; + buffer[4] = mat.m1; + buffer[5] = mat.m5; + buffer[6] = mat.m9; + buffer[7] = mat.m13; + buffer[8] = mat.m2; + buffer[9] = mat.m6; + buffer[10] = mat.m10; + buffer[11] = mat.m14; + buffer[12] = mat.m3; + buffer[13] = mat.m7; + buffer[14] = mat.m11; + buffer[15] = mat.m15; + + return buffer; } // Compute matrix determinant |
