39 v1.
x, v1.
y, v1.
z, v1.
w,
40 v2.
x, v2.
y, v2.
z, v2.
w,
41 v3.
x, v3.
y, v3.
z, v3.
w,
42 v4.
x, v4.
y, v4.
z, v4.
w,
52 m[0] += mIn.
m[0]; m[1] += mIn.
m[1]; m[2] += mIn.
m[2]; m[3] += mIn.
m[3];
53 m[4] += mIn.
m[4]; m[5] += mIn.
m[5]; m[6] += mIn.
m[6]; m[7] += mIn.
m[7];
54 m[8] += mIn.
m[8]; m[9] += mIn.
m[9]; m[10] += mIn.
m[10]; m[11] += mIn.
m[11];
55 m[12] += mIn.
m[12]; m[13] += mIn.
m[13]; m[14] += mIn.
m[14]; m[15] += mIn.
m[15];
66 m[0] -= mIn.
m[0]; m[1] -= mIn.
m[1]; m[2] -= mIn.
m[2]; m[3] -= mIn.
m[3];
67 m[4] -= mIn.
m[4]; m[5] -= mIn.
m[5]; m[6] -= mIn.
m[6]; m[7] -= mIn.
m[7];
68 m[8] -= mIn.
m[8]; m[9] -= mIn.
m[9]; m[10] -= mIn.
m[10]; m[11] -= mIn.
m[11];
69 m[12] -= mIn.
m[12]; m[13] -= mIn.
m[13]; m[14] -= mIn.
m[14]; m[15] -= mIn.
m[15];
78 m[0] = 1.0f; m[1] = 0.0f; m[2] = 0.0f; m[3] = 0.0f;
79 m[4] = 0.0f; m[5] = 1.0f; m[6] = 0.0f; m[7] = 0.0f;
80 m[8] = 0.0f; m[9] = 0.0f; m[10] = 1.0f; m[11] = 0.0f;
81 m[12] = 0.0f; m[13] = 0.0f; m[14] = 0.0f; m[15] = 1.0f;
93 float const a = tanf(fovy / 2.0f);
95 m[0] = 1.0f / (aspect * a); m[1] = 0.0f; m[2] = 0.0f; m[3] = 0.0f;
96 m[4] = 0.0f; m[5] = 1.0f / a; m[6] = 0.0f; m[7] = 0.0f;
97 m[8] = 0.0f; m[9] = 0.0f; m[10] = -((f + n) / (f - n)); m[11] = -((2.0f * f * n) / (f - n));
98 m[12] = 0.0f; m[13] = 0.0f; m[14] = -1.0f; m[15] = 0.0f;
110 m[0] = w * 0.5f; m[1] = 0.0f; m[2] = 0.0f; m[3] = 0.0f;
111 m[4] = 0.0f; m[5] = h * 0.5f; m[6] = 0.0f; m[7] = 0.0f;
112 m[8] = 0.0f; m[9] = 0.0f; m[10] = 1 / (f - n); m[11] = -n / (f - n);
113 m[12] = 0.0f; m[13] = 0.0f; m[14] = 0.0f; m[15] = 1.0f;
233 mOut.
m[0] = mIn.
m[0] + s; mOut.
m[1] = mIn.
m[1] + s; mOut.
m[2] = mIn.
m[2] + s; mOut.
m[3] = mIn.
m[3] + s;
234 mOut.
m[4] = mIn.
m[4] + s; mOut.
m[5] = mIn.
m[5] + s; mOut.
m[6] = mIn.
m[6] + s; mOut.
m[7] = mIn.
m[7] + s;
235 mOut.
m[8] = mIn.
m[8] + s; mOut.
m[9] = mIn.
m[9] + s; mOut.
m[10] = mIn.
m[10] + s; mOut.
m[11] = mIn.
m[11] + s;
236 mOut.
m[12] = mIn.
m[12] + s; mOut.
m[13] = mIn.
m[13] + s; mOut.
m[14] = mIn.
m[14] + s; mOut.
m[15] = mIn.
m[15] + s;
249 mOut.
m[0] = mInA.
m[0] + mInB.
m[0]; mOut.
m[1] = mInA.
m[1] + mInB.
m[1]; mOut.
m[2] = mInA.
m[2] + mInB.
m[2]; mOut.
m[3] = mInA.
m[3] + mInB.
m[3];
250 mOut.
m[4] = mInA.
m[4] + mInB.
m[4]; mOut.
m[5] = mInA.
m[5] + mInB.
m[5]; mOut.
m[6] = mInA.
m[6] + mInB.
m[6]; mOut.
m[7] = mInA.
m[7] + mInB.
m[7];
251 mOut.
m[8] = mInA.
m[8] + mInB.
m[8]; mOut.
m[9] = mInA.
m[9] + mInB.
m[9]; mOut.
m[10] = mInA.
m[10] + mInB.
m[10]; mOut.
m[11] = mInA.
m[11] + mInB.
m[11];
252 mOut.
m[12] = mInA.
m[12] + mInB.
m[12]; mOut.
m[13] = mInA.
m[13] + mInB.
m[13]; mOut.
m[14] = mInA.
m[14] + mInB.
m[14]; mOut.
m[15] = mInA.
m[15] + mInB.
m[15];
265 mOut.
m[0] = mInA.
m[0] - s; mOut.
m[1] = mInA.
m[1] - s; mOut.
m[2] = mInA.
m[2] - s; mOut.
m[3] = mInA.
m[3] - s;
266 mOut.
m[4] = mInA.
m[4] - s; mOut.
m[5] = mInA.
m[5] - s; mOut.
m[6] = mInA.
m[6] - s; mOut.
m[7] = mInA.
m[7] - s;
267 mOut.
m[8] = mInA.
m[8] - s; mOut.
m[9] = mInA.
m[9] - s; mOut.
m[10] = mInA.
m[10] - s; mOut.
m[11] = mInA.
m[11] - s;
268 mOut.
m[12] = mInA.
m[12] - s; mOut.
m[13] = mInA.
m[13] - s; mOut.
m[14] = mInA.
m[14] - s; mOut.
m[15] = mInA.
m[15] - s;
281 mOut.
m[0] = mInA.
m[0] - mInB.
m[0]; mOut.
m[1] = mInA.
m[1] - mInB.
m[1]; mOut.
m[2] = mInA.
m[2] - mInB.
m[2]; mOut.
m[3] = mInA.
m[3] - mInB.
m[3];
282 mOut.
m[4] = mInA.
m[4] - mInB.
m[4]; mOut.
m[5] = mInA.
m[5] - mInB.
m[5]; mOut.
m[6] = mInA.
m[6] - mInB.
m[6]; mOut.
m[7] = mInA.
m[7] - mInB.
m[7];
283 mOut.
m[8] = mInA.
m[8] - mInB.
m[8]; mOut.
m[9] = mInA.
m[9] - mInB.
m[9]; mOut.
m[10] = mInA.
m[10] - mInB.
m[10]; mOut.
m[11] = mInA.
m[11] - mInB.
m[11];
284 mOut.
m[12] = mInA.
m[12] - mInB.
m[12]; mOut.
m[13] = mInA.
m[13] - mInB.
m[13]; mOut.
m[14] = mInA.
m[14] - mInB.
m[14]; mOut.
m[15] = mInA.
m[15] - mInB.
m[15];
297 mOut.
m[0] = mInA.
m[0] * s; mOut.
m[1] = mInA.
m[1] * s; mOut.
m[2] = mInA.
m[2] * s; mOut.
m[3] = mInA.
m[3] * s;
298 mOut.
m[4] = mInA.
m[4] * s; mOut.
m[5] = mInA.
m[5] * s; mOut.
m[6] = mInA.
m[6] * s; mOut.
m[7] = mInA.
m[7] * s;
299 mOut.
m[8] = mInA.
m[8] * s; mOut.
m[9] = mInA.
m[9] * s; mOut.
m[10] = mInA.
m[10] * s; mOut.
m[11] = mInA.
m[11] * s;
300 mOut.
m[12] = mInA.
m[12] * s; mOut.
m[13] = mInA.
m[13] * s; mOut.
m[14] = mInA.
m[14] * s; mOut.
m[15] = mInA.
m[15] * s;
317 mOut.
m[0] = (mInA.
m[0] * mInB.
m[0]) + (mInA.
m[1] * mInB.
m[4]) + (mInA.
m[2] * mInB.
m[8]) + (mInA.
m[3] * mInB.
m[12]);
319 mOut.
m[1] = (mInA.
m[0] * mInB.
m[1]) + (mInA.
m[1] * mInB.
m[5]) + (mInA.
m[2] * mInB.
m[9]) + (mInA.
m[3] * mInB.
m[13]);
321 mOut.
m[2] = (mInA.
m[0] * mInB.
m[2]) + (mInA.
m[1] * mInB.
m[6]) + (mInA.
m[2] * mInB.
m[10]) + (mInA.
m[3] * mInB.
m[14]);
323 mOut.
m[3] = (mInA.
m[0] * mInB.
m[3]) + (mInA.
m[1] * mInB.
m[7]) + (mInA.
m[2] * mInB.
m[11]) + (mInA.
m[3] * mInB.
m[15]);
327 mOut.
m[4] = (mInA.
m[4] * mInB.
m[0]) + (mInA.
m[5] * mInB.
m[4]) + (mInA.
m[6] * mInB.
m[8]) + (mInA.
m[7] * mInB.
m[12]);
329 mOut.
m[5] = (mInA.
m[4] * mInB.
m[1]) + (mInA.
m[5] * mInB.
m[5]) + (mInA.
m[6] * mInB.
m[9]) + (mInA.
m[7] * mInB.
m[13]);
331 mOut.
m[6] = (mInA.
m[4] * mInB.
m[2]) + (mInA.
m[5] * mInB.
m[6]) + (mInA.
m[6] * mInB.
m[10]) + (mInA.
m[7] * mInB.
m[14]);
333 mOut.
m[7] = (mInA.
m[4] * mInB.
m[3]) + (mInA.
m[5] * mInB.
m[7]) + (mInA.
m[6] * mInB.
m[11]) + (mInA.
m[7] * mInB.
m[15]);
337 mOut.
m[8] = (mInA.
m[8] * mInB.
m[0]) + (mInA.
m[9] * mInB.
m[4]) + (mInA.
m[10] * mInB.
m[8]) + (mInA.
m[11] * mInB.
m[12]);
339 mOut.
m[9] = (mInA.
m[8] * mInB.
m[1]) + (mInA.
m[9] * mInB.
m[5]) + (mInA.
m[10] * mInB.
m[9]) + (mInA.
m[11] * mInB.
m[13]);
341 mOut.
m[10] = (mInA.
m[8] * mInB.
m[2]) + (mInA.
m[9] * mInB.
m[6]) + (mInA.
m[10] * mInB.
m[10]) + (mInA.
m[11] * mInB.
m[14]);
343 mOut.
m[11] = (mInA.
m[8] * mInB.
m[3]) + (mInA.
m[9] * mInB.
m[7]) + (mInA.
m[10] * mInB.
m[11]) + (mInA.
m[11] * mInB.
m[15]);
347 mOut.
m[12] = (mInA.
m[12] * mInB.
m[0]) + (mInA.
m[13] * mInB.
m[4]) + (mInA.
m[14] * mInB.
m[8]) + (mInA.
m[15] * mInB.
m[12]);
349 mOut.
m[13] = (mInA.
m[12] * mInB.
m[1]) + (mInA.
m[13] * mInB.
m[5]) + (mInA.
m[14] * mInB.
m[9]) + (mInA.
m[15] * mInB.
m[13]);
351 mOut.
m[14] = (mInA.
m[12] * mInB.
m[2]) + (mInA.
m[13] * mInB.
m[6]) + (mInA.
m[14] * mInB.
m[10]) + (mInA.
m[15] * mInB.
m[14]);
353 mOut.
m[15] = (mInA.
m[12] * mInB.
m[3]) + (mInA.
m[13] * mInB.
m[7]) + (mInA.
m[14] * mInB.
m[11]) + (mInA.
m[15] * mInB.
m[15]);
void setAsOrthogonalProjectionMatrix(float w, float h, float n, float f)
Sets the values of the matrix to that of a Orthogonal Projection matrix.
Definition: Mat4.h:108
Mat4()
Constructs the Mat4 setting the values of the matrix to 0.
Definition: Mat4.h:23
float y
Definition: Vec4.h:11
float y
Definition: Vec3.h:11
Mat4 * operator-=(Mat4 mIn)
Overloads the -= operator.
Definition: Mat4.h:64
Mat4 operator+(Mat4 mIn, float s)
Overloads the + operator allowing a Mat4 to be added to a scalar.
Definition: Mat4.h:230
Mat4 operator*(Mat4 mInA, float s)
Overloads the * operator allowing a Mat4 to be multiplied to a scalar.
Definition: Mat4.h:294
void rotateAlongY(Mat4 &matrix, float angle)
Rotate the matrix using the angle of rotation along the y axis.
Definition: Mat4.cpp:83
void getInverse(Mat4 &matrix)
A function to get the inverse of a matrix.
Definition: Mat4.cpp:156
float x
Position variables.
Definition: Vec3.h:11
Contains the Vec4 structure with functions and overloaded operators.
Definition: Vec4.h:8
void scale(Mat4 &matrix, float sv)
Scales the matrix using the input vector.
Definition: Mat4.cpp:16
void translate(Mat4 &matrix, Vec3 tv)
Translates the matrix using the input vector.
Definition: Mat4.cpp:46
void rotatePointAroundYAxis(Mat4 &matrix, Vec3 axisPoint, float angle)
Rotate the matrix around a point using the angle of rotation along the y axis.
Definition: Mat4.cpp:125
void rotateAlongZ(Mat4 &matrix, float angle)
Rotate the matrix using the angle of rotation along the z axis.
Definition: Mat4.cpp:98
void rotatePointAroundZAxis(Mat4 &matrix, Vec3 axisPoint, float angle)
Rotate the matrix around a point using the angle of rotation along the z axis.
Definition: Mat4.cpp:137
Mat4 operator-(Mat4 mInA, float s)
Overloads the - operator allowing a Mat4 to be added to a scalar.
Definition: Mat4.h:262
float * getMatrixArray()
A function to get a pointer to the first index of the array.
Definition: Mat4.h:218
Vec3 getPos()
Gets the position of the matrix.
Definition: Mat4.h:212
float m[16]
Definition: Mat4.h:18
void setAsPerspectiveMatrix(float fovy, float aspect, float n, float f)
Sets the values of the matrix to that of a Perspective matrix.
Definition: Mat4.h:91
Mat4(Vec4 v1, Vec4 v2, Vec4 v3, Vec4 v4)
Constructs the Mat4 setting the values to the input vectors.
Definition: Mat4.h:37
float x
Position variables.
Definition: Vec4.h:11
Contains the Vec3 structure with functions and overloaded operators.
Definition: Vec3.h:8
void setAsIdentityMatrix()
Sets the values of the matrix to that of a identity matrix.
Definition: Mat4.h:76
float z
Definition: Vec3.h:11
Mat4 * operator+=(Mat4 mIn)
Overloads the += operator.
Definition: Mat4.h:50
float w
Definition: Vec4.h:11
float z
Definition: Vec4.h:11
Contains the Mat4 structure with functions and overloaded operators. This is row major.
Definition: Mat4.h:9
void setPos(Vec3 pv)
Sets the position of the matrix using the input vector.
Definition: Mat4.h:120
void rotateAlongX(Mat4 &matrix, float angle)
Rotate the matrix using the angle of rotation along the x axis.
Definition: Mat4.cpp:68
void rotatePointAroundXAxis(Mat4 &matrix, Vec3 axisPoint, float angle)
Rotate the matrix around a point using the angle of rotation along the x axis.
Definition: Mat4.cpp:113
void rotate(Mat4 &matrix, Vec3 angle)
Rotate the matrix using the angle of rotation along the axis.
Definition: Mat4.cpp:61