16 #include "../detail/type_vec.hpp" 17 #if GLM_SWIZZLE == GLM_SWIZZLE_ENABLED 18 # if GLM_HAS_UNRESTRICTED_UNIONS 19 # include "../detail/_swizzle.hpp" 21 # include "../detail/_swizzle_func.hpp" 26 #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) 27 # pragma message("GLM: GLM_EXT_vec1 extension included") 35 template<
typename T, qualifier Q>
42 typedef vec<1, bool, Q> bool_type;
46 # if GLM_HAS_ONLY_XYZW 49 # elif GLM_HAS_ALIGNED_TYPE 50 # if GLM_COMPILER & GLM_COMPILER_GCC 51 # pragma GCC diagnostic push 52 # pragma GCC diagnostic ignored "-Wpedantic" 54 # if GLM_COMPILER & GLM_COMPILER_CLANG 55 # pragma clang diagnostic push 56 # pragma clang diagnostic ignored "-Wgnu-anonymous-struct" 57 # pragma clang diagnostic ignored "-Wnested-anon-types" 79 # if GLM_COMPILER & GLM_COMPILER_CLANG 80 # pragma clang diagnostic pop 82 # if GLM_COMPILER & GLM_COMPILER_GCC 83 # pragma GCC diagnostic pop 96 typedef length_t length_type;
97 GLM_FUNC_DECL
static GLM_CONSTEXPR length_type
length(){
return 1;}
99 GLM_FUNC_DECL T & operator[](length_type i);
100 GLM_FUNC_DECL T
const& operator[](length_type i)
const;
104 GLM_FUNC_DECL GLM_CONSTEXPR_CTOR vec() GLM_DEFAULT;
105 GLM_FUNC_DECL GLM_CONSTEXPR_CTOR vec(vec const& v) GLM_DEFAULT;
106 template<qualifier P>
107 GLM_FUNC_DECL GLM_CONSTEXPR_CTOR vec(vec<1, T, P> const& v);
111 GLM_FUNC_DECL GLM_CONSTEXPR_CTOR explicit vec(T scalar);
116 template<typename U, qualifier P>
117 GLM_FUNC_DECL GLM_CONSTEXPR_CTOR GLM_EXPLICIT vec(vec<2, U, P> const& v);
119 template<typename U, qualifier P>
120 GLM_FUNC_DECL GLM_CONSTEXPR_CTOR GLM_EXPLICIT vec(vec<3, U, P> const& v);
122 template<typename U, qualifier P>
123 GLM_FUNC_DECL GLM_CONSTEXPR_CTOR GLM_EXPLICIT vec(vec<4, U, P> const& v);
126 template<typename U, qualifier P>
127 GLM_FUNC_DECL GLM_CONSTEXPR_CTOR GLM_EXPLICIT vec(vec<1, U, P> const& v);
141 GLM_FUNC_DECL vec & operator=(vec const& v) GLM_DEFAULT;
144 GLM_FUNC_DECL vec & operator=(vec<1, U, Q> const& v);
146 GLM_FUNC_DECL vec & operator+=(U scalar);
148 GLM_FUNC_DECL vec & operator+=(vec<1, U, Q> const& v);
150 GLM_FUNC_DECL vec & operator-=(U scalar);
152 GLM_FUNC_DECL vec & operator-=(vec<1, U, Q> const& v);
154 GLM_FUNC_DECL vec & operator*=(U scalar);
156 GLM_FUNC_DECL vec & operator*=(vec<1, U, Q> const& v);
158 GLM_FUNC_DECL vec & operator/=(U scalar);
160 GLM_FUNC_DECL vec & operator/=(vec<1, U, Q> const& v);
164 GLM_FUNC_DECL vec & operator++();
165 GLM_FUNC_DECL vec & operator--();
166 GLM_FUNC_DECL vec operator++(
int);
167 GLM_FUNC_DECL vec operator--(
int);
172 GLM_FUNC_DECL vec & operator%=(U scalar);
174 GLM_FUNC_DECL vec & operator%=(vec<1, U, Q> const& v);
176 GLM_FUNC_DECL vec & operator&=(U scalar);
178 GLM_FUNC_DECL vec & operator&=(vec<1, U, Q> const& v);
180 GLM_FUNC_DECL vec & operator|=(U scalar);
182 GLM_FUNC_DECL vec & operator|=(vec<1, U, Q> const& v);
184 GLM_FUNC_DECL vec & operator^=(U scalar);
186 GLM_FUNC_DECL vec & operator^=(vec<1, U, Q> const& v);
188 GLM_FUNC_DECL vec & operator<<=(U scalar);
190 GLM_FUNC_DECL vec & operator<<=(vec<1, U, Q> const& v);
192 GLM_FUNC_DECL vec & operator>>=(U scalar);
194 GLM_FUNC_DECL vec & operator>>=(vec<1, U, Q> const& v);
199 template<typename T, qualifier Q>
200 GLM_FUNC_DECL vec<1, T, Q> operator+(vec<1, T, Q> const& v);
202 template<typename T, qualifier Q>
203 GLM_FUNC_DECL vec<1, T, Q> operator-(vec<1, T, Q> const& v);
207 template<typename T, qualifier Q>
208 GLM_FUNC_DECL vec<1, T, Q> operator+(vec<1, T, Q> const& v, T scalar);
210 template<typename T, qualifier Q>
211 GLM_FUNC_DECL vec<1, T, Q> operator+(T scalar, vec<1, T, Q> const& v);
213 template<typename T, qualifier Q>
214 GLM_FUNC_DECL vec<1, T, Q> operator+(vec<1, T, Q> const& v1, vec<1, T, Q> const& v2);
216 template<typename T, qualifier Q>
217 GLM_FUNC_DECL vec<1, T, Q> operator-(vec<1, T, Q> const& v, T scalar);
219 template<typename T, qualifier Q>
220 GLM_FUNC_DECL vec<1, T, Q> operator-(T scalar, vec<1, T, Q> const& v);
222 template<typename T, qualifier Q>
223 GLM_FUNC_DECL vec<1, T, Q> operator-(vec<1, T, Q> const& v1, vec<1, T, Q> const& v2);
225 template<typename T, qualifier Q>
226 GLM_FUNC_DECL vec<1, T, Q> operator*(vec<1, T, Q> const& v, T scalar);
228 template<typename T, qualifier Q>
229 GLM_FUNC_DECL vec<1, T, Q> operator*(T scalar, vec<1, T, Q> const& v);
231 template<typename T, qualifier Q>
232 GLM_FUNC_DECL vec<1, T, Q> operator*(vec<1, T, Q> const& v1, vec<1, T, Q> const& v2);
234 template<typename T, qualifier Q>
235 GLM_FUNC_DECL vec<1, T, Q> operator/(vec<1, T, Q> const& v, T scalar);
237 template<typename T, qualifier Q>
238 GLM_FUNC_DECL vec<1, T, Q> operator/(T scalar, vec<1, T, Q> const& v);
240 template<typename T, qualifier Q>
241 GLM_FUNC_DECL vec<1, T, Q> operator/(vec<1, T, Q> const& v1, vec<1, T, Q> const& v2);
243 template<typename T, qualifier Q>
244 GLM_FUNC_DECL vec<1, T, Q> operator%(vec<1, T, Q> const& v, T scalar);
246 template<typename T, qualifier Q>
247 GLM_FUNC_DECL vec<1, T, Q> operator%(T scalar, vec<1, T, Q> const& v);
249 template<typename T, qualifier Q>
250 GLM_FUNC_DECL vec<1, T, Q> operator%(vec<1, T, Q> const& v1, vec<1, T, Q> const& v2);
252 template<typename T, qualifier Q>
253 GLM_FUNC_DECL vec<1, T, Q> operator&(vec<1, T, Q> const& v, T scalar);
255 template<typename T, qualifier Q>
256 GLM_FUNC_DECL vec<1, T, Q> operator&(T scalar, vec<1, T, Q> const& v);
258 template<typename T, qualifier Q>
259 GLM_FUNC_DECL vec<1, T, Q> operator&(vec<1, T, Q> const& v1, vec<1, T, Q> const& v2);
261 template<typename T, qualifier Q>
262 GLM_FUNC_DECL vec<1, T, Q> operator|(vec<1, T, Q> const& v, T scalar);
264 template<typename T, qualifier Q>
265 GLM_FUNC_DECL vec<1, T, Q> operator|(T scalar, vec<1, T, Q> const& v);
267 template<typename T, qualifier Q>
268 GLM_FUNC_DECL vec<1, T, Q> operator|(vec<1, T, Q> const& v1, vec<1, T, Q> const& v2);
270 template<typename T, qualifier Q>
271 GLM_FUNC_DECL vec<1, T, Q> operator^(vec<1, T, Q> const& v, T scalar);
273 template<typename T, qualifier Q>
274 GLM_FUNC_DECL vec<1, T, Q> operator^(T scalar, vec<1, T, Q> const& v);
276 template<typename T, qualifier Q>
277 GLM_FUNC_DECL vec<1, T, Q> operator^(vec<1, T, Q> const& v1, vec<1, T, Q> const& v2);
279 template<typename T, qualifier Q>
280 GLM_FUNC_DECL vec<1, T, Q> operator<<(vec<1, T, Q> const& v, T scalar);
282 template<typename T, qualifier Q>
283 GLM_FUNC_DECL vec<1, T, Q> operator<<(T scalar, vec<1, T, Q> const& v);
285 template<typename T, qualifier Q>
286 GLM_FUNC_DECL vec<1, T, Q> operator<<(vec<1, T, Q> const& v1, vec<1, T, Q> const& v2);
288 template<typename T, qualifier Q>
289 GLM_FUNC_DECL vec<1, T, Q> operator>>(vec<1, T, Q> const& v, T scalar);
291 template<typename T, qualifier Q>
292 GLM_FUNC_DECL vec<1, T, Q> operator>>(T scalar, vec<1, T, Q> const& v);
294 template<typename T, qualifier Q>
295 GLM_FUNC_DECL vec<1, T, Q> operator>>(vec<1, T, Q> const& v1, vec<1, T, Q> const& v2);
297 template<typename T, qualifier Q>
298 GLM_FUNC_DECL vec<1, T, Q> operator~(vec<1, T, Q> const& v);
302 template<typename T, qualifier Q>
303 GLM_FUNC_DECL
bool operator==(vec<1, T, Q> const& v1, vec<1, T, Q> const& v2);
305 template<typename T, qualifier Q>
306 GLM_FUNC_DECL
bool operator!=(vec<1, T, Q> const& v1, vec<1, T, Q> const& v2);
308 template<qualifier Q>
309 GLM_FUNC_DECL vec<1,
bool, Q> operator&&(vec<1,
bool, Q> const& v1, vec<1,
bool, Q> const& v2);
311 template<qualifier Q>
312 GLM_FUNC_DECL vec<1,
bool, Q> operator||(vec<1,
bool, Q> const& v1, vec<1,
bool, Q> const& v2);
389 #if GLM_HAS_TEMPLATE_ALIASES 390 template <
typename T, qualifier Q = defaultp>
using tvec1 = vec<1, T, Q>;
391 #endif//GLM_HAS_TEMPLATE_ALIASES 396 #ifndef GLM_EXTERNAL_TEMPLATE 397 #include "../detail/type_vec1.inl" 398 #endif//GLM_EXTERNAL_TEMPLATE vec< 1, float, highp > highp_vec1
1 component vector of single-precision floating-point numbers using high precision arithmetic in term...
vec< 1, int, lowp > lowp_ivec1
1 component vector of signed integer numbers.
vec< 1, double, mediump > mediump_dvec1
1 component vector of double-precision floating-point numbers using medium precision arithmetic in te...
vec< 1, uint, mediump > mediump_uvec1
1 component vector of unsigned integer numbers.
vec< 1, bool, mediump > mediump_bvec1
1 component vector of bool values.
vec< 1, uint, lowp > lowp_uvec1
1 component vector of unsigned integer numbers.
vec< 1, float, mediump > mediump_vec1
1 component vector of single-precision floating-point numbers using medium precision arithmetic in te...
vec< 1, float, lowp > lowp_vec1
1 component vector of single-precision floating-point numbers using low precision arithmetic in term ...
vec< 1, double, highp > highp_dvec1
1 component vector of double-precision floating-point numbers using high precision arithmetic in term...
vec< 1, uint, highp > highp_uvec1
1 component vector of unsigned integer numbers.
vec< 1, bool, highp > highp_bvec1
1 component vector of bool values.
vec< 1, double, lowp > lowp_dvec1
1 component vector of double-precision floating-point numbers using low precision arithmetic in term ...
GLM_FUNC_DECL T length(vec< L, T, Q > const &x)
Returns the length of x, i.e., sqrt(x * x).
vec< 1, int, mediump > mediump_ivec1
1 component vector of signed integer numbers.
vec< 1, bool, lowp > lowp_bvec1
1 component vector of bool values.
vec< 1, int, highp > highp_ivec1
1 component vector of signed integer numbers.
unsigned int uint
Unsigned integer type.