|
|
|
@ -154,63 +154,3 @@ namespace detail |
|
|
|
|
}; |
|
|
|
|
}//namespace detail
|
|
|
|
|
}//namespace glm
|
|
|
|
|
|
|
|
|
|
#define VECTORIZE1_VEC_SCA(func) \ |
|
|
|
|
template <typename T, precision P> \
|
|
|
|
|
GLM_FUNC_QUALIFIER tvec1<T, P> func \
|
|
|
|
|
( \
|
|
|
|
|
tvec1<T, P> const & x, \
|
|
|
|
|
T y \
|
|
|
|
|
) \
|
|
|
|
|
{ \
|
|
|
|
|
return tvec1<T, P>( \
|
|
|
|
|
func(x.x, y)); \
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#define VECTORIZE2_VEC_SCA(func) \ |
|
|
|
|
template <typename T, precision P> \
|
|
|
|
|
GLM_FUNC_QUALIFIER tvec2<T, P> func \
|
|
|
|
|
( \
|
|
|
|
|
tvec2<T, P> const & x, \
|
|
|
|
|
typename tvec2<T, P>::value_type const & y \
|
|
|
|
|
) \
|
|
|
|
|
{ \
|
|
|
|
|
return tvec2<T, P>( \
|
|
|
|
|
func(x.x, y), \
|
|
|
|
|
func(x.y, y)); \
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#define VECTORIZE3_VEC_SCA(func) \ |
|
|
|
|
template <typename T, precision P> \
|
|
|
|
|
GLM_FUNC_QUALIFIER tvec3<T, P> func \
|
|
|
|
|
( \
|
|
|
|
|
tvec3<T, P> const & x, \
|
|
|
|
|
typename tvec3<T, P>::value_type const & y \
|
|
|
|
|
) \
|
|
|
|
|
{ \
|
|
|
|
|
return tvec3<T, P>( \
|
|
|
|
|
func(x.x, y), \
|
|
|
|
|
func(x.y, y), \
|
|
|
|
|
func(x.z, y)); \
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#define VECTORIZE4_VEC_SCA(func) \ |
|
|
|
|
template <typename T, precision P> \
|
|
|
|
|
GLM_FUNC_QUALIFIER tvec4<T, P> func \
|
|
|
|
|
( \
|
|
|
|
|
tvec4<T, P> const & x, \
|
|
|
|
|
typename tvec4<T, P>::value_type const & y \
|
|
|
|
|
) \
|
|
|
|
|
{ \
|
|
|
|
|
return tvec4<T, P>( \
|
|
|
|
|
func(x.x, y), \
|
|
|
|
|
func(x.y, y), \
|
|
|
|
|
func(x.z, y), \
|
|
|
|
|
func(x.w, y)); \
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#define VECTORIZE_VEC_SCA(func) \ |
|
|
|
|
VECTORIZE1_VEC_SCA(func) \
|
|
|
|
|
VECTORIZE2_VEC_SCA(func) \
|
|
|
|
|
VECTORIZE3_VEC_SCA(func) \
|
|
|
|
|
VECTORIZE4_VEC_SCA(func) |
|
|
|
|