LiteFX 0.4.1.2025
Computer Graphics Engine
|
An algebraic vector type. More...
#include <vector.hpp>
Public Types | |
using | scalar_type = T |
The type of the vector elements. | |
using | vec_type = Vector<scalar_type, vec_size> |
The type of the vector itself. | |
Public Member Functions | |
constexpr | Vector () noexcept=default |
Initializes an empty vector. | |
constexpr | Vector (Vector &&_other) noexcept=default |
Initializes a vector by taking over another vector. | |
constexpr | Vector (const Vector &_other)=default |
Initializes a vector with the values provided by another vector. | |
constexpr Vector & | operator= (Vector &&_other) noexcept=default |
Moves the elements of the other vector to the current vector. | |
constexpr Vector & | operator= (const Vector &_other)=default |
Copys the elements of another vector into the current vector. | |
constexpr | ~Vector () noexcept=default |
Destroys the vector. | |
constexpr | Vector (T val) noexcept |
Initializes a vector where all elements take the value provided by val . | |
constexpr | Vector (T x, T y) noexcept |
Initializes a 2D vector using the values provided by x and y . | |
constexpr | Vector (T x, T y, T z) noexcept |
Initializes a 3D vector using the values provided by x , y and z . | |
constexpr | Vector (T x, T y, T z, T w) noexcept |
Initializes a 4D vector using the values provided by x , y , z and w . | |
constexpr | Vector (std::ranges::input_range auto &&input) noexcept |
Initializes the vector from an arbitrary input range. | |
constexpr auto & | operator= (std::ranges::input_range auto &&input) noexcept |
Copies the values from an arbitrary input range into the current vector instance. | |
constexpr T | operator[] (unsigned int i) const noexcept |
Returns a value from the vector, indexed by the parameter i . | |
constexpr T & | operator[] (unsigned int i) noexcept |
Returns a reference to a value from the vector, indexed by the parameter i . | |
constexpr auto | begin () noexcept |
Returns an interator for that addresses the begin of the vector elements. | |
constexpr auto | end () noexcept |
Returns an interator for that addresses the end of the vector elements. | |
constexpr auto | cbegin () const noexcept |
Returns a constant interator for that addresses the begin of the vector elements. | |
constexpr auto | cend () const noexcept |
Returns a constant interator for that addresses the end of the vector elements. | |
constexpr const scalar_type * | elements () const noexcept |
Returns a pointer to the elements of the vector. | |
constexpr | operator std::array< T, DIM > () const noexcept |
Converts the vector to an instance of std::array . | |
constexpr | operator std::vector< T > () const |
Converts the vector into an instance of type std::vector . | |
constexpr int | size () const noexcept |
Returns the number of dimensions of the vector. | |
constexpr scalar_type | x () const noexcept |
Returns the value of the x component of the vector. | |
constexpr scalar_type & | x () noexcept |
Returns a reference of the value of the x component of the vector. | |
constexpr scalar_type | y () const noexcept |
Returns the value of the y component of the vector. | |
constexpr scalar_type & | y () noexcept |
Returns a reference of the value of the y component of the vector. | |
constexpr scalar_type | z () const noexcept |
Returns the value of the z component of the vector. | |
constexpr scalar_type & | z () noexcept |
Returns a reference of the value of the z component of the vector. | |
constexpr scalar_type | w () const noexcept |
Returns the value of the w component of the vector. | |
constexpr scalar_type & | w () noexcept |
Returns a reference of the value of the w component of the vector. | |
Static Public Attributes | |
static constexpr size_t | vec_size = DIM |
Stores the size of the vector. | |
Protected Types | |
using | array_type = std::array<scalar_type, vec_size> |
Protected Attributes | |
array_type | m_elements = { } |
An algebraic vector type.
The value type of a vector must be in standard layout (i.e., std::is_standard_layout_v<T>
must evaluate to true
). This constraint is enforced at compile time and ensures that vector types can be binary marshalled. For example, the
type stores nothing more than a series of vectors. The standard layout constraint ensures that a set of vertices can be converted into a plain byte array and back.
T | The type of the vector scalar elements. Must be in standard layout (i.e., std::is_standard_layout_v<T> must evaluate to true ). |
DIM | The number of dimensions of the vector. |
|
protected |
using LiteFX::Math::Vector< T, DIM >::scalar_type = T |
The type of the vector elements.
using LiteFX::Math::Vector< T, DIM >::vec_type = Vector<scalar_type, vec_size> |
The type of the vector itself.
|
constexprdefaultnoexcept |
Initializes an empty vector.
|
constexprdefaultnoexcept |
Initializes a vector by taking over another vector.
_other | The vector to take over. |
|
constexprdefault |
Initializes a vector with the values provided by another vector.
_other | The other vector to copy the values from. |
|
constexprdefaultnoexcept |
Destroys the vector.
|
inlineconstexprnoexcept |
Initializes a vector where all elements take the value provided by val .
val | The value to initialize all elements of the vector with. |
|
inlineconstexprnoexcept |
Initializes a 2D vector using the values provided by x and y .
x | The value to initialize the x-component of the vector with. |
y | The value to initialize the y-component of the vector with. |
|
inlineconstexprnoexcept |
Initializes a 3D vector using the values provided by x , y and z .
x | The value to initialize the x-component of the vector with. |
y | The value to initialize the y-component of the vector with. |
z | The value to initialize the z-component of the vector with. |
|
inlineconstexprnoexcept |
Initializes a 4D vector using the values provided by x , y , z and w .
x | The value to initialize the x-component of the vector with. |
y | The value to initialize the y-component of the vector with. |
z | The value to initialize the z-component of the vector with. |
w | The value to initialize the w-component of the vector with. |
|
inlineexplicitconstexprnoexcept |
Initializes the vector from an arbitrary input range.
input | The range to initialize the vector with. |
|
inlineconstexprnoexcept |
Returns an interator for that addresses the begin of the vector elements.
|
inlineconstexprnoexcept |
Returns a constant interator for that addresses the begin of the vector elements.
|
inlineconstexprnoexcept |
Returns a constant interator for that addresses the end of the vector elements.
|
inlineconstexprnoexcept |
Returns a pointer to the elements of the vector.
|
inlineconstexprnoexcept |
Returns an interator for that addresses the end of the vector elements.
|
inlineconstexprnoexcept |
Converts the vector to an instance of std::array
.
|
inlineconstexpr |
Converts the vector into an instance of type std::vector
.
|
constexprdefault |
Copys the elements of another vector into the current vector.
_other | The vector to copy the elements from. |
|
inlineconstexprnoexcept |
Copies the values from an arbitrary input range into the current vector instance.
input | The input range to copy the values from. |
|
constexprdefaultnoexcept |
Moves the elements of the other vector to the current vector.
_other | The vector to take over. |
|
inlineconstexprnoexcept |
Returns a value from the vector, indexed by the parameter i .
Note that this method wraps the index if it is out of range, i.e., calling the method with index 4
on a 4D vector will return the element at index 0
.
i | The index of the element to return. |
|
inlineconstexprnoexcept |
Returns a reference to a value from the vector, indexed by the parameter i .
Note that this method wraps the index if it is out of range, i.e., calling the method with index 4
on a 4D vector will return the element at index 0
.
i | The index of the element to return. |
|
inlineconstexprnoexcept |
Returns the number of dimensions of the vector.
|
inlineconstexprnoexcept |
Returns the value of the w component of the vector.
|
inlineconstexprnoexcept |
Returns a reference of the value of the w component of the vector.
|
inlineconstexprnoexcept |
Returns the value of the x component of the vector.
|
inlineconstexprnoexcept |
Returns a reference of the value of the x component of the vector.
|
inlineconstexprnoexcept |
Returns the value of the y component of the vector.
|
inlineconstexprnoexcept |
Returns a reference of the value of the y component of the vector.
|
inlineconstexprnoexcept |
Returns the value of the z component of the vector.
|
inlineconstexprnoexcept |
Returns a reference of the value of the z component of the vector.
|
protected |
|
staticconstexpr |
Stores the size of the vector.