sandbox
Loading...
Searching...
No Matches
sbx::math::basic_vector< Size, Type > Class Template Reference

Public Types

using value_type = Type
 
using reference = value_type &
 
using const_reference = const value_type &
 
using size_type = std::size_t
 
using length_type = std::float_t
 

Public Member Functions

template<scalar Other = value_type>
constexpr basic_vector (Other value=Other{0}) noexcept
 
template<scalar Other = value_type>
constexpr basic_vector (const basic_vector< Size, Other > &other) noexcept
 
constexpr basic_vector (const basic_vector &other) noexcept=default
 
constexpr basic_vector (basic_vector &&other) noexcept=default
 
auto operator= (const basic_vector &other) noexcept -> basic_vector &=default
 
auto operator= (basic_vector &&other) noexcept -> basic_vector &=default
 
constexpr auto data () noexcept -> value_type *
 
constexpr auto operator[] (size_type index) noexcept -> reference
 
constexpr auto operator[] (size_type index) const noexcept -> const_reference
 
template<scalar Other>
constexpr auto operator+= (const basic_vector< Size, Other > &other) noexcept -> basic_vector &
 
template<scalar Other>
constexpr auto operator-= (const basic_vector< Size, Other > &other) noexcept -> basic_vector &
 
template<scalar Other>
constexpr auto operator*= (Other scalar) noexcept -> basic_vector &
 
template<scalar Other>
constexpr auto operator*= (const basic_vector< Size, Other > &other) noexcept -> basic_vector &
 
template<scalar Other>
constexpr auto operator/= (Other scalar) noexcept -> basic_vector &
 
constexpr auto length_squared () const noexcept -> length_type
 
constexpr auto length () const noexcept -> length_type
 
constexpr auto normalize () noexcept -> basic_vector &
 

Static Public Member Functions

template<scalar Lhs = value_type, scalar Rhs = value_type>
static constexpr auto min (const basic_vector< Size, Lhs > &lhs, const basic_vector< Size, Rhs > &rhs) noexcept -> basic_vector
 
template<scalar Lhs = value_type, scalar Rhs = value_type>
static constexpr auto max (const basic_vector< Size, Lhs > &lhs, const basic_vector< Size, Rhs > &rhs) noexcept -> basic_vector
 
template<scalar Lhs = value_type, scalar Rhs = value_type>
static constexpr auto abs (const basic_vector< Size, Lhs > &vector) noexcept -> basic_vector
 
template<size_type Axis, scalar Other = value_type>
requires (Axis < Size)
static constexpr auto splat (const basic_vector< Size, Other > &vector) noexcept -> basic_vector< Size, Other >
 
static constexpr auto lerp (const basic_vector &x, const basic_vector &y, const value_type a) noexcept -> basic_vector
 

Protected Member Functions

template<std::convertible_to< value_type >... Args>
requires (sizeof...(Args) == Size)
constexpr basic_vector (Args &&... args) noexcept
 
constexpr basic_vector (std::array< value_type, Size > &&components) noexcept
 

Static Protected Member Functions

template<scalar Other>
static constexpr auto fill (Other value) noexcept -> basic_vector
 
template<std::size_t Index, scalar Other>
static constexpr auto axis (Other value) noexcept -> basic_vector
 

The documentation for this class was generated from the following file: