|
| mat (const vec< vec< _Tp, _cols >, _rows > &o) |
|
template<size_t _ncols> |
constexpr mat< _Tp, _rows, _ncols > | operator^ (const mat< _Tp, _cols, _ncols > &other) const |
| Matrix multiplication operator
|
|
template<Vec _VTp>
requires (_VTp::length == _rows) && concepts::Add<typename _VTp::DataType> && concepts::Muitiply<typename _VTp::DataType, _Tp> |
constexpr _VTp | operator^ (const _VTp &other) const |
| Matrix-vector multiplication operator
|
|
constexpr mat< _Tp, _cols, _rows > | T () const |
| Transpose operator
|
|
constexpr mat< _Tp, _cols, _rows > | inv () const |
|
constexpr _Tp | det () const |
| Compute determinant of the matrix
|
|
constexpr | vec () |
| Construct a zero-initialized vector Notw: _Tp must be default constructible
|
|
template<class _Tp1 , class... _T>
requires (std::is_convertible_v<_Tp1, _Tp> && (std::is_convertible_v<_T, _Tp> && ...)) |
constexpr | vec (const _Tp1 &arg1, const _T &... args) |
| Construct from component values
|
|
template<typename... _Args>
requires ((VecConstructPackSize<_Args...> <= _length && VecConstructPackSize<_Args...> > 1) && ((VecItem<_Args, ItemType> || std::is_convertible_v<_Args, ItemType>) && ...)) |
constexpr | vec (const _Args &... args) |
| Construct from mixed scalars and vectors
|
|
template<class T >
requires (std::is_convertible_v<T, ItemType>) |
constexpr | vec (const T &fill_value) |
| Uniform value constructor
|
|
constexpr | vec (const vec< _Tp, _length > &other) |
| Copy constructor
|
|
constexpr | vec (vec< _Tp, _length > &&o) |
| Move constructor
|
|
constexpr | vec (const std::initializer_list< ItemType > &list) |
|
constexpr const _Tp * | begin () const |
| Get pointer to the beginning of the data array
|
|
constexpr const _Tp * | end () const |
| Get pointer to the end of the data array
|
|
constexpr _Tp & | operator[] (size_t index) |
| Access element at specified index
|
|
constexpr const _Tp & | operator[] (size_t index) const |
| Access element at specified index (const version)
|
|
constexpr vec< _Tp, _length > & | operator= (const vec< _Tp, _length > &o) |
| Copy assignment operator
|
|
constexpr vec< _Tp, _length > & | operator= (vec< _Tp, _length > &&o) |
| Move assignment operator
|
|
template<size_t... idx, class... _Ss>
requires (sizeof...(_Ss) < dim) |
constexpr SubVec< sizeof...(idx),(_Ss::length,...)> | operator() (Slice< idx... >, _Ss... ns) const |
| qualified operator() for slicing and swizzling
|
|
template<size_t... idx> |
constexpr vec< ItemType, sizeof...(idx)> | operator() (Slice< idx... > s) const |
| qualified operator() for slicing and swizzling (const version)
|
|
constexpr _Tp & | x () |
| Get the item at index 0
|
|
constexpr _Tp & | y () |
| Get the item at index 1
|
|
constexpr _Tp & | z () |
| Get the item at index 2
|
|
constexpr _Tp & | w () |
| Get the item at index 3
|
|
constexpr const _Tp & | x () const |
| Get the item at index 0 (const version)
|
|
constexpr const _Tp & | y () const |
| Get the item at index 1 (const version)
|
|
constexpr const _Tp & | z () const |
| Get the item at index 2 (const version)
|
|
constexpr const _Tp & | w () const |
| Get the item at index 3 (const version)
|
|
constexpr const vec< _Tp, 2 > & | xy () const |
|
constexpr vec< _Tp, 2 > & | xy () |
|
constexpr const vec< _Tp, 2 > & | yz () const |
|
constexpr vec< _Tp, 2 > & | yz () |
|
constexpr const vec< _Tp, 2 > & | zw () const |
|
constexpr vec< _Tp, 2 > & | zw () |
|
constexpr const vec< _Tp, 3 > & | xyz () const |
|
constexpr vec< _Tp, 3 > & | xyz () |
|
constexpr const vec< _Tp, 3 > & | yzw () const |
|
constexpr vec< _Tp, 3 > & | yzw () |
|
constexpr vec< _Tp, 2 > | xz () const |
|
constexpr vec< _Tp, 2 > | xw () const |
|
constexpr vec< _Tp, 2 > | yw () const |
|
constexpr vec< _Tp, _length > | cross (const vec< _Tp, _length > &other) const |
| Compute 3D cross product
|
|
constexpr _Tp | dot (const vec< _Tp, _length > &other) const |
| Compute Euclidean inner product
|
|
constexpr vec< _Tp, _length > | normalize () const |
| Create unit vector in same direction
|
|
constexpr _Tp | distance (const vec< _Tp, _length > &other) const |
| Compute distance to another vector
|
|
constexpr _Tp | mod () const |
| Calculate Euclidean norm (magnitude)
|
|
constexpr _Tp | angle (const vec< _Tp, _length > &other) const |
| Compute angle with another vector
|
|
constexpr bool | any () const |
| Check if any element satisfies a condition
|
|
constexpr bool | every () const |
| Check if all elements satisfy a condition
|
|
constexpr bool | all () const |
| Check universal quantification of components
|
|
template<typename _OTp >
requires (std::is_convertible_v<ItemType, _OTp>) |
constexpr | operator Self< _OTp > () const |
|
auto | operator- () const |
| Component-wise additive inverse
|
|
auto | operator+ () const |
| Unary plus operator
|
|
auto | operator-- () |
| Pre-decrement operator
|
|
auto & | operator-- (int) |
| Post-decrement operator
|
|
auto | operator++ () |
| Pre-increment operator
|
|
auto & | operator++ (int) |
| Post-increment operator
|
|
template<typename _Tp, size_t _rows, size_t _cols = _rows>
class xcmath::mat< _Tp, _rows, _cols >
Matrix class template
- 模板参数
-
_Tp | Type of elements in the matrix |
_rows | Number of rows |
_cols | Number of columns |
_Tp | Type of elements in the matrix |
_rows | Number of rows |
_cols | Number of columns (defaults to _rows for square matrices) |
在文件 mat.hpp 第 27 行定义.