|
| Mat4 ()=default |
| Default constructor. More...
|
|
| Mat4 (T s) |
| Initialized with diagonal as s and others zeros.
|
|
| Mat4 (const Mat< 4, 4, T > &rhs) |
| Copy constructor. This provides compatibility with generic operations implemented by Mat.
|
|
| Mat4 (T s00, T s01, T s02, T s03, T s10, T s11, T s12, T s13, T s20, T s21, T s22, T s23, T s30, T s31, T s32, T s33) |
| Initialize elements from individual scalars. The digits following s in the parameter names indicate the row/column of the element being set.
|
|
| Mat4 (const T *m) |
| Initialize elements from an array of type T.
|
|
| Mat4 (const Vec< 4, T > &x, const Vec< 4, T > &y, const Vec< 4, T > &z, const Vec< 4, T > &w) |
| Initialize elements from four vectors. If MATRIX_ROW_MAJOR is defined, x, y, z and w specify rows of the matrix, else columns.
|
|
| Mat4 (const Mat< 3, 3, T > &rhs) |
| Initialize from a 3D matrix. rhs forms the upper-left 3x3 sub-matrix, other elements are initialized as the identity.
|
|
| Mat4 (const Vec< 3, T > &s, const Quat< T > &r, const Vec< 3, T > &t) |
| Initialize from scale/rotation/translation.
|
|
Mat3< T > | sub () const |
|
| Mat ()=default |
| Default constructor. More...
|
|
| Mat (T s) |
| Initialized with diagonal as s and others zeros.
|
|
| Mat (const Mat< rN, rM, T > &rhs) |
| Copy constructor for rN >= N, rM >= M. For smaller incoming matrices (i.e, rN < N, rM < M ) specialization is required in order to fill the remaining elements with appropriate values (usually 0 or 1). rN: Number of rows in rhs. rM: Number of columns in rhs. rhs: rN by rM matrix of type T to copy. NOTE: This is explicit to prevent 'accidental' assignment of differently-sized matrices. TODO: Can this ever actually get called? A templated constructor for a templated class seems dodgy!
|
|
| Mat (const T *m) |
| Initialize elements from an array of type T.
|
|
size_t | num_rows () const |
| Return the number of rows.
|
|
size_t | num_columns () const |
| Return the number of columns.
|
|
Vec< M, T > | row (size_t r) const |
| Return row r as a vector.
|
|
Vec< N, T > | col (size_t c) const |
| Return col c as a vector.
|
|
const T & | operator() (size_t r, size_t c) const |
| Const row/column access to elements.
|
|
T & | operator() (size_t r, size_t c) |
| Non-const row/column access to elements.
|
|
| operator const T * () const |
| const array/low-level access to elements.
|
|
| operator T* () |
| Non-const array/low-level access to elements.
|
|
void | load_zero () |
| Set all elements 0.
|
|
void | load_identity (T s=T(1)) |
| Set diagonal elements s and others 0.
|
|
void | set_row (size_t r, const Vec< vN, T > &v) |
| Set row r from vector v. This copies the first M components from v, so vN must be >= M. vN: Dimension (number of components) of v.
|
|
void | set_col (size_t c, const Vec< vN, T > &v) |
| Set col c from vector v. This copies the first N components from v, so vN must be >= N. vN: Dimension (number of components) in v.
|
|
void | swap_rows (size_t a, size_t b) |
| Swaps row a with row b.
|
|
void | swap_cols (size_t a, size_t b) |
| Swaps col a with col b.
|
|
bool | operator== (const Mat< N, M, T > &rhs) const |
| Equality test.
|
|
bool | operator!= (const Mat< N, M, T > &rhs) const |
| Inequality test.
|
|
Mat< N, rM, T > | operator* (const Mat< M, rM, T > &rhs) const |
| Matrix-matrix multiplication. rhs must have the same number of rows as this matrix has columns. rM: Columns in rhs. return Matrix of dimensions N x rM.
|
|
Vec< N, T > | operator* (const Vec< M, T > &rhs) const |
| Matrix-vector multiplication. rhs must have the same number of elements as this matrix has columns. return vec of size N.
|
|
Mat< N, M, T > | operator* (T rhs) const |
| Component-wise matrix-scalar multiplication.
|
|
Mat< N, M, T > | operator+ (const Mat< N, M, T > &rhs) const |
| Component-wise matrix-matrix addition.
|
|
Mat< N, M, T > | operator- (const Mat< N, M, T > &rhs) const |
| Component-wise matrix-matrix subtraction.
|
|
Mat< N, M, T > | operator- () const |
| Component-wise matrix negation.
|
|
Mat< N, M, T > | operator/ (T rhs) const |
| Component-wise matrix-scalar division.
|
|
Mat< N, M, T > & | operator*= (const Mat< N, M, T > &rhs) |
| Matrix-matrix multiplication/assignment.
|
|
Mat< N, M, T > & | operator*= (T rhs) |
| Component-wise matrix-scalar multiplication/assignment.
|
|
Mat< N, M, T > & | operator+= (const Mat< N, M, T > &rhs) |
| Component-wise matrix-matrix addition/assignment.
|
|
Mat< N, M, T > & | operator+= (T rhs) |
| Component-wise matrix-scalar addition/assignment.
|
|
Mat< N, M, T > & | operator-= (const Mat< N, M, T > &rhs) |
| Component-wise matrix-matrix subtraction/assignment.
|
|
Mat< N, M, T > & | operator-= (T rhs) |
| Component-wise matrix-scalar subtraction/assignment.
|
|
Mat< N, M, T > & | operator/= (T rhs) |
| Component-wise matrix-scalar division/assignment.
|
|
|
static Mat4< T > | scale (T s) |
| Static constructor returning a 4D uniform scale matrix. More...
|
|
static Mat4< T > | scale (const Vec< 4, T > &s) |
| Static constructor returning a 4D non-uniform scale matrix,. More...
|
|
static Mat4< T > | scale (T x, T y, T z, T w) |
|
static Mat4< T > | rotation (const Vec< 3, T > &axis, T angle) |
| Static constructor returning a 3D rotation matrix defined by its axis and angle. More...
|
|
static Mat4< T > | rotation (const Vec< 3, T > &axis_angle) |
| Static constructor returning a 3D rotation matrix defined by the axis–angle representation. Both the axis and the angle are represented by a vector codirectional with the rotation axis whose length is the rotation angle. More...
|
|
static Mat4< T > | rotation (const Quat< T > &q) |
| Static constructor returning a 3D rotation matrix defined by a quaternion. More...
|
|
static Mat4< T > | rotation (T x, T y, T z, int order=312) |
| Static constructor returning a 3D rotation matrix defined by Euler angles. The three rotations are applied successively. More...
|
|
static Mat4< T > | translation (const Vec< 3, T > &t) |
| Static constructor return a 3D translation matrix (as a 4D affine transformation). More...
|
|
static Mat4< T > | translation (T x, T y, T z) |
|
static Mat< N, M, T > | identity () |
| Static constructor return an N x M identity matrix. see also load_identity()
|
|
template<typename T>
class easy3d::Mat4< T >
4x4 matrix. Extends Mat with 4D-specific functionality and constructors.
- Template Parameters
-
T | The scalar type for vector elements. |
- See also
- Mat.