35 # if GLM_HAS_ANONYMOUS_UNION 52 # if(GLM_ARCH & GLM_ARCH_SSE2) 60 # if(GLM_ARCH & GLM_ARCH_AVX) 68 template <
typename T, precision P>
89 # if(GLM_HAS_ANONYMOUS_UNION && defined(GLM_SWIZZLE)) 93 struct { T r, g, b, a; };
94 struct { T s, t, p, q; };
95 struct { T x, y, z, w;};
108 # if(GLM_HAS_UNRESTRICTED_UNIONS) 114 union { T x, r, s; };
115 union { T y, g, t; };
116 union { T z, b, p; };
117 union { T w, a, q; };
121 union { T
x, r, s; };
122 union { T
y, g, t; };
123 union { T
z, b, p; };
124 union { T
w, a, q; };
143 template <precision Q>
163 template <
typename A,
typename B,
typename C,
typename D>
174 template <
typename A,
typename B,
typename C, precision Q>
177 template <
typename A,
typename B,
typename C, precision Q>
180 template <
typename A,
typename B,
typename C, precision Q>
183 template <
typename A,
typename B, precision Q>
186 template <
typename A,
typename B, precision Q>
189 template <
typename A,
typename B, precision Q>
192 template <
typename U, precision Q>
198 # if(GLM_HAS_ANONYMOUS_UNION && defined(GLM_SWIZZLE)) 199 template <
int E0,
int E1,
int E2,
int E3>
205 template <
int E0,
int E1,
int F0,
int F1>
206 GLM_FUNC_DECL tvec4(
_swizzle<2, T, P,
tvec2<T, P>, E0, E1, -1, -2>
const & v,
_swizzle<2, T, P,
tvec2<T, P>, F0, F1, -1, -2>
const & u)
211 template <
int E0,
int E1>
212 GLM_FUNC_DECL tvec4(T
const & x, T
const & y,
_swizzle<2, T, P,
tvec2<T, P>, E0, E1, -1, -2>
const & v)
217 template <
int E0,
int E1>
218 GLM_FUNC_DECL tvec4(T
const & x,
_swizzle<2, T, P,
tvec2<T, P>, E0, E1, -1, -2>
const & v, T
const & w)
223 template <
int E0,
int E1>
224 GLM_FUNC_DECL tvec4(
_swizzle<2, T, P,
tvec2<T, P>, E0, E1, -1, -2>
const & v, T
const & z, T
const & w)
229 template <
int E0,
int E1,
int E2>
235 template <
int E0,
int E1,
int E2>
240 # endif//(GLM_HAS_ANONYMOUS_UNION && defined(GLM_SWIZZLE)) 256 template <
typename U, precision Q>
258 template <
typename U>
260 template <
typename U>
262 template <
typename U>
264 template <
typename U>
266 template <
typename U>
268 template <
typename U>
270 template <
typename U>
272 template <
typename U>
286 template <
typename U>
288 template <
typename U>
290 template <
typename U>
292 template <
typename U>
294 template <
typename U>
296 template <
typename U>
298 template <
typename U>
300 template <
typename U>
302 template <
typename U>
304 template <
typename U>
306 template <
typename U>
308 template <
typename U>
312 template <
typename T, precision P>
315 template <
typename T, precision P>
318 template <
typename T, precision P>
321 template <
typename T, precision P>
324 template <
typename T, precision P>
327 template <
typename T, precision P>
330 template <
typename T, precision P>
333 template <
typename T, precision P>
336 template <
typename T, precision P>
339 template <
typename T, precision P>
342 template <
typename T, precision P>
345 template <
typename T, precision P>
348 template <
typename T, precision P>
351 template <
typename T, precision P>
354 template <
typename T, precision P>
357 template <
typename T, precision P>
360 template <
typename T, precision P>
363 template <
typename T, precision P>
366 template <
typename T, precision P>
369 template <
typename T, precision P>
372 template <
typename T, precision P>
375 template <
typename T, precision P>
378 template <
typename T, precision P>
381 template <
typename T, precision P>
384 template <
typename T, precision P>
387 template <
typename T, precision P>
390 template <
typename T, precision P>
393 template <
typename T, precision P>
396 template <
typename T, precision P>
399 template <
typename T, precision P>
402 template <
typename T, precision P>
405 template <
typename T, precision P>
408 template <
typename T, precision P>
411 template <
typename T, precision P>
417 #ifndef GLM_EXTERNAL_TEMPLATE 418 #include "type_vec4.inl" 419 #endif//GLM_EXTERNAL_TEMPLATE GLM_FUNC_DECL tvec1< T, P > operator^(tvec1< T, P > const &v, T const &s)
GLM_FUNC_DECL tvec1< T, P > operator&(tvec1< T, P > const &v, T const &s)
#define _GLM_SWIZZLE4_4_MEMBERS(T, P, V, E0, E1, E2, E3)
#define _GLM_SWIZZLE4_2_MEMBERS(T, P, V, E0, E1, E2, E3)
GLM_FUNC_DECL tvec1< T, P > operator|(tvec1< T, P > const &v, T const &s)
GLM_FUNC_DECL tvec1< T, P > operator~(tvec1< T, P > const &v)
GLM_FUNC_DECL tmat2x2< T, P > operator*(tmat2x2< T, P > const &m, T const &s)
GLM_FUNC_DECL tmat2x2< T, P > operator+(tmat2x2< T, P > const &m, T const &s)
GLM_FUNC_DECL tmat2x2< T, P > operator/(tmat2x2< T, P > const &m, T const &s)
#define _GLM_SWIZZLE4_3_MEMBERS(T, P, V, E0, E1, E2, E3)
GLM_FUNC_DECL bool operator==(tvec1< T, P > const &v1, tvec1< T, P > const &v2)
GLM_FUNC_DECL tmat2x2< T, P > operator-(tmat2x2< T, P > const &m, T const &s)
GLM_FUNC_DECL tvec1< T, P > operator%(tvec1< T, P > const &v, T const &s)
GLM_FUNC_DECL bool operator!=(tvec1< T, P > const &v1, tvec1< T, P > const &v2)
tvec4< bool, P > bool_type
GLM_FUNC_DECL genType::value_type length(genType const &x)
GLM_FUNC_DECL tvec1< T, P > operator>>(tvec1< T, P > const &v, T const &s)
#define GLM_SWIZZLE_GEN_VEC_FROM_VEC4(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE)