|
| template<class T> |
| SI_INLINE_CONSTEXPR vec2< T > | operator- (const vec2< T > &v) |
| template<class T> |
| SI_INLINE_CONSTEXPR vec3< T > | operator- (const vec3< T > &v) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR bool | operator== (const vec2< T > &lhs, const vec2< U > &rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR bool | operator== (const vec3< T > &lhs, const vec3< U > &rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR bool | operator!= (const vec2< T > &lhs, const vec2< U > &rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR bool | operator!= (const vec3< T > &lhs, const vec3< U > &rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR vec2< T > & | operator+= (vec2< T > &lhs, const vec2< U > &rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR vec3< T > & | operator+= (vec3< T > &lhs, const vec3< U > &rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR vec2< T > & | operator-= (vec2< T > &lhs, const vec2< U > &rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR vec3< T > & | operator-= (vec3< T > &lhs, const vec3< U > &rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR vec2< T > & | operator*= (vec2< T > &lhs, const vec2< U > &rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR vec3< T > & | operator*= (vec3< T > &lhs, const vec3< U > &rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR vec2< T > & | operator/= (vec2< T > &lhs, const vec2< U > &rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR vec3< T > & | operator/= (vec3< T > &lhs, const vec3< U > &rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR std::enable_if_t< std::is_arithmetic_v< U >, vec2< T > & > | operator+= (vec2< T > &lhs, U rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR std::enable_if_t< std::is_arithmetic_v< U >, vec3< T > & > | operator+= (vec3< T > &lhs, U rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR std::enable_if_t< std::is_arithmetic_v< U >, vec2< T > & > | operator-= (vec2< T > &lhs, U rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR std::enable_if_t< std::is_arithmetic_v< U >, vec3< T > & > | operator-= (vec3< T > &lhs, U rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR std::enable_if_t< std::is_arithmetic_v< U >, vec2< T > & > | operator*= (vec2< T > &lhs, U rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR std::enable_if_t< std::is_arithmetic_v< U >, vec3< T > & > | operator*= (vec3< T > &lhs, U rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR std::enable_if_t< std::is_arithmetic_v< U >, vec2< T > & > | operator/= (vec2< T > &lhs, U rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR std::enable_if_t< std::is_arithmetic_v< U >, vec3< T > & > | operator/= (vec3< T > &lhs, U rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR vec2< detail::vec_common_type_t< T, U > > | operator+ (const vec2< T > &lhs, const vec2< U > &rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR vec3< detail::vec_common_type_t< T, U > > | operator+ (const vec3< T > &lhs, const vec3< U > &rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR vec2< detail::vec_common_type_t< T, U > > | operator- (const vec2< T > &lhs, const vec2< U > &rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR vec3< detail::vec_common_type_t< T, U > > | operator- (const vec3< T > &lhs, const vec3< U > &rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR vec2< detail::vec_common_type_t< T, U > > | operator* (const vec2< T > &lhs, const vec2< U > &rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR vec3< detail::vec_common_type_t< T, U > > | operator* (const vec3< T > &lhs, const vec3< U > &rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR vec2< detail::vec_common_type_t< T, U > > | operator/ (const vec2< T > &lhs, const vec2< U > &rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR vec3< detail::vec_common_type_t< T, U > > | operator/ (const vec3< T > &lhs, const vec3< U > &rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR vec2< detail::vec_common_type_t< T, U > > | operator+ (const vec2< T > &lhs, U rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR vec3< detail::vec_common_type_t< T, U > > | operator+ (const vec3< T > &lhs, U rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR vec2< detail::vec_common_type_t< T, U > > | operator- (const vec2< T > &lhs, U rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR vec3< detail::vec_common_type_t< T, U > > | operator- (const vec3< T > &lhs, U rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR vec2< detail::vec_common_type_t< T, U > > | operator* (const vec2< T > &lhs, U rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR vec3< detail::vec_common_type_t< T, U > > | operator* (const vec3< T > &lhs, U rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR vec2< detail::vec_common_type_t< T, U > > | operator/ (const vec2< T > &lhs, U rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR vec3< detail::vec_common_type_t< T, U > > | operator/ (const vec3< T > &lhs, U rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR vec2< detail::vec_common_type_t< T, U > > | operator+ (T lhs, const vec2< U > &rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR vec3< detail::vec_common_type_t< T, U > > | operator+ (T lhs, const vec3< U > &rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR vec2< detail::vec_common_type_t< T, U > > | operator- (T lhs, const vec2< U > &rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR vec3< detail::vec_common_type_t< T, U > > | operator- (T lhs, const vec3< U > &rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR vec2< detail::vec_common_type_t< T, U > > | operator* (T lhs, const vec2< U > &rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR vec3< detail::vec_common_type_t< T, U > > | operator* (T lhs, const vec3< U > &rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR vec2< detail::vec_common_type_t< T, U > > | operator/ (T lhs, const vec2< U > &rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR vec3< detail::vec_common_type_t< T, U > > | operator/ (T lhs, const vec3< U > &rhs) |
| template<class T> |
| SI_INLINE_CONSTEXPR vec2< detail::vec_common_type_t< T > > | abs (const vec2< T > &v) |
| template<class T> |
| SI_INLINE_CONSTEXPR vec3< detail::vec_common_type_t< T > > | abs (const vec3< T > &v) |
| template<class T> |
| SI_INLINE_CONSTEXPR std::enable_if_t< std::is_arithmetic_v< T >, T > | sign (T x) |
| template<class T> |
| SI_INLINE_CONSTEXPR vec2< detail::vec_common_type_t< T > > | sign (const vec2< T > &v) |
| template<class T> |
| SI_INLINE_CONSTEXPR vec3< detail::vec_common_type_t< T > > | sign (const vec3< T > &v) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR std::enable_if_t< std::is_arithmetic_v< T > &&std::is_arithmetic_v< U >, std::common_type_t< T, U > > | min (T lhs, U rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR std::enable_if_t< std::is_arithmetic_v< T > &&std::is_arithmetic_v< U >, std::common_type_t< T, U > > | max (T lhs, U rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR vec2< detail::vec_common_type_t< T, U > > | min (const vec2< T > &lhs, const vec2< U > &rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR vec3< detail::vec_common_type_t< T, U > > | min (const vec3< T > &lhs, const vec3< U > &rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR vec2< detail::vec_common_type_t< T, U > > | max (const vec2< T > &lhs, const vec2< U > &rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR vec3< detail::vec_common_type_t< T, U > > | max (const vec3< T > &lhs, const vec3< U > &rhs) |
| template<class T, class U, class V> |
| SI_INLINE_CONSTEXPR std::enable_if_t< std::is_arithmetic_v< T >, std::common_type_t< T, U, V > > | clamp (T value, U min, V max) |
| template<class T, class U, class V> |
| SI_INLINE_CONSTEXPR vec2< detail::vec_common_type_t< T, U, V > > | clamp (const vec2< T > &value, U min, V max) |
| template<class T, class U, class V> |
| SI_INLINE_CONSTEXPR vec2< detail::vec_common_type_t< T, U, V > > | clamp (const vec2< T > &value, const vec2< U > &min, const vec2< V > &max) |
| template<class T, class U, class V> |
| SI_INLINE_CONSTEXPR vec3< detail::vec_common_type_t< T, U, V > > | clamp (const vec3< T > &value, U min, V max) |
| template<class T, class U, class V> |
| SI_INLINE_CONSTEXPR vec3< detail::vec_common_type_t< T, U, V > > | clamp (const vec3< T > &value, const vec3< U > &min, const vec3< V > &max) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR auto | dot (const vec2< T > &lhs, const vec2< U > &rhs) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR auto | dot (const vec3< T > &lhs, const vec3< U > &rhs) |
| template<class T> |
| SI_INLINE auto | length (const vec2< T > &v) |
| template<class T> |
| SI_INLINE auto | length (const vec3< T > &v) |
| template<class T> |
| SI_INLINE auto | normalize (const vec2< T > &v) |
| template<class T> |
| SI_INLINE auto | normalize (const vec3< T > &v) |
| template<class T, class U> |
| SI_INLINE auto | distance (const vec2< T > &a, const vec2< U > &b) |
| template<class T, class U> |
| SI_INLINE auto | distance (const vec3< T > &a, const vec3< U > &b) |
| template<class T, class U> |
| SI_INLINE_CONSTEXPR vec3< detail::vec_common_type_t< T, U > > | cross (const vec3< T > &lhs, const vec3< U > &rhs) |
| template<class T, class U, class V> |
| SI_INLINE_CONSTEXPR std::common_type_t< T, U, V > | mix (T a, U b, V t) |
| template<class T, class U, class V> |
| SI_INLINE_CONSTEXPR vec2< detail::vec_common_type_t< T, U, V > > | mix (const vec2< T > &a, const vec2< U > &b, V t) |
| template<class T, class U, class V> |
| SI_INLINE_CONSTEXPR vec3< detail::vec_common_type_t< T, U, V > > | mix (const vec3< T > &a, const vec3< U > &b, V t) |