matrix struct
A NxM-dimensional matrix.
Template parameters | |
---|---|
Scalar | The matrix's scalar type. |
Rows | The number of rows in the matrix. |
Columns | The number of columns in the matrix. |
Public types
-
using column_type = vector<scalar_
type, rows> - The matrix's column-vector type.
-
using row_type = vector<scalar_
type, columns> - The matrix's row-vector type.
- using scalar_type = Scalar
- The matrix's scalar type.
Public static variables
Public static functions
Constructors, destructors, conversion operators
- matrix() defaulted noexcept
- Default constructor. Does not initialize the matrix.
- matrix(const matrix&) defaulted constexpr noexcept
- Copy constructor.
-
matrix(const column_
type& x_col, const column_ type& y_col, const column_ type& z_col) constexpr noexcept - Columnwise constructor for 3x3 matrices.
-
matrix(const scalar_
type* x_col, const scalar_ type* y_col, const scalar_ type* z_col) constexpr noexcept - Columnwise pointer-to-scalars constructor for 3x3 matrices.
-
matrix(const column_
type& x_col, const column_ type& y_col, const column_ type& z_col, const column_ type& translation = column_ type{}) constexpr noexcept - Columnwise constructor for 4x4 matrices.
-
matrix(const scalar_
type* x_col, const scalar_ type* y_col, const scalar_ type* z_col, const scalar_ type* translation = nullptr) constexpr noexcept - Columnwise pointer-to-scalars constructor for 4x4 matrices.
-
matrix(const scalar_
type* m) explicit constexpr noexcept - Pointer-to-scalars constructor.
- operator bool() const explicit constexpr noexcept
- Returns true if any of the matrix's scalar components are non-zero.
Public functions
-
auto data() -> scalar_
type* noexcept - Returns a pointer to the first scalar in the matrix.
-
auto data() const -> constscalar_
type* constexpr noexcept - Returns a pointer to the first scalar in the matrix (const overload).
-
auto operator()(size_t row,
size_t col) -> scalar_
type& noexcept - Scalar operator.
-
auto operator()(size_t row,
size_t col) const -> constscalar_
type& constexpr noexcept - Scalar operator (const overload).
- auto operator=(const matrix&) -> matrix& defaulted noexcept
- Copy-assignment operator.
-
auto translation_column() -> column_
type& constexpr noexcept - Returns a reference to the Translation column.
-
auto translation_column() const -> constcolumn_
type& constexpr noexcept - Returns a reference to the Translation column (const overload).
-
auto x_column() -> column_
type& noexcept - Returns a reference to the X column.
-
auto x_column() const -> constcolumn_
type& constexpr noexcept - Returns a reference to the X column (const overload).
-
auto y_column() -> column_
type& noexcept - Returns a reference to the Y column.
-
auto y_column() const -> constcolumn_
type& constexpr noexcept - Returns a reference to the Y column (const overload).
-
auto z_column() -> column_
type& noexcept - Returns a reference to the Z column.
-
auto z_column() const -> constcolumn_
type& constexpr noexcept - Returns a reference to the Z column (const overload).
Public variables
-
column_
type cols - The scalar values in the matrix, stored as column vectors.
Compatibility with UE4
-
template<typename S = Scalar>matrix(const ::TMatrix<Columns, Rows>& mat) noexcept
- Constructs a matrix from a UE4 TMatrix.
-
template<typename S = Scalar>matrix(const ::FMatrix& mat) noexcept
- Constructs a 4x4 matrix from a UE4 FMatrix.
-
template<typename S = Scalar>operator::FMatrix() const noexcept
- Converts a 4x4 matrix into a UE4 FMatrix.
-
template<typename S = Scalar>operator::TMatrix() const noexcept
- Converts a matrix into a UE4 TMatrix.
Function documentation
stim:: matrix<Scalar, Rows, Columns>:: matrix(const column_ type& x_col,
const column_ type& y_col,
const column_ type& z_col) constexpr noexcept
Columnwise constructor for 3x3 matrices.
stim:: matrix<Scalar, Rows, Columns>:: matrix(const scalar_ type* x_col,
const scalar_ type* y_col,
const scalar_ type* z_col) constexpr noexcept
Columnwise pointer-to-scalars constructor for 3x3 matrices.
stim:: matrix<Scalar, Rows, Columns>:: matrix(const column_ type& x_col,
const column_ type& y_col,
const column_ type& z_col,
const column_ type& translation = column_ type{}) constexpr noexcept
Columnwise constructor for 4x4 matrices.
stim:: matrix<Scalar, Rows, Columns>:: matrix(const scalar_ type* x_col,
const scalar_ type* y_col,
const scalar_ type* z_col,
const scalar_ type* translation = nullptr) constexpr noexcept
Columnwise pointer-to-scalars constructor for 4x4 matrices.
column_ type& stim:: matrix<Scalar, Rows, Columns>:: translation_column() constexpr noexcept
Returns a reference to the Translation column.
constcolumn_ type& stim:: matrix<Scalar, Rows, Columns>:: translation_column() const constexpr noexcept
Returns a reference to the Translation column (const overload).
stim:: matrix<Scalar, Rows, Columns>:: operator::FMatrix() const noexcept
Converts a 4x4 matrix into a UE4 FMatrix.
stim:: matrix<Scalar, Rows, Columns>:: operator::TMatrix() const noexcept
Converts a matrix into a UE4 TMatrix.