3#include "compute_vector_relational.hpp"
9# if GLM_CONFIG_DEFAULTED_FUNCTIONS == GLM_DISABLE
10 template<
typename T, qualifier Q>
11 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q>::vec()
12# if GLM_CONFIG_CTOR_INIT != GLM_CTOR_INIT_DISABLE
17 template<
typename T, qualifier Q>
18 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q>::vec(vec<3, T, Q>
const& v)
19 : x(v.x), y(v.y), z(v.z)
23 template<
typename T, qualifier Q>
25 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q>::vec(vec<3, T, P>
const& v)
26 : x(v.x), y(v.y), z(v.z)
31 template<
typename T, qualifier Q>
32 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q>::vec(T scalar)
33 : x(scalar), y(scalar), z(scalar)
36 template <
typename T, qualifier Q>
37 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q>::vec(T _x, T _y, T _z)
43 template<
typename T, qualifier Q>
44 template<
typename U, qualifier P>
45 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q>::vec(vec<1, U, P>
const& v)
46 : x(static_cast<T>(v.x))
47 , y(static_cast<T>(v.x))
48 , z(static_cast<T>(v.x))
51 template<
typename T, qualifier Q>
52 template<
typename X,
typename Y,
typename Z>
53 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q>::vec(X _x, Y _y, Z _z)
54 : x(static_cast<T>(_x))
55 , y(static_cast<T>(_y))
56 , z(static_cast<T>(_z))
59 template<
typename T, qualifier Q>
60 template<
typename X,
typename Y,
typename Z>
61 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q>::vec(vec<1, X, Q>
const& _x, Y _y, Z _z)
62 : x(static_cast<T>(_x.x))
63 , y(static_cast<T>(_y))
64 , z(static_cast<T>(_z))
67 template<
typename T, qualifier Q>
68 template<
typename X,
typename Y,
typename Z>
69 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q>::vec(X _x, vec<1, Y, Q>
const& _y, Z _z)
70 : x(static_cast<T>(_x))
71 , y(static_cast<T>(_y.x))
72 , z(static_cast<T>(_z))
75 template<
typename T, qualifier Q>
76 template<
typename X,
typename Y,
typename Z>
77 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q>::vec(vec<1, X, Q>
const& _x, vec<1, Y, Q>
const& _y, Z _z)
78 : x(static_cast<T>(_x.x))
79 , y(static_cast<T>(_y.x))
80 , z(static_cast<T>(_z))
83 template<
typename T, qualifier Q>
84 template<
typename X,
typename Y,
typename Z>
85 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q>::vec(X _x, Y _y, vec<1, Z, Q>
const& _z)
86 : x(static_cast<T>(_x))
87 , y(static_cast<T>(_y))
88 , z(static_cast<T>(_z.x))
91 template<
typename T, qualifier Q>
92 template<
typename X,
typename Y,
typename Z>
93 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q>::vec(vec<1, X, Q>
const& _x, Y _y, vec<1, Z, Q>
const& _z)
94 : x(static_cast<T>(_x.x))
95 , y(static_cast<T>(_y))
96 , z(static_cast<T>(_z.x))
99 template<
typename T, qualifier Q>
100 template<
typename X,
typename Y,
typename Z>
101 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q>::vec(X _x, vec<1, Y, Q>
const& _y, vec<1, Z, Q>
const& _z)
102 : x(static_cast<T>(_x))
103 , y(static_cast<T>(_y.x))
104 , z(static_cast<T>(_z.x))
107 template<
typename T, qualifier Q>
108 template<
typename X,
typename Y,
typename Z>
109 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q>::vec(vec<1, X, Q>
const& _x, vec<1, Y, Q>
const& _y, vec<1, Z, Q>
const& _z)
110 : x(static_cast<T>(_x.x))
111 , y(static_cast<T>(_y.x))
112 , z(static_cast<T>(_z.x))
117 template<
typename T, qualifier Q>
118 template<
typename A,
typename B, qualifier P>
119 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q>::vec(vec<2, A, P>
const& _xy, B _z)
120 : x(static_cast<T>(_xy.x))
121 , y(static_cast<T>(_xy.y))
122 , z(static_cast<T>(_z))
125 template<
typename T, qualifier Q>
126 template<
typename A,
typename B, qualifier P>
127 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q>::vec(vec<2, A, P>
const& _xy, vec<1, B, P>
const& _z)
128 : x(static_cast<T>(_xy.x))
129 , y(static_cast<T>(_xy.y))
130 , z(static_cast<T>(_z.x))
133 template<
typename T, qualifier Q>
134 template<
typename A,
typename B, qualifier P>
135 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q>::vec(A _x, vec<2, B, P>
const& _yz)
136 : x(static_cast<T>(_x))
137 , y(static_cast<T>(_yz.x))
138 , z(static_cast<T>(_yz.y))
141 template<
typename T, qualifier Q>
142 template<
typename A,
typename B, qualifier P>
143 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q>::vec(vec<1, A, P>
const& _x, vec<2, B, P>
const& _yz)
144 : x(static_cast<T>(_x.x))
145 , y(static_cast<T>(_yz.x))
146 , z(static_cast<T>(_yz.y))
149 template<
typename T, qualifier Q>
150 template<
typename U, qualifier P>
151 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q>::vec(vec<3, U, P>
const& v)
152 : x(static_cast<T>(v.x))
153 , y(static_cast<T>(v.y))
154 , z(static_cast<T>(v.z))
157 template<
typename T, qualifier Q>
158 template<
typename U, qualifier P>
159 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q>::vec(vec<4, U, P>
const& v)
160 : x(static_cast<T>(v.x))
161 , y(static_cast<T>(v.y))
162 , z(static_cast<T>(v.z))
167 template<
typename T, qualifier Q>
168 GLM_FUNC_QUALIFIER GLM_CONSTEXPR T & vec<3, T, Q>::operator[](
typename vec<3, T, Q>::length_type i)
170 assert(i >= 0 && i < this->length());
183 template<
typename T, qualifier Q>
184 GLM_FUNC_QUALIFIER GLM_CONSTEXPR T
const& vec<3, T, Q>::operator[](
typename vec<3, T, Q>::length_type i)
const
186 assert(i >= 0 && i < this->length());
201# if GLM_CONFIG_DEFAULTED_FUNCTIONS == GLM_DISABLE
202 template<
typename T, qualifier Q>
203 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q>& vec<3, T, Q>::operator=(vec<3, T, Q>
const& v)
212 template<
typename T, qualifier Q>
214 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q>& vec<3, T, Q>::operator=(vec<3, U, Q>
const& v)
216 this->x =
static_cast<T
>(v.x);
217 this->y =
static_cast<T
>(v.y);
218 this->z =
static_cast<T
>(v.z);
222 template<
typename T, qualifier Q>
224 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> & vec<3, T, Q>::operator+=(U scalar)
226 this->x +=
static_cast<T
>(scalar);
227 this->y +=
static_cast<T
>(scalar);
228 this->z +=
static_cast<T
>(scalar);
232 template<
typename T, qualifier Q>
234 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> & vec<3, T, Q>::operator+=(vec<1, U, Q>
const& v)
236 this->x +=
static_cast<T
>(v.x);
237 this->y +=
static_cast<T
>(v.x);
238 this->z +=
static_cast<T
>(v.x);
242 template<
typename T, qualifier Q>
244 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> & vec<3, T, Q>::operator+=(vec<3, U, Q>
const& v)
246 this->x +=
static_cast<T
>(v.x);
247 this->y +=
static_cast<T
>(v.y);
248 this->z +=
static_cast<T
>(v.z);
252 template<
typename T, qualifier Q>
254 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> & vec<3, T, Q>::operator-=(U scalar)
256 this->x -=
static_cast<T
>(scalar);
257 this->y -=
static_cast<T
>(scalar);
258 this->z -=
static_cast<T
>(scalar);
262 template<
typename T, qualifier Q>
264 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> & vec<3, T, Q>::operator-=(vec<1, U, Q>
const& v)
266 this->x -=
static_cast<T
>(v.x);
267 this->y -=
static_cast<T
>(v.x);
268 this->z -=
static_cast<T
>(v.x);
272 template<
typename T, qualifier Q>
274 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> & vec<3, T, Q>::operator-=(vec<3, U, Q>
const& v)
276 this->x -=
static_cast<T
>(v.x);
277 this->y -=
static_cast<T
>(v.y);
278 this->z -=
static_cast<T
>(v.z);
282 template<
typename T, qualifier Q>
284 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> & vec<3, T, Q>::operator*=(U scalar)
286 this->x *=
static_cast<T
>(scalar);
287 this->y *=
static_cast<T
>(scalar);
288 this->z *=
static_cast<T
>(scalar);
292 template<
typename T, qualifier Q>
294 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> & vec<3, T, Q>::operator*=(vec<1, U, Q>
const& v)
296 this->x *=
static_cast<T
>(v.x);
297 this->y *=
static_cast<T
>(v.x);
298 this->z *=
static_cast<T
>(v.x);
302 template<
typename T, qualifier Q>
304 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> & vec<3, T, Q>::operator*=(vec<3, U, Q>
const& v)
306 this->x *=
static_cast<T
>(v.x);
307 this->y *=
static_cast<T
>(v.y);
308 this->z *=
static_cast<T
>(v.z);
312 template<
typename T, qualifier Q>
314 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> & vec<3, T, Q>::operator/=(U v)
316 this->x /=
static_cast<T
>(v);
317 this->y /=
static_cast<T
>(v);
318 this->z /=
static_cast<T
>(v);
322 template<
typename T, qualifier Q>
324 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> & vec<3, T, Q>::operator/=(vec<1, U, Q>
const& v)
326 this->x /=
static_cast<T
>(v.x);
327 this->y /=
static_cast<T
>(v.x);
328 this->z /=
static_cast<T
>(v.x);
332 template<
typename T, qualifier Q>
334 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> & vec<3, T, Q>::operator/=(vec<3, U, Q>
const& v)
336 this->x /=
static_cast<T
>(v.x);
337 this->y /=
static_cast<T
>(v.y);
338 this->z /=
static_cast<T
>(v.z);
344 template<
typename T, qualifier Q>
345 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> & vec<3, T, Q>::operator++()
353 template<
typename T, qualifier Q>
354 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> & vec<3, T, Q>::operator--()
362 template<
typename T, qualifier Q>
363 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> vec<3, T, Q>::operator++(
int)
365 vec<3, T, Q> Result(*
this);
370 template<
typename T, qualifier Q>
371 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> vec<3, T, Q>::operator--(
int)
373 vec<3, T, Q> Result(*
this);
380 template<
typename T, qualifier Q>
382 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> & vec<3, T, Q>::operator%=(U scalar)
390 template<
typename T, qualifier Q>
392 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> & vec<3, T, Q>::operator%=(vec<1, U, Q>
const& v)
400 template<
typename T, qualifier Q>
402 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> & vec<3, T, Q>::operator%=(vec<3, U, Q>
const& v)
410 template<
typename T, qualifier Q>
412 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> & vec<3, T, Q>::operator&=(U scalar)
420 template<
typename T, qualifier Q>
422 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> & vec<3, T, Q>::operator&=(vec<1, U, Q>
const& v)
430 template<
typename T, qualifier Q>
432 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> & vec<3, T, Q>::operator&=(vec<3, U, Q>
const& v)
440 template<
typename T, qualifier Q>
442 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> & vec<3, T, Q>::operator|=(U scalar)
450 template<
typename T, qualifier Q>
452 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> & vec<3, T, Q>::operator|=(vec<1, U, Q>
const& v)
460 template<
typename T, qualifier Q>
462 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> & vec<3, T, Q>::operator|=(vec<3, U, Q>
const& v)
470 template<
typename T, qualifier Q>
472 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> & vec<3, T, Q>::operator^=(U scalar)
480 template<
typename T, qualifier Q>
482 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> & vec<3, T, Q>::operator^=(vec<1, U, Q>
const& v)
490 template<
typename T, qualifier Q>
492 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> & vec<3, T, Q>::operator^=(vec<3, U, Q>
const& v)
500 template<
typename T, qualifier Q>
502 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> & vec<3, T, Q>::operator<<=(U scalar)
510 template<
typename T, qualifier Q>
512 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> & vec<3, T, Q>::operator<<=(vec<1, U, Q>
const& v)
514 this->x <<= static_cast<T>(v.x);
515 this->y <<= static_cast<T>(v.x);
516 this->z <<= static_cast<T>(v.x);
520 template<
typename T, qualifier Q>
522 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> & vec<3, T, Q>::operator<<=(vec<3, U, Q>
const& v)
524 this->x <<= static_cast<T>(v.x);
525 this->y <<= static_cast<T>(v.y);
526 this->z <<= static_cast<T>(v.z);
530 template<
typename T, qualifier Q>
532 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> & vec<3, T, Q>::operator>>=(U scalar)
534 this->x >>=
static_cast<T
>(scalar);
535 this->y >>=
static_cast<T
>(scalar);
536 this->z >>=
static_cast<T
>(scalar);
540 template<
typename T, qualifier Q>
542 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> & vec<3, T, Q>::operator>>=(vec<1, U, Q>
const& v)
544 this->x >>=
static_cast<T
>(v.x);
545 this->y >>=
static_cast<T
>(v.x);
546 this->z >>=
static_cast<T
>(v.x);
550 template<
typename T, qualifier Q>
552 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> & vec<3, T, Q>::operator>>=(vec<3, U, Q>
const& v)
554 this->x >>=
static_cast<T
>(v.x);
555 this->y >>=
static_cast<T
>(v.y);
556 this->z >>=
static_cast<T
>(v.z);
562 template<
typename T, qualifier Q>
563 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> operator+(vec<3, T, Q>
const& v)
568 template<
typename T, qualifier Q>
569 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> operator-(vec<3, T, Q>
const& v)
579 template<
typename T, qualifier Q>
580 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> operator+(vec<3, T, Q>
const& v, T scalar)
588 template<
typename T, qualifier Q>
589 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> operator+(vec<3, T, Q>
const& v, vec<1, T, Q>
const& scalar)
597 template<
typename T, qualifier Q>
598 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> operator+(T scalar, vec<3, T, Q>
const& v)
606 template<
typename T, qualifier Q>
607 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> operator+(vec<1, T, Q>
const& scalar, vec<3, T, Q>
const& v)
615 template<
typename T, qualifier Q>
616 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> operator+(vec<3, T, Q>
const& v1, vec<3, T, Q>
const& v2)
624 template<
typename T, qualifier Q>
625 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> operator-(vec<3, T, Q>
const& v, T scalar)
633 template<
typename T, qualifier Q>
634 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> operator-(vec<3, T, Q>
const& v, vec<1, T, Q>
const& scalar)
642 template<
typename T, qualifier Q>
643 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> operator-(T scalar, vec<3, T, Q>
const& v)
651 template<
typename T, qualifier Q>
652 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> operator-(vec<1, T, Q>
const& scalar, vec<3, T, Q>
const& v)
660 template<
typename T, qualifier Q>
661 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> operator-(vec<3, T, Q>
const& v1, vec<3, T, Q>
const& v2)
669 template<
typename T, qualifier Q>
670 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> operator*(vec<3, T, Q>
const& v, T scalar)
678 template<
typename T, qualifier Q>
679 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> operator*(vec<3, T, Q>
const& v, vec<1, T, Q>
const& scalar)
687 template<
typename T, qualifier Q>
688 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> operator*(T scalar, vec<3, T, Q>
const& v)
696 template<
typename T, qualifier Q>
697 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> operator*(vec<1, T, Q>
const& scalar, vec<3, T, Q>
const& v)
705 template<
typename T, qualifier Q>
706 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> operator*(vec<3, T, Q>
const& v1, vec<3, T, Q>
const& v2)
714 template<
typename T, qualifier Q>
715 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> operator/(vec<3, T, Q>
const& v, T scalar)
723 template<
typename T, qualifier Q>
724 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> operator/(vec<3, T, Q>
const& v, vec<1, T, Q>
const& scalar)
732 template<
typename T, qualifier Q>
733 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> operator/(T scalar, vec<3, T, Q>
const& v)
741 template<
typename T, qualifier Q>
742 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> operator/(vec<1, T, Q>
const& scalar, vec<3, T, Q>
const& v)
750 template<
typename T, qualifier Q>
751 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> operator/(vec<3, T, Q>
const& v1, vec<3, T, Q>
const& v2)
761 template<
typename T, qualifier Q>
762 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> operator%(vec<3, T, Q>
const& v, T scalar)
770 template<
typename T, qualifier Q>
771 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> operator%(vec<3, T, Q>
const& v, vec<1, T, Q>
const& scalar)
779 template<
typename T, qualifier Q>
780 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> operator%(T scalar, vec<3, T, Q>
const& v)
788 template<
typename T, qualifier Q>
789 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> operator%(vec<1, T, Q>
const& scalar, vec<3, T, Q>
const& v)
797 template<
typename T, qualifier Q>
798 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> operator%(vec<3, T, Q>
const& v1, vec<3, T, Q>
const& v2)
806 template<
typename T, qualifier Q>
807 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> operator&(vec<3, T, Q>
const& v, T scalar)
815 template<
typename T, qualifier Q>
816 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> operator&(vec<3, T, Q>
const& v, vec<1, T, Q>
const& scalar)
824 template<
typename T, qualifier Q>
825 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> operator&(T scalar, vec<3, T, Q>
const& v)
833 template<
typename T, qualifier Q>
834 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> operator&(vec<1, T, Q>
const& scalar, vec<3, T, Q>
const& v)
842 template<
typename T, qualifier Q>
843 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> operator&(vec<3, T, Q>
const& v1, vec<3, T, Q>
const& v2)
851 template<
typename T, qualifier Q>
852 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> operator|(vec<3, T, Q>
const& v, T scalar)
860 template<
typename T, qualifier Q>
861 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> operator|(vec<3, T, Q>
const& v, vec<1, T, Q>
const& scalar)
869 template<
typename T, qualifier Q>
870 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> operator|(T scalar, vec<3, T, Q>
const& v)
878 template<
typename T, qualifier Q>
879 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> operator|(vec<1, T, Q>
const& scalar, vec<3, T, Q>
const& v)
887 template<
typename T, qualifier Q>
888 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> operator|(vec<3, T, Q>
const& v1, vec<3, T, Q>
const& v2)
896 template<
typename T, qualifier Q>
897 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> operator^(vec<3, T, Q>
const& v, T scalar)
905 template<
typename T, qualifier Q>
906 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> operator^(vec<3, T, Q>
const& v, vec<1, T, Q>
const& scalar)
914 template<
typename T, qualifier Q>
915 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> operator^(T scalar, vec<3, T, Q>
const& v)
923 template<
typename T, qualifier Q>
924 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> operator^(vec<1, T, Q>
const& scalar, vec<3, T, Q>
const& v)
932 template<
typename T, qualifier Q>
933 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> operator^(vec<3, T, Q>
const& v1, vec<3, T, Q>
const& v2)
941 template<
typename T, qualifier Q>
942 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> operator<<(vec<3, T, Q>
const& v, T scalar)
950 template<
typename T, qualifier Q>
951 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> operator<<(vec<3, T, Q>
const& v, vec<1, T, Q>
const& scalar)
959 template<
typename T, qualifier Q>
960 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> operator<<(T scalar, vec<3, T, Q>
const& v)
968 template<
typename T, qualifier Q>
969 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> operator<<(vec<1, T, Q>
const& scalar, vec<3, T, Q>
const& v)
977 template<
typename T, qualifier Q>
978 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> operator<<(vec<3, T, Q>
const& v1, vec<3, T, Q>
const& v2)
986 template<
typename T, qualifier Q>
987 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> operator>>(vec<3, T, Q>
const& v, T scalar)
995 template<
typename T, qualifier Q>
996 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> operator>>(vec<3, T, Q>
const& v, vec<1, T, Q>
const& scalar)
1004 template<
typename T, qualifier Q>
1005 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> operator>>(T scalar, vec<3, T, Q>
const& v)
1007 return vec<3, T, Q>(
1013 template<
typename T, qualifier Q>
1014 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> operator>>(vec<1, T, Q>
const& scalar, vec<3, T, Q>
const& v)
1016 return vec<3, T, Q>(
1022 template<
typename T, qualifier Q>
1023 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> operator>>(vec<3, T, Q>
const& v1, vec<3, T, Q>
const& v2)
1025 return vec<3, T, Q>(
1031 template<
typename T, qualifier Q>
1032 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> operator~(vec<3, T, Q>
const& v)
1034 return vec<3, T, Q>(
1042 template<
typename T, qualifier Q>
1043 GLM_FUNC_QUALIFIER GLM_CONSTEXPR
bool operator==(vec<3, T, Q>
const& v1, vec<3, T, Q>
const& v2)
1046 detail::compute_equal<T, std::numeric_limits<T>::is_iec559>::call(v1.x, v2.x) &&
1047 detail::compute_equal<T, std::numeric_limits<T>::is_iec559>::call(v1.y, v2.y) &&
1048 detail::compute_equal<T, std::numeric_limits<T>::is_iec559>::call(v1.z, v2.z);
1051 template<
typename T, qualifier Q>
1052 GLM_FUNC_QUALIFIER GLM_CONSTEXPR
bool operator!=(vec<3, T, Q>
const& v1, vec<3, T, Q>
const& v2)
1057 template<qualifier Q>
1058 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, bool, Q> operator&&(vec<3, bool, Q>
const& v1, vec<3, bool, Q>
const& v2)
1060 return vec<3, bool, Q>(v1.x && v2.x, v1.y && v2.y, v1.z && v2.z);
1063 template<qualifier Q>
1064 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, bool, Q> operator||(vec<3, bool, Q>
const& v1, vec<3, bool, Q>
const& v2)
1066 return vec<3, bool, Q>(v1.x || v2.x, v1.y || v2.y, v1.z || v2.z);
Core features
Definition common.hpp:21