AtMatrix type creation and operation. More...
Data Structures | |
struct | AtMatrix |
Functions | |
bool | AtMatrix::operator== (const AtMatrix &m) const |
constexpr const float * | AtMatrix::operator[] (int t) const |
float * | AtMatrix::operator[] (int t) |
AI_API AI_DEVICE AtMatrix | AiM4Identity () |
Create an identity matrix. More... | |
AI_API AtMatrix | AiM4Translation (const AtVector &t) |
Create a translation matrix from a translation vector. More... | |
AI_API AI_DEVICE AtMatrix | AiM4RotationX (float x) |
Create a X-axis rotation matrix. More... | |
AI_API AI_DEVICE AtMatrix | AiM4RotationY (float y) |
Create a Y-axis rotation matrix. More... | |
AI_API AI_DEVICE AtMatrix | AiM4RotationZ (float z) |
Create a Z-axis rotation matrix. More... | |
AI_API AtMatrix | AiM4Scaling (const AtVector &s) |
Create a scaling matrix from a scaling vector. More... | |
AI_API AI_DEVICE AtMatrix | AiM4Frame (const AtVector &o, const AtVector &u, const AtVector &v, const AtVector &w) |
Create a matrix that transforms into a new coordinate frame. More... | |
AI_API AI_DEVICE AtVector | AiM4PointByMatrixMult (const AtMatrix &m, const AtVector &pin) |
Left-multiply a point by a matrix. More... | |
AI_API AI_DEVICE AtHPoint | AiM4HPointByMatrixMult (const AtMatrix &m, const AtHPoint &pin) |
Left-multiply a 4D point by a matrix. More... | |
AI_API AI_DEVICE AtVector | AiM4VectorByMatrixMult (const AtMatrix &m, const AtVector &vin) |
Left-multiply a vector by a matrix. More... | |
AI_API AI_DEVICE AtVector | AiM4VectorByMatrixTMult (const AtMatrix &m, const AtVector &vin) |
Right-multiply a vector by a matrix. More... | |
AI_API AI_DEVICE AtMatrix | AiM4Mult (const AtMatrix &ma, const AtMatrix &mb) |
Multiply two matrices. More... | |
AI_API AI_DEVICE AtMatrix | AiM4Transpose (const AtMatrix &min) |
Calculate the transpose of a matrix. More... | |
AI_API AI_DEVICE AtMatrix | AiM4Invert (const AtMatrix &min) |
Calculate the inverse of a matrix. More... | |
AI_API AI_PURE float | AiM4Determinant (const AtMatrix &m) |
Determinant of a matrix. More... | |
AI_API AI_DEVICE AtMatrix | AiM4Lerp (float t, const AtMatrix &ma, const AtMatrix &mb) |
Linear interpolation of two matrices. More... | |
AI_API AI_PURE bool | AiM4IsIdentity (const AtMatrix &m) |
Is this an identity matrix? More... | |
AI_API AI_PURE bool | AiM4IsSingular (const AtMatrix &m) |
Is this a singular matrix? More... | |
Variables | |
float | AtMatrix::data [4][4] |
AtMatrix type creation and operation.
AI_API AI_DEVICE AtMatrix AiM4Identity | ( | ) |
Create an identity matrix.
[out] | mout | identity matrix result |
Create a translation matrix from a translation vector.
[out] | mout | matrix result |
t | translation vector |
AI_API AI_DEVICE AtMatrix AiM4RotationX | ( | float | x | ) |
Create a X-axis rotation matrix.
[out] | mout | matrix result |
x | angle from the X axis (in degrees) |
AI_API AI_DEVICE AtMatrix AiM4RotationY | ( | float | y | ) |
Create a Y-axis rotation matrix.
[out] | mout | matrix result |
y | angle from the Y axis (in degrees) |
AI_API AI_DEVICE AtMatrix AiM4RotationZ | ( | float | z | ) |
Create a Z-axis rotation matrix.
[out] | mout | matrix result |
z | angle from the Z axis (in degrees) |
Create a scaling matrix from a scaling vector.
[out] | mout | matrix result |
s | scaling vector |
AI_API AI_DEVICE AtMatrix AiM4Frame | ( | const AtVector & | o, |
const AtVector & | u, | ||
const AtVector & | v, | ||
const AtVector & | w | ||
) |
Create a matrix that transforms into a new coordinate frame.
The new coordinate frame is formed from an origin and a set of orthonormal vectors {U,V,W}, all expressed in world coordinates.
[out] | mout | matrix result |
o | origin vector | |
u | U basis vector | |
v | V basis vector | |
w | W basis vector |
Left-multiply a point by a matrix.
[out] | pout | multiplied point pout = m pin |
m | input matrix | |
pin | input point |
Left-multiply a 4D point by a matrix.
[out] | pout | multiplied 4D point, pout = m pin |
m | input matrix | |
pin | input 4D point |
Left-multiply a vector by a matrix.
Note that multiplying a vector by a matrix is different than multiplying a point by a matrix.
[out] | vout | multiplied vector, vout = m vin |
m | input matrix | |
vin | input vector |
Right-multiply a vector by a matrix.
This is equivalent to left-multiply vector by transpose of a matrix: vout = (m^T) vin
[out] | vout | multiplied vector, vout = vin m |
m | input matrix | |
vin | input vector |
Multiply two matrices.
[out] | mout | multiplied matrix result, mout = ma mb |
ma | input matrix | |
mb | input matrix |
Calculate the transpose of a matrix.
min | input matrix | |
[out] | mout | transpose matrix: mout = min^T |
Calculate the inverse of a matrix.
min | input matrix to be inverted | |
[out] | mout | inverted matrix: mout = min^-1 |
AI_API AI_PURE float AiM4Determinant | ( | const AtMatrix & | m | ) |
Determinant of a matrix.
m | input matrix |
Linear interpolation of two matrices.
[out] | mout | interpolated matrix: mout = (1-t)*ma + t*mb |
t | interpolation parameter, in [0,1] | |
ma | input matrix at t=0 | |
mb | input matrix at t=1 |
AI_API AI_PURE bool AiM4IsIdentity | ( | const AtMatrix & | m | ) |
Is this an identity matrix?
m | input matrix |
AI_API AI_PURE bool AiM4IsSingular | ( | const AtMatrix & | m | ) |
Is this a singular matrix?
m | input matrix |