Browse Source

Small fix in matrix.

Godzil 3 years ago
parent
commit
eaf8c77fbe
2 changed files with 52 additions and 29 deletions
  1. 7 4
      source/include/matrix.h
  2. 45 25
      source/matrix.c

+ 7 - 4
source/include/matrix.h

@@ -25,10 +25,13 @@ typedef struct matrix4_t
  **********************************************************************************************************************/
 static const struct matrix4_t mat4Identity =
 {
-    1, 0, 0, 0,
-    0, 1, 0, 0,
-    0, 0, 1, 0,
-    0, 0, 0, 1
+    .v =
+    {
+        1, 0, 0, 0,
+        0, 1, 0, 0,
+        0, 0, 1, 0,
+        0, 0, 0, 1
+    }
 };
 
 /***********************************************************************************************************************

+ 45 - 25
source/matrix.c

@@ -39,55 +39,75 @@ vec4_t mat4ProdVec4(matrix4_t mat, vec4_t v)
 /* Matrix creations */
 matrix4_t mat4Scale(double scaleX, double scaleY, double scaleZ)
 {
-    matrix4_t ret = {
-        scaleX, 0, 0,0,
-        0, scaleY, 0, 0,
-        0, 0, scaleZ, 0,
-        0, 0, 0, 1
+    matrix4_t ret =
+    {
+        .v =
+        {
+            scaleX, 0, 0, 0,
+            0, scaleY, 0, 0,
+            0, 0, scaleZ, 0,
+            0, 0, 0, 1
+        }
     };
     return ret;
 }
 
 matrix4_t mat4Translate(double tX, double tY, double tZ)
 {
-    matrix4_t ret = {
-        1, 0, 0, tX,
-        0, 1, 0, tY,
-        0, 0, 1, tZ,
-        0, 0, 0, 1
+    matrix4_t ret =
+    {
+        .v =
+        {
+            1, 0, 0, tX,
+            0, 1, 0, tY,
+            0, 0, 1, tZ,
+            0, 0, 0, 1
+        }
     };
     return ret;
 }
 
 matrix4_t mat4RotationX(double angle)
 {
-    matrix4_t ret = {
-        1, 0, 0, 0,
-        0, cos(angle), -sin(angle), 0,
-        0, sin(angle), cos(angle), 0,
-        0, 0, 0, 1
+    matrix4_t ret =
+    {
+        .v =
+        {
+            1, 0, 0, 0,
+            0, cos(angle), -sin(angle), 0,
+            0, sin(angle), cos(angle), 0,
+            0, 0, 0, 1
+        }
     };
     return ret;
 }
 
 matrix4_t mat4RotationY(double angle)
 {
-    matrix4_t ret = {
-        cos(angle), 0, sin(angle), 0,
-        0, 1, 0, 0,
-        -sin(angle), 0, cos(angle), 0,
-        0, 0, 0, 1
+    matrix4_t ret =
+    {
+        .v =
+        {
+            cos(angle), 0, sin(angle), 0,
+            0, 1, 0, 0,
+            -sin(angle), 0, cos(angle), 0,
+            0, 0, 0, 1
+        }
     };
     return ret;
 }
 
 matrix4_t mat4RotationZ(double angle)
 {
-    matrix4_t ret = {
-        cos(angle), -sin(angle), 0, 0,
-        sin(angle), cos(angle), 0, 0,
-        0, 0, 1, 0,
-        0, 0, 0, 1
+    matrix4_t ret =
+    {
+        .v =
+        {
+            cos(angle), -sin(angle), 0, 0,
+            sin(angle), cos(angle), 0, 0,
+            0, 0, 1, 0,
+            0, 0, 0, 1
+        }
     };
     return ret;
 }