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<1, 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<1, T, Q>::vec(vec<1, T, Q>
const& v)
23 template<
typename T, qualifier Q>
25 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<1, T, Q>::vec(vec<1, T, P>
const& v)
31 template<
typename T, qualifier Q>
32 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<1, T, Q>::vec(T scalar)
38 template<
typename T, qualifier Q>
39 template<
typename U, qualifier P>
40 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<1, T, Q>::vec(vec<1, U, P>
const& v)
41 : x(static_cast<T>(v.x))
44 template<
typename T, qualifier Q>
45 template<
typename U, qualifier P>
46 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<1, T, Q>::vec(vec<2, U, P>
const& v)
47 : x(static_cast<T>(v.x))
50 template<
typename T, qualifier Q>
51 template<
typename U, qualifier P>
52 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<1, T, Q>::vec(vec<3, U, P>
const& v)
53 : x(static_cast<T>(v.x))
56 template<
typename T, qualifier Q>
57 template<
typename U, qualifier P>
58 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<1, T, Q>::vec(vec<4, U, P>
const& v)
59 : x(static_cast<T>(v.x))
64 template<
typename T, qualifier Q>
65 GLM_FUNC_QUALIFIER GLM_CONSTEXPR T & vec<1, T, Q>::operator[](
typename vec<1, T, Q>::length_type)
70 template<
typename T, qualifier Q>
71 GLM_FUNC_QUALIFIER GLM_CONSTEXPR T
const& vec<1, T, Q>::operator[](
typename vec<1, T, Q>::length_type)
const
78# if GLM_CONFIG_DEFAULTED_FUNCTIONS == GLM_DISABLE
79 template<
typename T, qualifier Q>
80 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<1, T, Q> & vec<1, T, Q>::operator=(vec<1, T, Q>
const& v)
87 template<
typename T, qualifier Q>
89 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<1, T, Q> & vec<1, T, Q>::operator=(vec<1, U, Q>
const& v)
91 this->x =
static_cast<T
>(v.x);
95 template<
typename T, qualifier Q>
97 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<1, T, Q> & vec<1, T, Q>::operator+=(U scalar)
99 this->x +=
static_cast<T
>(scalar);
103 template<
typename T, qualifier Q>
105 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<1, T, Q> & vec<1, T, Q>::operator+=(vec<1, U, Q>
const& v)
107 this->x +=
static_cast<T
>(v.x);
111 template<
typename T, qualifier Q>
113 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<1, T, Q> & vec<1, T, Q>::operator-=(U scalar)
115 this->x -=
static_cast<T
>(scalar);
119 template<
typename T, qualifier Q>
121 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<1, T, Q> & vec<1, T, Q>::operator-=(vec<1, U, Q>
const& v)
123 this->x -=
static_cast<T
>(v.x);
127 template<
typename T, qualifier Q>
129 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<1, T, Q> & vec<1, T, Q>::operator*=(U scalar)
131 this->x *=
static_cast<T
>(scalar);
135 template<
typename T, qualifier Q>
137 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<1, T, Q> & vec<1, T, Q>::operator*=(vec<1, U, Q>
const& v)
139 this->x *=
static_cast<T
>(v.x);
143 template<
typename T, qualifier Q>
145 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<1, T, Q> & vec<1, T, Q>::operator/=(U scalar)
147 this->x /=
static_cast<T
>(scalar);
151 template<
typename T, qualifier Q>
153 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<1, T, Q> & vec<1, T, Q>::operator/=(vec<1, U, Q>
const& v)
155 this->x /=
static_cast<T
>(v.x);
161 template<
typename T, qualifier Q>
162 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<1, T, Q> & vec<1, T, Q>::operator++()
168 template<
typename T, qualifier Q>
169 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<1, T, Q> & vec<1, T, Q>::operator--()
175 template<
typename T, qualifier Q>
176 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<1, T, Q> vec<1, T, Q>::operator++(
int)
178 vec<1, T, Q> Result(*
this);
183 template<
typename T, qualifier Q>
184 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<1, T, Q> vec<1, T, Q>::operator--(
int)
186 vec<1, T, Q> Result(*
this);
193 template<
typename T, qualifier Q>
195 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<1, T, Q> & vec<1, T, Q>::operator%=(U scalar)
197 this->x %=
static_cast<T
>(scalar);
201 template<
typename T, qualifier Q>
203 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<1, T, Q> & vec<1, T, Q>::operator%=(vec<1, U, Q>
const& v)
205 this->x %=
static_cast<T
>(v.x);
209 template<
typename T, qualifier Q>
211 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<1, T, Q> & vec<1, T, Q>::operator&=(U scalar)
213 this->x &=
static_cast<T
>(scalar);
217 template<
typename T, qualifier Q>
219 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<1, T, Q> & vec<1, T, Q>::operator&=(vec<1, U, Q>
const& v)
221 this->x &=
static_cast<T
>(v.x);
225 template<
typename T, qualifier Q>
227 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<1, T, Q> & vec<1, T, Q>::operator|=(U scalar)
229 this->x |=
static_cast<T
>(scalar);
233 template<
typename T, qualifier Q>
235 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<1, T, Q> & vec<1, T, Q>::operator|=(vec<1, U, Q>
const& v)
241 template<
typename T, qualifier Q>
243 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<1, T, Q> & vec<1, T, Q>::operator^=(U scalar)
245 this->x ^=
static_cast<T
>(scalar);
249 template<
typename T, qualifier Q>
251 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<1, T, Q> & vec<1, T, Q>::operator^=(vec<1, U, Q>
const& v)
253 this->x ^=
static_cast<T
>(v.x);
257 template<
typename T, qualifier Q>
259 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<1, T, Q> & vec<1, T, Q>::operator<<=(U scalar)
261 this->x <<= static_cast<T>(scalar);
265 template<
typename T, qualifier Q>
267 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<1, T, Q> & vec<1, T, Q>::operator<<=(vec<1, U, Q>
const& v)
269 this->x <<= static_cast<T>(v.x);
273 template<
typename T, qualifier Q>
275 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<1, T, Q> & vec<1, T, Q>::operator>>=(U scalar)
277 this->x >>=
static_cast<T
>(scalar);
281 template<
typename T, qualifier Q>
283 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<1, T, Q> & vec<1, T, Q>::operator>>=(vec<1, U, Q>
const& v)
285 this->x >>=
static_cast<T
>(v.x);
291 template<
typename T, qualifier Q>
292 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<1, T, Q> operator+(vec<1, T, Q>
const& v)
297 template<
typename T, qualifier Q>
298 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<1, T, Q> operator-(vec<1, T, Q>
const& v)
306 template<
typename T, qualifier Q>
307 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<1, T, Q> operator+(vec<1, T, Q>
const& v, T scalar)
313 template<
typename T, qualifier Q>
314 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<1, T, Q> operator+(T scalar, vec<1, T, Q>
const& v)
320 template<
typename T, qualifier Q>
321 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<1, T, Q> operator+(vec<1, T, Q>
const& v1, vec<1, T, Q>
const& v2)
328 template<
typename T, qualifier Q>
329 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<1, T, Q> operator-(vec<1, T, Q>
const& v, T scalar)
335 template<
typename T, qualifier Q>
336 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<1, T, Q> operator-(T scalar, vec<1, T, Q>
const& v)
342 template<
typename T, qualifier Q>
343 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<1, T, Q> operator-(vec<1, T, Q>
const& v1, vec<1, T, Q>
const& v2)
349 template<
typename T, qualifier Q>
350 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<1, T, Q> operator*(vec<1, T, Q>
const& v, T scalar)
356 template<
typename T, qualifier Q>
357 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<1, T, Q> operator*(T scalar, vec<1, T, Q>
const& v)
363 template<
typename T, qualifier Q>
364 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<1, T, Q> operator*(vec<1, T, Q>
const& v1, vec<1, T, Q>
const& v2)
370 template<
typename T, qualifier Q>
371 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<1, T, Q> operator/(vec<1, T, Q>
const& v, T scalar)
377 template<
typename T, qualifier Q>
378 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<1, T, Q> operator/(T scalar, vec<1, T, Q>
const& v)
384 template<
typename T, qualifier Q>
385 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<1, T, Q> operator/(vec<1, T, Q>
const& v1, vec<1, T, Q>
const& v2)
393 template<
typename T, qualifier Q>
394 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<1, T, Q> operator%(vec<1, T, Q>
const& v, T scalar)
400 template<
typename T, qualifier Q>
401 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<1, T, Q> operator%(T scalar, vec<1, T, Q>
const& v)
407 template<
typename T, qualifier Q>
408 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<1, T, Q> operator%(vec<1, T, Q>
const& v1, vec<1, T, Q>
const& v2)
414 template<
typename T, qualifier Q>
415 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<1, T, Q> operator&(vec<1, T, Q>
const& v, T scalar)
421 template<
typename T, qualifier Q>
422 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<1, T, Q> operator&(T scalar, vec<1, T, Q>
const& v)
428 template<
typename T, qualifier Q>
429 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<1, T, Q> operator&(vec<1, T, Q>
const& v1, vec<1, T, Q>
const& v2)
435 template<
typename T, qualifier Q>
436 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<1, T, Q> operator|(vec<1, T, Q>
const& v, T scalar)
442 template<
typename T, qualifier Q>
443 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<1, T, Q> operator|(T scalar, vec<1, T, Q>
const& v)
449 template<
typename T, qualifier Q>
450 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<1, T, Q> operator|(vec<1, T, Q>
const& v1, vec<1, T, Q>
const& v2)
456 template<
typename T, qualifier Q>
457 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<1, T, Q> operator^(vec<1, T, Q>
const& v, T scalar)
463 template<
typename T, qualifier Q>
464 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<1, T, Q> operator^(T scalar, vec<1, T, Q>
const& v)
470 template<
typename T, qualifier Q>
471 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<1, T, Q> operator^(vec<1, T, Q>
const& v1, vec<1, T, Q>
const& v2)
477 template<
typename T, qualifier Q>
478 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<1, T, Q> operator<<(vec<1, T, Q>
const& v, T scalar)
481 static_cast<T
>(v.x << scalar));
484 template<
typename T, qualifier Q>
485 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<1, T, Q> operator<<(T scalar, vec<1, T, Q>
const& v)
491 template<
typename T, qualifier Q>
492 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<1, T, Q> operator<<(vec<1, T, Q>
const& v1, vec<1, T, Q>
const& v2)
498 template<
typename T, qualifier Q>
499 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<1, T, Q> operator>>(vec<1, T, Q>
const& v, T scalar)
505 template<
typename T, qualifier Q>
506 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<1, T, Q> operator>>(T scalar, vec<1, T, Q>
const& v)
512 template<
typename T, qualifier Q>
513 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<1, T, Q> operator>>(vec<1, T, Q>
const& v1, vec<1, T, Q>
const& v2)
519 template<
typename T, qualifier Q>
520 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<1, T, Q> operator~(vec<1, T, Q>
const& v)
528 template<
typename T, qualifier Q>
529 GLM_FUNC_QUALIFIER GLM_CONSTEXPR
bool operator==(vec<1, T, Q>
const& v1, vec<1, T, Q>
const& v2)
531 return detail::compute_equal<T, std::numeric_limits<T>::is_iec559>::call(v1.x, v2.x);
534 template<
typename T, qualifier Q>
535 GLM_FUNC_QUALIFIER GLM_CONSTEXPR
bool operator!=(vec<1, T, Q>
const& v1, vec<1, T, Q>
const& v2)
540 template<qualifier Q>
541 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<1, bool, Q> operator&&(vec<1, bool, Q>
const& v1, vec<1, bool, Q>
const& v2)
543 return vec<1, bool, Q>(v1.x && v2.x);
546 template<qualifier Q>
547 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<1, bool, Q> operator||(vec<1, bool, Q>
const& v1, vec<1, bool, Q>
const& v2)
549 return vec<1, bool, Q>(v1.x || v2.x);
Core features
Definition common.hpp:21