omni::math::linalg::vec3

Defined in usdrt/gf/vec.h

Functions

Typedefs

Variables

template<typename T>
class vec3 : public omni::math::linalg::base_vec<T, 3>

Public Types

using base_type = base_vec<T, 3>
using this_type = vec3<T>
using ScalarType = T
using value_type = T
using size_type = size_t
using difference_type = ptrdiff_t
using reference = value_type&
using const_reference = const value_type&
using pointer = value_type*
using const_pointer = const value_type*
using iterator = pointer
using const_iterator = const_pointer

Public Functions

vec3() = default
constexpr vec3(const this_type&) = default
inline constexpr vec3(const base_type &other)
inline explicit constexpr vec3(T value)
inline constexpr vec3(T v0, T v1, T v2)
template<typename OTHER_T>
inline explicit constexpr vec3(const OTHER_T *p)
template<typename OTHER_T>
inline explicit vec3(const vec3<OTHER_T> &other)
template<typename OTHER_T>
inline explicit vec3(const base_vec<OTHER_T, 3> &other)
template<typename OTHER_T>
inline vec3(const std::initializer_list<OTHER_T> &other)
inline this_type &Set(T v0, T v1, T v2)
inline this_type &Set(T *p)
template<typename OTHER_T>
inline bool operator==(const vec3<OTHER_T> &other) const
template<typename OTHER_T>
inline bool operator!=(const vec3<OTHER_T> &other) const
inline this_type GetProjection(const this_type &unitVector) const
inline this_type GetComplement(const this_type &unitVector) const
inline this_type GetNormalized() const
void BuildOrthonormalFrame(vec3<T> *v1, vec3<T> *v2, float eps = 1e-10) const
inline constexpr T &operator[](size_t i) noexcept
inline constexpr const T &operator[](size_t i) const noexcept
inline constexpr T *data() noexcept
inline constexpr const T *data() const noexcept
inline const T *GetArray() const
inline constexpr T Dot(const base_vec<T, N> &other) const
inline constexpr T GetLengthSq() const
inline auto GetLength() const
inline auto Normalize()
inline constexpr T operator*(const base_vec<T, N> &other) const
inline constexpr base_vec<T, N> &operator+=(const base_vec<T, N> &that) noexcept
inline constexpr base_vec<T, N> &operator-=(const base_vec<T, N> &that) noexcept
inline constexpr base_vec<T, N> &operator*=(const T that) noexcept
inline constexpr base_vec<T, N> &operator/=(const T that) noexcept

Public Static Functions

static inline constexpr vec3<T> XAxis()
static inline constexpr vec3<T> YAxis()
static inline constexpr vec3<T> ZAxis()
static inline vec3<T> Axis(size_t axis)
static bool OrthogonalizeBasis(vec3<T> *pa, vec3<T> *pb, vec3<T> *pc, bool normalize = true)

Public Static Attributes

static constexpr size_t tuple_size
static const size_t dimension

Protected Attributes

T v[N]