|
@@ -129,13 +129,13 @@ typedef enum PhysicsShapeType { PHYSICS_CIRCLE, PHYSICS_POLYGON } PhysicsShapeTy
|
|
|
// Previously defined to be used in PhysicsShape struct as circular dependencies
|
|
|
typedef struct PhysicsBodyData *PhysicsBody;
|
|
|
|
|
|
-// Mat2 type (used for polygon shape rotation matrix)
|
|
|
-typedef struct Mat2 {
|
|
|
+// Matrix2x2 type (used for polygon shape rotation matrix)
|
|
|
+typedef struct Matrix2x2 {
|
|
|
float m00;
|
|
|
float m01;
|
|
|
float m10;
|
|
|
float m11;
|
|
|
-} Mat2;
|
|
|
+} Matrix2x2;
|
|
|
|
|
|
typedef struct PolygonData {
|
|
|
unsigned int vertexCount; // Current used vertex and normals count
|
|
@@ -147,7 +147,7 @@ typedef struct PhysicsShape {
|
|
|
PhysicsShapeType type; // Physics shape type (circle or polygon)
|
|
|
PhysicsBody body; // Shape physics body reference
|
|
|
float radius; // Circle shape radius (used for circle shapes)
|
|
|
- Mat2 transform; // Vertices transform matrix 2x2
|
|
|
+ Matrix2x2 transform; // Vertices transform matrix 2x2
|
|
|
PolygonData vertexData; // Polygon shape vertices position and normals data (just used for polygon shapes)
|
|
|
} PhysicsShape;
|
|
|
|
|
@@ -335,10 +335,10 @@ static Vector2 Vector2Add(Vector2 v1, Vector2 v2);
|
|
|
static Vector2 Vector2Subtract(Vector2 v1, Vector2 v2); // Returns the subtract of two given vectors
|
|
|
#endif
|
|
|
|
|
|
-static Mat2 Mat2Radians(float radians); // Creates a matrix 2x2 from a given radians value
|
|
|
-static void Mat2Set(Mat2 *matrix, float radians); // Set values from radians to a created matrix 2x2
|
|
|
-static inline Mat2 Mat2Transpose(Mat2 matrix); // Returns the transpose of a given matrix 2x2
|
|
|
-static inline Vector2 Mat2MultiplyVector2(Mat2 matrix, Vector2 vector); // Multiplies a vector by a matrix 2x2
|
|
|
+static Matrix2x2 Mat2Radians(float radians); // Creates a matrix 2x2 from a given radians value
|
|
|
+static void Mat2Set(Matrix2x2 *matrix, float radians); // Set values from radians to a created matrix 2x2
|
|
|
+static inline Matrix2x2 Mat2Transpose(Matrix2x2 matrix); // Returns the transpose of a given matrix 2x2
|
|
|
+static inline Vector2 Mat2MultiplyVector2(Matrix2x2 matrix, Vector2 vector); // Multiplies a vector by a matrix 2x2
|
|
|
|
|
|
//----------------------------------------------------------------------------------
|
|
|
// Module Functions Definition
|
|
@@ -605,7 +605,7 @@ PHYSACDEF void PhysicsShatter(PhysicsBody body, Vector2 position, float force)
|
|
|
int count = vertexData.vertexCount;
|
|
|
Vector2 bodyPos = body->position;
|
|
|
Vector2 *vertices = (Vector2*)malloc(sizeof(Vector2) * count);
|
|
|
- Mat2 trans = body->shape.transform;
|
|
|
+ Matrix2x2 trans = body->shape.transform;
|
|
|
for (int i = 0; i < count; i++) vertices[i] = vertexData.positions[i];
|
|
|
|
|
|
// Destroy shattered physics body
|
|
@@ -1786,7 +1786,7 @@ static float FindAxisLeastPenetration(int *faceIndex, PhysicsShape shapeA, Physi
|
|
|
Vector2 transNormal = Mat2MultiplyVector2(shapeA.transform, normal);
|
|
|
|
|
|
// Transform face normal into B shape's model space
|
|
|
- Mat2 buT = Mat2Transpose(shapeB.transform);
|
|
|
+ Matrix2x2 buT = Mat2Transpose(shapeB.transform);
|
|
|
normal = Mat2MultiplyVector2(buT, transNormal);
|
|
|
|
|
|
// Retrieve support point from B shape along -n
|
|
@@ -2014,16 +2014,16 @@ static inline Vector2 Vector2Subtract(Vector2 v1, Vector2 v2)
|
|
|
#endif
|
|
|
|
|
|
// Creates a matrix 2x2 from a given radians value
|
|
|
-static Mat2 Mat2Radians(float radians)
|
|
|
+static Matrix2x2 Mat2Radians(float radians)
|
|
|
{
|
|
|
float c = cosf(radians);
|
|
|
float s = sinf(radians);
|
|
|
|
|
|
- return (Mat2){ c, -s, s, c };
|
|
|
+ return (Matrix2x2){ c, -s, s, c };
|
|
|
}
|
|
|
|
|
|
// Set values from radians to a created matrix 2x2
|
|
|
-static void Mat2Set(Mat2 *matrix, float radians)
|
|
|
+static void Mat2Set(Matrix2x2 *matrix, float radians)
|
|
|
{
|
|
|
float cos = cosf(radians);
|
|
|
float sin = sinf(radians);
|
|
@@ -2035,13 +2035,13 @@ static void Mat2Set(Mat2 *matrix, float radians)
|
|
|
}
|
|
|
|
|
|
// Returns the transpose of a given matrix 2x2
|
|
|
-static inline Mat2 Mat2Transpose(Mat2 matrix)
|
|
|
+static inline Matrix2x2 Mat2Transpose(Matrix2x2 matrix)
|
|
|
{
|
|
|
- return (Mat2){ matrix.m00, matrix.m10, matrix.m01, matrix.m11 };
|
|
|
+ return (Matrix2x2){ matrix.m00, matrix.m10, matrix.m01, matrix.m11 };
|
|
|
}
|
|
|
|
|
|
// Multiplies a vector by a matrix 2x2
|
|
|
-static inline Vector2 Mat2MultiplyVector2(Mat2 matrix, Vector2 vector)
|
|
|
+static inline Vector2 Mat2MultiplyVector2(Matrix2x2 matrix, Vector2 vector)
|
|
|
{
|
|
|
return (Vector2){ matrix.m00*vector.x + matrix.m01*vector.y, matrix.m10*vector.x + matrix.m11*vector.y };
|
|
|
}
|