|
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 _length>
requires (_length > 0 && std::is_default_constructible_v<_Tp>)
class xcmath::vec< _Tp, _length >
Vector class template
N-dimensional mathematical vector template
- 模板参数
-
_Tp | Type of elements in the vector |
_length | Length of the vector |
_Tp | Arithmetic type of vector components |
_length | Dimension of the vector (1-4 for swizzle operations) Notw: _Tp must be default constructible and support basic arithmetic operations |
Provides:
- Component-wise operations
- Vector space operations (addition, scaling, etc.)
- Geometric operations (dot/cross products, normalization)
- Type-safe dimensional operations through template metaprogramming
在文件 vec.hpp 第 206 行定义.