|
| Mat2 ()=default |
| Default constructor. More...
|
|
| Mat2 (T s) |
| Initialized with diagonal as s and others zeros.
|
|
| Mat2 (const Mat< 2, 2, T > &rhs) |
| Copy constructor. This provides compatibility with generic operations implemented by Mat.
|
|
| Mat2 (const Mat< 3, 3, T > &rhs) |
| Copies the top-left corner of rhs. This provides compatibility with generic operations implemented by Mat.
|
|
| Mat2 (T s00, T s01, T s10, T s11) |
| Initialize elements from individual scalars. The digits following s in the parameter names indicate the row/column of the element being set.
|
|
| Mat2 (const T *m) |
| Initialize elements from an array of type T.
|
|
| Mat2 (const Vec< 2, T > &x, const Vec< 2, T > &y) |
| Initialize elements from two vectors. If MATRIX_ROW_MAJOR is defined, x and y specify rows of the matrix, else columns.
|
|
| 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.
|
|
template<typename T>
class easy3d::Mat2< T >
2 by 2 matrix. Extends Mat with 2D-specific functionality and constructors.
- Attention
- : Matrices are stored internally as column - major unless MATRIX_ROW_MAJOR is defined.
- Template Parameters
-
T | The scalar type for vector elements. |
- See also
- Mat.