6#include <game/mLib/m_mtx.hpp>
8mMtx_c mMtx_c::Identity =
mMtx_c(1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f);
10mMtx_c::mMtx_c(
float _00,
float _01,
float _02,
float _03,
float _10,
float _11,
float _12,
float _13,
float _20,
float _21,
float _22,
float _23) {
26 float cos = angle.
cos();
27 float sin = angle.
sin();
46 rotatedMtx.
XrotS(angle);
52 float cos = angle.
cos();
53 float sin = angle.
sin();
72 rotatedMtx.
YrotS(angle);
78 float cos = angle.
cos();
79 float sin = angle.
sin();
98 rotatedMtx.
ZrotS(angle);
116inline float calcLengthSq(
float x,
float y) {
128 if (xRot == 0x4000 || xRot == -0x4000) {
A three-dimensional short angle vector.
s16 y
The rotation on the Y axis.
s16 z
The rotation on the Z axis.
s16 x
The rotation on the X axis.
mMtx_c()
Constructs an empty matrix.
void ZrotS(mAng angle)
Generates a rotation matrix for the Z axis with the given angle.
void XYZrotM(mAng xRot, mAng yRot, mAng zRot)
Rotates the matrix on the Z, Y and X axes by the given angles.
void toRot(mAng3_c &out) const
Extracts the rotation vector from the matrix.
void multVecZero(nw4r::math::VEC3 &out) const
Extracts the translation vector from the matrix.
void ZrotM(mAng angle)
Rotates the matrix on the Z axis by the given angle.
void XrotS(mAng angle)
Generates a rotation matrix for the X axis with the given angle.
void YrotS(mAng angle)
Generates a rotation matrix for the Y axis with the given angle.
void ZXYrotM(mAng xRot, mAng yRot, mAng zRot)
Rotates the matrix on the Y, X and Z axes by the given angles.
static mMtx_c Identity
The identity matrix.
void XrotM(mAng angle)
Rotates the matrix on the X axis by the given angle.
void zero()
Zeroes out the matrix.
void YrotM(mAng angle)
Rotates the matrix on the Y axis by the given angle.
float mData[3][4]
The matrix components.
void PSMTXConcat(const Mtx *a, const Mtx *b, Mtx *out)
Concatenates two matrices.
s16 atan2s(float sin, float cos)
Converts a sine and a cosine to an angle in units.
float FSqrt(float x)
Computes the square root of the given value.
A one-dimensional short angle vector.
float cos() const
Computes the cosine of the angle.
float sin() const
Computes the sine of the angle.
A three-dimensional floating point vector.