32 struct Tr :
public Args<T>...
44 template <
template <
typename>
typename Comp>
72 bool Equals(const
Tr& _other, T _epsilon = std::numeric_limits<T>::epsilon()) const noexcept;
82 bool operator==(const
Tr& _rhs) const noexcept;
91 bool operator!=(const
Tr& _rhs) const noexcept;
112 Vec3<T>
Up(TrFunc _functor = TrFunc()) const;
148 static
Tr Lerp(const
Tr& _start, const
Tr& _end,
float _alpha) noexcept;
175 template <template <typename> typename... InArgs>
176 Tr operator*(const
Tr<T, InArgs...>& _rhs) const;
185 template <template <typename> typename... InArgs>
186 Tr operator/(const
Tr<T, InArgs...>& _rhs) const;
195 template <template <typename> typename... InArgs>
196 Tr& operator*=(const
Tr<T, InArgs...>& _rhs);
205 template <template <typename> typename... InArgs>
206 Tr& operator/=(const
Tr<T, InArgs...>& _rhs);
221 template <typename TOut, template <typename> typename... ArgsOut>
222 operator
Tr<TOut, ArgsOut...>() const noexcept;
230 template <typename CurrT, typename... PArgs>
231 bool IsZeroPacked() const noexcept;
233 template <typename CurrT, typename... PArgs>
234 bool IsIdentityPacked() const noexcept;
236 template <typename CurrT, typename... PArgs>
237 bool EqualsPacked(const
Tr& _other, T _epsilon) const noexcept;
240 template <typename CurrT, typename... PArgs>
241 void LerpUnclampedPacked(const
Tr& _start, const
Tr& _end,
float _alpha) noexcept;
244 template <typename TrIn, typename CurrT, typename... PArgs>
245 void MultiplyPacked(const
Tr& _lhs, const TrIn& _rhs) noexcept;
247 template <typename TrIn, typename CurrT, typename... PArgs>
248 void DividePacked(const
Tr& _lhs, const TrIn& _rhs) noexcept;
255 template <
typename CurrT,
typename... PArgs>
256 std::string ToStringPacked() const noexcept;
260 std::
string ToString() const noexcept;
static Tr LerpUnclamped(const Tr &_start, const Tr &_end, float _alpha) noexcept
Unclamped Lerp from _start to _end at _alpha.
static Tr Lerp(const Tr &_start, const Tr &_end, float _alpha) noexcept
Clamped Lerp from _start to _end at _alpha.