template<class T>
nCine::Primitives::Vector3 class

Three-component vector.

Stores three values X, Y and Z. Provides component-wise arithmetic, scalar arithmetic, length and normalization, dot and cross products and linear interpolation. Can be constructed from a Vector2 plus a Z component and converted back with ToVector2().

Public static functions

static auto Dot(Vector3 v1, Vector3 v2) -> T
static auto Cross(Vector3 v1, Vector3 v2) -> Vector3
static auto Lerp(Vector3 a, Vector3 b, float t) -> Vector3

Constructors, destructors, conversion operators

Vector3() constexpr noexcept
Vector3(NoInitT) explicit noexcept
Vector3(T s) explicit constexpr noexcept
Vector3(T x, T y, T z) constexpr noexcept
Vector3(const Vector2<T>& other, T z) constexpr noexcept
Vector3(Vector2<T>&& other, T z) constexpr noexcept
Vector3(const Vector3& other) constexpr noexcept
Vector3(Vector3&& other) constexpr noexcept

Public functions

auto operator=(const Vector3& other) -> Vector3& noexcept
auto operator=(Vector3&& other) -> Vector3& noexcept
void Set(T x, T y, T z)
auto Data() -> T*
auto Data() const -> const T*
auto operator[](std::size_t index) -> T&
auto operator[](std::size_t index) const -> const T&
auto operator==(const Vector3& v) const -> bool
auto operator!=(const Vector3& v) const -> bool
auto operator-() const -> Vector3
auto operator+=(const Vector3& v) -> Vector3&
auto operator-=(const Vector3& v) -> Vector3&
auto operator*=(const Vector3& v) -> Vector3&
auto operator/=(const Vector3& v) -> Vector3&
auto operator+=(T s) -> Vector3&
auto operator-=(T s) -> Vector3&
auto operator*=(T s) -> Vector3&
auto operator/=(T s) -> Vector3&
auto operator+(const Vector3& v) const -> Vector3
auto operator-(const Vector3& v) const -> Vector3
auto operator*(const Vector3& v) const -> Vector3
auto operator/(const Vector3& v) const -> Vector3
auto operator+(T s) const -> Vector3
auto operator-(T s) const -> Vector3
auto operator*(T s) const -> Vector3
auto operator/(T s) const -> Vector3
auto Length() const -> T
auto SqrLength() const -> T
auto Normalized() const -> Vector3
auto Normalize() -> Vector3&
template<class S>
auto As() -> Vector3<S>
Converts the components to a different element type.
auto ToVector2() const -> Vector2<T>

Public variables

T X
T Y
T Z

Constants

static const Vector3 Zero
Vector with all components set to zero.
static const Vector3 XAxis
Unit vector along the X axis.
static const Vector3 YAxis
Unit vector along the Y axis.
static const Vector3 ZAxis
Unit vector along the Z axis.

Friends

template<class S>
auto operator*(S s, const Vector3<S>& v) -> Vector3<S>