IOLink
IOL_v1.2.0_release
|
An arithmetic square matrix. More...
#include <iolink/Matrix.h>
Public Member Functions | |
Matrix () | |
Default constructor. More... | |
Matrix (const ValueType *values) | |
Constructor with C-array parameter. More... | |
Matrix (const ValueType *values, bool isRowMajor) | |
Constructor with C-array parameter. More... | |
Matrix (std::initializer_list< ValueType > init) | |
Create a matrix giving initialization values. More... | |
bool | operator== (const Matrix &other) const |
bool | operator!= (const Matrix &other) const |
ValueType | at (size_t row, size_t column) const |
Access an element of the matrix. More... | |
ValueType | operator() (size_t row, size_t column) const |
Access an element of the matrix. More... | |
void | setAt (size_t row, size_t column, ValueType value) |
Set an element of the matrix. More... | |
void | transposeInPlace () |
Transpose the matrix in place. | |
Matrix | transpose () const |
Return the transposed matrix. | |
ValueType * | data () |
Exposes the internal data of the matrix, use it only if you know what you do. More... | |
const ValueType * | data () const |
Exposes the internal data of the matrix, use it only if you know what you do. More... | |
std::string | toString () const |
Return a string representation of the matrix. | |
Matrix | operator- () const |
Matrix & | operator+= (const Matrix &m) |
Matrix & | operator-= (const Matrix &m) |
Matrix | operator+ (const Matrix &m) const |
Matrix | operator- (const Matrix &m) const |
Matrix & | operator*= (ValueType value) |
Matrix & | operator/= (ValueType value) |
Matrix | operator* (ValueType v) const |
Matrix | operator/ (ValueType v) const |
Static Public Member Functions | |
static Matrix | identity () |
Return an identity matrix. | |
static Matrix | uniform (ValueType value) |
Initialize an uniform matrix with an unique value. More... | |
An arithmetic square matrix.
Do not use this class directly, only uses its aliases.
iolink::Matrix< ValueType, N >::Matrix | ( | ) |
Default constructor.
Object will have indeterminate values.
iolink::Matrix< ValueType, N >::Matrix | ( | const ValueType * | values | ) |
Constructor with C-array parameter.
With the following matrix:
| a11 | a12 | a13 | a14 |
| a21 | a22 | a23 | a24 |
| a31 | a32 | a33 | a34 |
| a41 | a42 | a43 | a44 |
Values should be given to this function in ROW-major order: a11 a12 a13 a14 a21 a22 a23 a24 ...
values | Pointer on first element to use to initialize the NxN internal values |
iolink::Matrix< ValueType, N >::Matrix | ( | const ValueType * | values, |
bool | isRowMajor | ||
) |
Constructor with C-array parameter.
With the following matrix:
| a11 | a12 | a13 | a14 |
| a21 | a22 | a23 | a24 |
| a31 | a32 | a33 | a34 |
| a41 | a42 | a43 | a44 |
Values should be given to this function in:
values | Pointer on first element to use to initialize the NxN internal values |
isRowMajor | Boolean which indicates how given data must be stored |
|
explicit |
Create a matrix giving initialization values.
With the following matrix:
| a11 | a12 | a13 | a14 |
| a21 | a22 | a23 | a24 |
| a31 | a32 | a33 | a34 |
| a41 | a42 | a43 | a44 |
This fonction should be used this way:
Matrix4f m{a11, a12, a13, a14, a21, a22, a23, a24, a31, a32, a33, a34, a41, a42, a43, a44};
ValueType iolink::Matrix< ValueType, N >::at | ( | size_t | row, |
size_t | column | ||
) | const |
Access an element of the matrix.
column | The column of the element |
row | The row of the element |
ValueType* iolink::Matrix< ValueType, N >::data | ( | ) |
Exposes the internal data of the matrix, use it only if you know what you do.
As the internal layout of our matrices is column-major, the data will be in a different order than the initialisation list.
Example for the following matrix:
| a11 | a12 | a13 | a14 |
| a21 | a22 | a23 | a24 |
| a31 | a32 | a33 | a34 |
| a41 | a42 | a43 | a44 |
Data will return a buffer with the following data:
{a11, a21, a31, a41, a12, a22, a32 a42, a13, a23, a33, a43, a14, a24, a34, a44}
const ValueType* iolink::Matrix< ValueType, N >::data | ( | ) | const |
Exposes the internal data of the matrix, use it only if you know what you do.
As the internal layout of our matrices is column-major, the data will be in a different order than the initialisation list.
Example for the following matrix:
| a11 | a12 | a13 | a14 |
| a21 | a22 | a23 | a24 |
| a31 | a32 | a33 | a34 |
| a41 | a42 | a43 | a44 |
Data will return a buffer with the following data:
{a11, a21, a31, a41, a12, a22, a32 a42, a13, a23, a33, a43, a14, a24, a34, a44}
ValueType iolink::Matrix< ValueType, N >::operator() | ( | size_t | row, |
size_t | column | ||
) | const |
Access an element of the matrix.
column | The column of the element |
row | The row of the element |
void iolink::Matrix< ValueType, N >::setAt | ( | size_t | row, |
size_t | column, | ||
ValueType | value | ||
) |
Set an element of the matrix.
column | The column of the element |
row | The row of the element |
value | The value to assign to the element |
|
static |
Initialize an uniform matrix with an unique value.
value | The value to assign to each element of the matrix |