31 bool operator==(
const AtMatrix& m)
const
34 return !memcmp(data, m.data,
sizeof(
AtMatrix));
37 constexpr
const float* operator[](
int t)
const
39 return (
const float*) &(data[t][0]);
42 float* operator[](
int t)
70 static constexpr
const AtMatrix AI_M4_IDENTITY = {{ {1, 0, 0, 0},
74 static constexpr
const AtMatrix AI_M4_ZERO = {{ {0, 0, 0, 0},
AI_API AtMatrix AiM4Translation(const AtVector &t)
Create a translation matrix from a translation vector.
Definition: ai_matrix.cpp:33
AI_API AI_PURE bool AiM4IsSingular(const AtMatrix &m)
Is this a singular matrix?
Definition: ai_matrix.cpp:195
AI_API AI_DEVICE AtMatrix AiM4RotationZ(float z)
Create a Z-axis rotation matrix.
Definition: ai_matrix.cpp:66
AI_API AI_DEVICE AtMatrix AiM4Invert(const AtMatrix &min)
Calculate the inverse of a matrix.
Definition: ai_matrix.cpp:219
AI_API AI_DEVICE AtVector AiM4PointByMatrixMult(const AtMatrix &m, const AtVector &pin)
Left-multiply a point by a matrix.
Definition: ai_matrix.cpp:108
AI_API AI_DEVICE AtMatrix AiM4Mult(const AtMatrix &ma, const AtMatrix &mb)
Multiply two matrices.
Definition: ai_matrix.cpp:162
Vector math types, operators and utilities.
This is enabled only inside of arnold and is disabled for client code.
3D point (single precision)
Definition: ai_vector.h:29
AI_API AI_DEVICE AtMatrix AiM4RotationY(float y)
Create a Y-axis rotation matrix.
Definition: ai_matrix.cpp:55
Definition: ai_matrix.h:30
DLL export prefix for API functions (necessary for multi-platform development)
AI_API AI_DEVICE AtMatrix AiM4Identity()
Create an identity matrix.
Definition: ai_matrix.cpp:22
Homogeneous point.
Definition: ai_vector.h:464
AI_API AI_DEVICE AtMatrix AiM4Lerp(float t, const AtMatrix &ma, const AtMatrix &mb)
Linear interpolation of two matrices.
Definition: ai_matrix.cpp:208
AI_API AI_PURE float AiM4Determinant(const AtMatrix &m)
Determinant of a matrix.
Definition: ai_matrix.cpp:232
AI_API AI_DEVICE AtMatrix AiM4RotationX(float x)
Create a X-axis rotation matrix.
Definition: ai_matrix.cpp:44
AI_API AtMatrix AiM4Scaling(const AtVector &s)
Create a scaling matrix from a scaling vector.
Definition: ai_matrix.cpp:77
AI_API AI_DEVICE AtVector AiM4VectorByMatrixTMult(const AtMatrix &m, const AtVector &vin)
Right-multiply a vector by a matrix.
Definition: ai_matrix.cpp:150
AI_API AI_DEVICE AtVector AiM4VectorByMatrixMult(const AtMatrix &m, const AtVector &vin)
Left-multiply a vector by a matrix.
Definition: ai_matrix.cpp:135
AI_API AI_DEVICE AtHPoint AiM4HPointByMatrixMult(const AtMatrix &m, const AtHPoint &pin)
Left-multiply a 4D point by a matrix.
Definition: ai_matrix.cpp:120
AI_API AI_DEVICE AtMatrix AiM4Transpose(const AtMatrix &min)
Calculate the transpose of a matrix.
Definition: ai_matrix.cpp:173
AI_API AI_PURE bool AiM4IsIdentity(const AtMatrix &m)
Is this an identity matrix?
Definition: ai_matrix.cpp:184
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.
Definition: ai_matrix.cpp:94