|
|
constexpr | basic_vector3 (const base_type &base) noexcept |
| |
|
template<scalar X, scalar Y, scalar Z> |
| constexpr | basic_vector3 (X x, Y y, Z z) noexcept |
| |
|
template<scalar Other, scalar Scalar = Other> |
| constexpr | basic_vector3 (const basic_vector2< Other > &vector, Scalar z=Scalar{0}) noexcept |
| |
|
constexpr | operator basic_vector2< Type > () const noexcept |
| |
|
constexpr auto | x () noexcept -> reference |
| |
|
constexpr auto | x () const noexcept -> const_reference |
| |
|
constexpr auto | y () noexcept -> reference |
| |
|
constexpr auto | y () const noexcept -> const_reference |
| |
|
constexpr auto | z () noexcept -> reference |
| |
|
constexpr auto | z () const noexcept -> const_reference |
| |
|
constexpr auto | normalize () noexcept -> basic_vector3 & |
| |
| constexpr | basic_vector (Other value=Other{0}) noexcept |
| | Constructs a vector with all components initialized to a value. More...
|
| |
| constexpr | basic_vector (const basic_vector< Size, Other > &other) noexcept |
| | Constructs a vector from another vector with convertible scalar type. More...
|
| |
|
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 * |
| | Returns a pointer to the underlying contiguous storage. More...
|
| |
| constexpr auto | data () const noexcept -> const value_type * |
| | Returns a pointer to the underlying contiguous storage (const). More...
|
| |
| constexpr auto | operator[] (size_type index) noexcept -> reference |
| | Accesses a component by index. More...
|
| |
| constexpr auto | operator[] (size_type index) const noexcept -> const_reference |
| | Accesses a component by index (const). More...
|
| |
| constexpr auto | operator+= (const basic_vector< Size, Other > &other) noexcept -> basic_vector & |
| | Adds another vector to this vector. More...
|
| |
| constexpr auto | operator-= (const basic_vector< Size, Other > &other) noexcept -> basic_vector & |
| | Subtracts another vector from this vector. More...
|
| |
| constexpr auto | operator*= (Other scalar) noexcept -> basic_vector & |
| | Multiplies this vector by a scalar. More...
|
| |
| constexpr auto | operator*= (const basic_vector< Size, Other > &other) noexcept -> basic_vector & |
| | Multiplies this vector component-wise by another vector. More...
|
| |
| constexpr auto | operator/= (Other scalar) noexcept -> basic_vector & |
| | Divides this vector by a scalar. More...
|
| |
| constexpr auto | length_squared () const noexcept -> length_type |
| | Returns the squared length of the vector. More...
|
| |
| constexpr auto | length () const noexcept -> length_type |
| | Returns the length of the vector. More...
|
| |
| constexpr auto | normalize () noexcept -> basic_vector & |
| | Normalizes the vector in-place. More...
|
| |
|
|
static constexpr auto | cross (const basic_vector3 &lhs, const basic_vector3 &rhs) noexcept -> basic_vector3 |
| |
|
static constexpr auto | dot (const basic_vector3 &lhs, const basic_vector3 &rhs) noexcept -> length_type |
| |
|
static constexpr auto | normalized (const basic_vector3 &vector) noexcept -> basic_vector3 |
| |
|
static constexpr auto | reflect (const basic_vector3 &vector, const basic_vector3 &normal) noexcept -> basic_vector3 |
| |
|
static constexpr auto | distance_squared (const basic_vector3 &lhs, const basic_vector3 &rhs) noexcept -> value_type |
| |
|
static constexpr auto | distance (const basic_vector3 &lhs, const basic_vector3 &rhs) noexcept -> value_type |
| |
|
static constexpr auto | orthogonal (const basic_vector3 &vector) noexcept -> basic_vector3 |
| |
|
static constexpr auto | splat_x (const basic_vector3 &vector) noexcept -> basic_vector3 |
| |
|
static constexpr auto | splat_y (const basic_vector3 &vector) noexcept -> basic_vector3 |
| |
|
static constexpr auto | splat_z (const basic_vector3 &vector) noexcept -> basic_vector3 |
| |
| static constexpr auto | min (const basic_vector &vector) noexcept -> value_type |
| | Returns the minimum component of a vector. More...
|
| |
| static constexpr auto | min (const basic_vector< Size, Lhs > &lhs, const basic_vector< Size, Rhs > &rhs) noexcept -> basic_vector |
| | Returns the component-wise minimum of two vectors. More...
|
| |
| static constexpr auto | max (const basic_vector &vector) noexcept -> value_type |
| | Returns the maximum component of a vector. More...
|
| |
| static constexpr auto | max (const basic_vector< Size, Lhs > &lhs, const basic_vector< Size, Rhs > &rhs) noexcept -> basic_vector |
| | Returns the component-wise maximum of two vectors. More...
|
| |
| static constexpr auto | abs (const basic_vector< Size, Lhs > &vector) noexcept -> basic_vector |
| | Returns the component-wise absolute value of a vector. More...
|
| |
| static constexpr auto | splat (const basic_vector< Size, Other > &vector) noexcept -> basic_vector< Size, Other > |
| | Splat a single component across all axes. More...
|
| |
| static constexpr auto | lerp (const basic_vector &x, const basic_vector &y, const value_type a) noexcept -> basic_vector |
| | Linearly interpolates between two vectors. More...
|
| |
|
|
static constexpr basic_vector3 | zero {base_type::fill(value_type{0})} |
| |
|
static constexpr basic_vector3 | one {base_type::fill(value_type{1})} |
| |
|
static constexpr basic_vector3 | right {base_type::template axis<x_axis>(value_type{1})} |
| |
|
static constexpr basic_vector3 | left {base_type::template axis<x_axis>(value_type{-1})} |
| |
|
static constexpr basic_vector3 | up {base_type::template axis<y_axis>(value_type{1})} |
| |
|
static constexpr basic_vector3 | down {base_type::template axis<y_axis>(value_type{-1})} |
| |
|
static constexpr basic_vector3 | forward {base_type::template axis<z_axis>(value_type{-1})} |
| |
|
static constexpr basic_vector3 | backward {base_type::template axis<z_axis>(value_type{1})} |
| |