6 #include "qualifier.hpp" 7 #if GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_OPERATOR 8 # include "_swizzle.hpp" 9 #elif GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_FUNCTION 10 # include "_swizzle_func.hpp" 16 template<
typename T, qualifier Q>
27 # if GLM_SILENT_WARNINGS == GLM_ENABLE 28 # if GLM_COMPILER & GLM_COMPILER_GCC 29 # pragma GCC diagnostic push 30 # pragma GCC diagnostic ignored "-Wpedantic" 31 # elif GLM_COMPILER & GLM_COMPILER_CLANG 32 # pragma clang diagnostic push 33 # pragma clang diagnostic ignored "-Wgnu-anonymous-struct" 34 # pragma clang diagnostic ignored "-Wnested-anon-types" 35 # elif GLM_COMPILER & GLM_COMPILER_VC 36 # pragma warning(push) 37 # pragma warning(disable: 4201) // nonstandard extension used : nameless struct/union 38 # if GLM_CONFIG_ALIGNED_GENTYPES == GLM_ENABLE 39 # pragma warning(disable: 4324) // structure was padded due to alignment specifier 44 # if GLM_CONFIG_XYZW_ONLY 46 # elif GLM_CONFIG_ANONYMOUS_STRUCT == GLM_ENABLE 55 # if GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_OPERATOR 56 GLM_SWIZZLE3_2_MEMBERS(T, Q, x, y, z)
57 GLM_SWIZZLE3_2_MEMBERS(T, Q, r, g, b)
58 GLM_SWIZZLE3_2_MEMBERS(T, Q, s, t, p)
59 GLM_SWIZZLE3_3_MEMBERS(T, Q, x, y, z)
60 GLM_SWIZZLE3_3_MEMBERS(T, Q, r, g, b)
61 GLM_SWIZZLE3_3_MEMBERS(T, Q, s, t, p)
62 GLM_SWIZZLE3_4_MEMBERS(T, Q, x, y, z)
63 GLM_SWIZZLE3_4_MEMBERS(T, Q, r, g, b)
64 GLM_SWIZZLE3_4_MEMBERS(T, Q, s, t, p)
72 # if GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_FUNCTION 73 GLM_SWIZZLE_GEN_VEC_FROM_VEC3(T, Q)
74 # endif//GLM_CONFIG_SWIZZLE 77 # if GLM_SILENT_WARNINGS == GLM_ENABLE 78 # if GLM_COMPILER & GLM_COMPILER_CLANG 79 # pragma clang diagnostic pop 80 # elif GLM_COMPILER & GLM_COMPILER_GCC 81 # pragma GCC diagnostic pop 82 # elif GLM_COMPILER & GLM_COMPILER_VC 91 GLM_FUNC_DECL
static GLM_CONSTEXPR length_type length(){
return 3;}
93 GLM_FUNC_DECL GLM_CONSTEXPR T & operator[](length_type i);
94 GLM_FUNC_DECL GLM_CONSTEXPR T
const& operator[](length_type i)
const;
98 GLM_FUNC_DECL GLM_CONSTEXPR
vec() GLM_DEFAULT;
99 GLM_FUNC_DECL GLM_CONSTEXPR
vec(
vec const& v) GLM_DEFAULT;
100 template<qualifier P>
105 GLM_FUNC_DECL GLM_CONSTEXPR
explicit vec(T scalar);
106 GLM_FUNC_DECL GLM_CONSTEXPR vec(T a, T b, T c);
110 template<
typename U, qualifier P>
111 GLM_FUNC_DECL GLM_CONSTEXPR
explicit vec(
vec<1, U, P> const& v);
114 template<
typename X,
typename Y,
typename Z>
115 GLM_FUNC_DECL GLM_CONSTEXPR vec(X x, Y y, Z z);
116 template<
typename X,
typename Y,
typename Z>
117 GLM_FUNC_DECL GLM_CONSTEXPR vec(
vec<1, X, Q> const& _x, Y _y, Z _z);
118 template<
typename X,
typename Y,
typename Z>
119 GLM_FUNC_DECL GLM_CONSTEXPR vec(X _x,
vec<1, Y, Q> const& _y, Z _z);
120 template<
typename X,
typename Y,
typename Z>
122 template<
typename X,
typename Y,
typename Z>
123 GLM_FUNC_DECL GLM_CONSTEXPR vec(X _x, Y _y,
vec<1, Z, Q> const& _z);
124 template<
typename X,
typename Y,
typename Z>
126 template<
typename X,
typename Y,
typename Z>
128 template<
typename X,
typename Y,
typename Z>
134 template<
typename A,
typename B, qualifier P>
135 GLM_FUNC_DECL GLM_CONSTEXPR vec(
vec<2, A, P> const& _xy, B _z);
137 template<
typename A,
typename B, qualifier P>
140 template<
typename A,
typename B, qualifier P>
141 GLM_FUNC_DECL GLM_CONSTEXPR vec(A _x,
vec<2, B, P> const& _yz);
143 template<
typename A,
typename B, qualifier P>
146 template<
typename U, qualifier P>
147 GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT vec(
vec<4, U, P> const& v);
150 template<
typename U, qualifier P>
151 GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT vec(
vec<3, U, P> const& v);
154 # if GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_OPERATOR 155 template<
int E0,
int E1,
int E2>
161 template<
int E0,
int E1>
164 *
this = vec(v(), scalar);
167 template<
int E0,
int E1>
170 *
this = vec(scalar, v());
172 # endif//GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_OPERATOR 181 GLM_FUNC_DECL GLM_CONSTEXPR
vec<3, T, Q> & operator+=(U scalar);
187 GLM_FUNC_DECL GLM_CONSTEXPR
vec<3, T, Q> & operator-=(U scalar);
193 GLM_FUNC_DECL GLM_CONSTEXPR
vec<3, T, Q> & operator*=(U scalar);
199 GLM_FUNC_DECL GLM_CONSTEXPR
vec<3, T, Q> & operator/=(U scalar);
207 GLM_FUNC_DECL GLM_CONSTEXPR
vec<3, T, Q> & operator++();
208 GLM_FUNC_DECL GLM_CONSTEXPR
vec<3, T, Q> & operator--();
209 GLM_FUNC_DECL GLM_CONSTEXPR
vec<3, T, Q> operator++(
int);
210 GLM_FUNC_DECL GLM_CONSTEXPR
vec<3, T, Q> operator--(
int);
215 GLM_FUNC_DECL GLM_CONSTEXPR
vec<3, T, Q> & operator%=(U scalar);
221 GLM_FUNC_DECL GLM_CONSTEXPR
vec<3, T, Q> & operator&=(U scalar);
227 GLM_FUNC_DECL GLM_CONSTEXPR
vec<3, T, Q> & operator|=(U scalar);
233 GLM_FUNC_DECL GLM_CONSTEXPR
vec<3, T, Q> & operator^=(U scalar);
239 GLM_FUNC_DECL GLM_CONSTEXPR
vec<3, T, Q> & operator<<=(U scalar);
241 GLM_FUNC_DECL GLM_CONSTEXPR
vec<3, T, Q> & operator<<=(vec<1, U, Q>
const& v);
243 GLM_FUNC_DECL GLM_CONSTEXPR
vec<3, T, Q> & operator<<=(vec<3, U, Q>
const& v);
245 GLM_FUNC_DECL GLM_CONSTEXPR
vec<3, T, Q> & operator>>=(U scalar);
254 template<
typename T, qualifier Q>
257 template<
typename T, qualifier Q>
262 template<
typename T, qualifier Q>
265 template<
typename T, qualifier Q>
268 template<
typename T, qualifier Q>
271 template<
typename T, qualifier Q>
274 template<
typename T, qualifier Q>
277 template<
typename T, qualifier Q>
280 template<
typename T, qualifier Q>
283 template<
typename T, qualifier Q>
286 template<
typename T, qualifier Q>
289 template<
typename T, qualifier Q>
292 template<
typename T, qualifier Q>
295 template<
typename T, qualifier Q>
298 template<
typename T, qualifier Q>
301 template<
typename T, qualifier Q>
304 template<
typename T, qualifier Q>
307 template<
typename T, qualifier Q>
310 template<
typename T, qualifier Q>
313 template<
typename T, qualifier Q>
316 template<
typename T, qualifier Q>
319 template<
typename T, qualifier Q>
322 template<
typename T, qualifier Q>
325 template<
typename T, qualifier Q>
328 template<
typename T, qualifier Q>
331 template<
typename T, qualifier Q>
334 template<
typename T, qualifier Q>
337 template<
typename T, qualifier Q>
340 template<
typename T, qualifier Q>
343 template<
typename T, qualifier Q>
346 template<
typename T, qualifier Q>
349 template<
typename T, qualifier Q>
352 template<
typename T, qualifier Q>
355 template<
typename T, qualifier Q>
358 template<
typename T, qualifier Q>
361 template<
typename T, qualifier Q>
364 template<
typename T, qualifier Q>
367 template<
typename T, qualifier Q>
370 template<
typename T, qualifier Q>
373 template<
typename T, qualifier Q>
376 template<
typename T, qualifier Q>
379 template<
typename T, qualifier Q>
382 template<
typename T, qualifier Q>
383 GLM_FUNC_DECL GLM_CONSTEXPR
vec<3, T, Q> operator<<(vec<3, T, Q>
const& v, T scalar);
385 template<
typename T, qualifier Q>
388 template<
typename T, qualifier Q>
389 GLM_FUNC_DECL GLM_CONSTEXPR
vec<3, T, Q> operator<<(T scalar, vec<3, T, Q>
const& v);
391 template<
typename T, qualifier Q>
394 template<
typename T, qualifier Q>
397 template<
typename T, qualifier Q>
400 template<
typename T, qualifier Q>
403 template<
typename T, qualifier Q>
406 template<
typename T, qualifier Q>
409 template<
typename T, qualifier Q>
412 template<
typename T, qualifier Q>
417 template<
typename T, qualifier Q>
420 template<
typename T, qualifier Q>
423 template<qualifier Q>
426 template<qualifier Q>
430 #ifndef GLM_EXTERNAL_TEMPLATE 431 #include "type_vec3.inl" 432 #endif//GLM_EXTERNAL_TEMPLATE Definition: type_vec3.hpp:17
Definition: qualifier.hpp:35
Definition: qualifier.hpp:85
Core features
Definition: common.hpp:20
length_t length_type
Return the count of components of the vector.
Definition: type_vec3.hpp:90
Definition: type_vec1.hpp:17
Definition: _swizzle.hpp:158