template<typename T>
sead::Vector3 struct

Base classes

template<typename T>
struct BaseVec3<T>

Public types

using Mtx33 = typename Policies<T>::Mtx33Base
using Mtx34 = typename Policies<T>::Mtx34Base
using Quat = typename Policies<T>::QuatBase

Public static variables

static const Vector3 zero
static const Vector3 ex
static const Vector3 ey
static const Vector3 ez
static const Vector3 ones

Constructors, destructors, conversion operators

Vector3()
Vector3(const Vector3& other) defaulted
Vector3(T x, T y, T z)

Public functions

auto operator=(const Vector3& other) -> Vector3&
auto operator==(const Vector3& rhs) const -> bool
auto operator!=(const Vector3& rhs) const -> bool
auto operator+=(const Vector3& other) -> Vector3&
auto operator-=(const Vector3& other) -> Vector3&
auto operator*=(T t) -> Vector3&
auto operator*=(const Mtx33& m) -> Vector3&
auto operator*=(const Mtx34& m) -> Vector3&
auto operator/=(T t) -> Vector3&
auto operator-() const -> Vector3
auto cross(const Vector3& t) const -> Vector3
auto dot(const Vector3& t) const -> T
auto length() const -> T
auto squaredLength() const -> T
auto equals(const Vector3& rhs, T epsilon = 0) const -> bool
void add(const Vector3& a)
void mul(const Mtx33& m)
Apply a rotation m to this vector.
void mul(const Mtx34& m)
Apply a transformation m (rotation then translation) to this vector.
void rotate(const Mtx33& m)
Apply a rotation m to this vector.
void rotate(const Mtx34& m)
Apply a rotation m to this vector.
void rotate(const Quat& q)
Apply a rotation q to this vector.
void multScalar(T t)
auto normalize() -> T
void negate()
void set(const Vector3& other)
void set(T x, T y, T z)
void setAdd(const Vector3<T>& a, const Vector3<T>& b)
void setCross(const Vector3<T>& a, const Vector3<T>& b)
void setScale(const Vector3<T>& a, T t)
void setScaleAdd(T t, const Vector3<T>& a, const Vector3<T>& b)
void setMul(const Mtx33& m, const Vector3& a)
void setMul(const Mtx34& m, const Vector3& a)
void setRotated(const Mtx33& m, const Vector3& a)
void setRotated(const Mtx34& m, const Vector3& a)
void setRotated(const Quat& q, const Vector3& a)
void setSub(const Vector3& a, const Vector3& b)
auto zero(0. 0f, 0. 0f, 0. 0f) -> const Vector3<f32>
auto ex(1. 0f, 0. 0f, 0. 0f) -> const Vector3<f32>
auto ey(0. 0f, 1. 0f, 0. 0f) -> const Vector3<f32>
auto ez(0. 0f, 0. 0f, 1. 0f) -> const Vector3<f32>
auto ones(1. 0f, 1. 0f, 1. 0f) -> const Vector3<f32>

Public variables

T x
T y
T z
std::array<T, 3> e
union sead::BaseVec3::@4 @5

Friends

auto operator+(const Vector3& a, const Vector3& b) -> Vector3
auto operator-(const Vector3& a, const Vector3& b) -> Vector3
auto operator*(const Vector3& a, T t) -> Vector3
auto operator*(T t, const Vector3& a) -> Vector3
auto operator*(const Mtx33& m, const Vector3& a) -> Vector3
auto operator*(const Mtx34& m, const Vector3& a) -> Vector3
auto operator/(const Vector3& a, T t) -> Vector3

Function documentation

template<typename T>
sead::Vector3<T>::Vector3()

template<typename T>
bool sead::Vector3<T>::equals(const Vector3& rhs, T epsilon = 0) const

Checks if the differences of all components of lhs and rhs are within epsilon. (i.e. -epsilon <= lhs.x - rhs.x <= epsilon, and so on).

template<typename T>
const Vector3<f32> sead::Vector3<T>::zero(0. 0f, 0. 0f, 0. 0f)

template<typename T>
const Vector3<f32> sead::Vector3<T>::ex(1. 0f, 0. 0f, 0. 0f)

template<typename T>
const Vector3<f32> sead::Vector3<T>::ey(0. 0f, 1. 0f, 0. 0f)

template<typename T>
const Vector3<f32> sead::Vector3<T>::ez(0. 0f, 0. 0f, 1. 0f)

template<typename T>
const Vector3<f32> sead::Vector3<T>::ones(1. 0f, 1. 0f, 1. 0f)

Variable documentation

template<typename T>
T sead::Vector3<T>::x

template<typename T>
T sead::Vector3<T>::y

template<typename T>
T sead::Vector3<T>::z

template<typename T>
std::array<T, 3> sead::Vector3<T>::e

template<typename T>
union sead::BaseVec3::@4 sead::Vector3<T>::@5