Isle
Loading...
Searching...
No Matches
matrix4d.inl.h
Go to the documentation of this file.
1#ifndef MATRIX4D_H
2#define MATRIX4D_H
3
4#include "matrix.h"
5
6#include <math.h>
7#include <memory.h>
8
14void Matrix4::Equals(float (*p_data)[4]);
15
21void Matrix4::Equals(const Matrix4& p_matrix);
22
28void Matrix4::SetData(float (*p_data)[4]);
29
36
41float (*Matrix4::GetData())[4];
42
47float (*Matrix4::GetData() const)[4];
48
55float* Matrix4::Element(int p_row, int p_col);
56
63const float* Matrix4::Element(int p_row, int p_col) const;
64
69void Matrix4::Clear();
70
76
82void Matrix4::operator=(const Matrix4& p_matrix);
83
90Matrix4& Matrix4::operator+=(float (*p_data)[4]);
91
99void Matrix4::TranslateBy(const float& p_x, const float& p_y, const float& p_z);
100
108void Matrix4::SetTranslation(const float& p_x, const float& p_y, const float& p_z);
109
116void Matrix4::Product(float (*p_a)[4], float (*p_b)[4]);
117
124void Matrix4::Product(const Matrix4& p_a, const Matrix4& p_b);
125
132void Matrix4::ToQuaternion(Vector4& p_outQuat);
133
139int Matrix4::FromQuaternion(const Vector4& p_vec);
140
148void Matrix4::Scale(const float& p_x, const float& p_y, const float& p_z);
149
155void Matrix4::RotateX(const float& p_angle);
156
161void Matrix4::RotateY(const float& p_angle);
162
167void Matrix4::RotateZ(const float& p_angle);
168
176
183void Matrix4::Swap(int p_d1, int p_d2);
184
185#endif // MATRIX4D_H
4x4 Matrix class with virtual interface for manipulation and transformation.
Definition: matrix.h:24
virtual float(* GetData())[4]
Gets modifiable access to the 4x4 float matrix.
virtual Matrix4 & operator+=(float(*p_data)[4])
In-place matrix addition with external float[4][4].
virtual void SetData(float(*p_data)[4])
Set this matrix instance to use/point to a new 4x4 data block.
virtual void Clear()
Sets every element of the matrix to zero.
virtual float * Element(int p_row, int p_col)
Accesses an individual element of the matrix in writable form.
virtual void SetTranslation(const float &p_x, const float &p_y, const float &p_z)
Overwrites the translation part of the matrix (last column).
void RotateY(const float &p_angle)
Applies a rotation (in radians or degrees, depending on implementation) about the Y axis.
virtual void Equals(float(*p_data)[4])
Set the matrix elements from a 4x4 float array.
virtual void TranslateBy(const float &p_x, const float &p_y, const float &p_z)
Applies translation by amounts along X, Y, Z axes.
void Swap(int p_d1, int p_d2)
Swaps the data between two rows/columns (presumably).
void RotateX(const float &p_angle)
Applies a rotation (in radians or degrees, depending on implementation) about the X axis.
virtual void ToQuaternion(Vector4 &p_resultQuat)
Converts the 3x3 rotation part of this matrix to a quaternion (Vector4).
void Scale(const float &p_x, const float &p_y, const float &p_z)
Applies scaling factors along X, Y, and Z axes.
void RotateZ(const float &p_angle)
Applies a rotation (in radians or degrees) about the Z axis.
virtual void Product(float(*p_a)[4], float(*p_b)[4])
Multiplies two 4x4 float matrices, storing result in this.
virtual void SetIdentity()
Sets this matrix to identity (diagonal 1, others 0).
virtual int FromQuaternion(const Vector4 &p_vec)
Initializes the matrix from a quaternion (Vector4).
virtual void operator=(const Matrix4 &p_matrix)
Assign/copy another matrix's values into this one.
int BETA_1005a590(Matrix4 &p_mat)
[AI] Appears to perform some operation using another matrix, but function/purpose unknown.
[AI] A four-dimensional vector, supporting operations relevant for matrix and quaternion math (homoge...
Definition: vector.h:365
Matrix-like wrapper of 4x4 float array, with no methods.
Definition: matrix.h:13