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
37# pragma warning(disable: 4201)
41# if GLM_CONFIG_XYZW_ONLY
43# elif GLM_CONFIG_ANONYMOUS_STRUCT == GLM_ENABLE
74# if GLM_SILENT_WARNINGS == GLM_ENABLE
75# if GLM_COMPILER & GLM_COMPILER_CLANG
76# pragma clang diagnostic pop
77# elif GLM_COMPILER & GLM_COMPILER_GCC
78# pragma GCC diagnostic pop
79# elif GLM_COMPILER & GLM_COMPILER_VC
88 GLM_FUNC_DECL
static GLM_CONSTEXPR
length_type length(){
return 1;}
90 GLM_FUNC_DECL GLM_CONSTEXPR T & operator[](length_type i);
91 GLM_FUNC_DECL GLM_CONSTEXPR T
const& operator[](length_type i)
const;
95 GLM_FUNC_DECL GLM_CONSTEXPR
vec() GLM_DEFAULT;
96 GLM_FUNC_DECL GLM_CONSTEXPR
vec(
vec const& v) GLM_DEFAULT;
98 GLM_FUNC_DECL GLM_CONSTEXPR
vec(
vec<1, T, P> const& v);
102 GLM_FUNC_DECL GLM_CONSTEXPR explicit
vec(T scalar);
108 GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT
vec(
vec<2, U, P> const& v);
111 GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT
vec(
vec<3, U, P> const& v);
114 GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT
vec(
vec<4, U, P> const& v);
118 GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT
vec(
vec<1, U, P> const& v);
132 GLM_FUNC_DECL GLM_CONSTEXPR
vec<1, T, Q> & operator=(
vec const& v) GLM_DEFAULT;
135 GLM_FUNC_DECL GLM_CONSTEXPR
vec<1, T, Q> & operator=(
vec<1, U, Q> const& v);
137 GLM_FUNC_DECL GLM_CONSTEXPR
vec<1, T, Q> & operator+=(U scalar);
139 GLM_FUNC_DECL GLM_CONSTEXPR
vec<1, T, Q> & operator+=(
vec<1, U, Q> const& v);
141 GLM_FUNC_DECL GLM_CONSTEXPR
vec<1, T, Q> & operator-=(U scalar);
143 GLM_FUNC_DECL GLM_CONSTEXPR
vec<1, T, Q> & operator-=(
vec<1, U, Q> const& v);
145 GLM_FUNC_DECL GLM_CONSTEXPR
vec<1, T, Q> & operator*=(U scalar);
147 GLM_FUNC_DECL GLM_CONSTEXPR
vec<1, T, Q> & operator*=(
vec<1, U, Q> const& v);
149 GLM_FUNC_DECL GLM_CONSTEXPR
vec<1, T, Q> & operator/=(U scalar);
151 GLM_FUNC_DECL GLM_CONSTEXPR
vec<1, T, Q> & operator/=(
vec<1, U, Q> const& v);
155 GLM_FUNC_DECL GLM_CONSTEXPR
vec<1, T, Q> & operator++();
156 GLM_FUNC_DECL GLM_CONSTEXPR
vec<1, T, Q> & operator--();
157 GLM_FUNC_DECL GLM_CONSTEXPR
vec<1, T, Q> operator++(
int);
158 GLM_FUNC_DECL GLM_CONSTEXPR
vec<1, T, Q> operator--(
int);
163 GLM_FUNC_DECL GLM_CONSTEXPR
vec<1, T, Q> & operator%=(U scalar);
165 GLM_FUNC_DECL GLM_CONSTEXPR
vec<1, T, Q> & operator%=(
vec<1, U, Q> const& v);
167 GLM_FUNC_DECL GLM_CONSTEXPR
vec<1, T, Q> & operator&=(U scalar);
169 GLM_FUNC_DECL GLM_CONSTEXPR
vec<1, T, Q> & operator&=(
vec<1, U, Q> const& v);
171 GLM_FUNC_DECL GLM_CONSTEXPR
vec<1, T, Q> & operator|=(U scalar);
173 GLM_FUNC_DECL GLM_CONSTEXPR
vec<1, T, Q> & operator|=(
vec<1, U, Q> const& v);
175 GLM_FUNC_DECL GLM_CONSTEXPR
vec<1, T, Q> & operator^=(U scalar);
177 GLM_FUNC_DECL GLM_CONSTEXPR
vec<1, T, Q> & operator^=(
vec<1, U, Q> const& v);
179 GLM_FUNC_DECL GLM_CONSTEXPR
vec<1, T, Q> & operator<<=(U scalar);
181 GLM_FUNC_DECL GLM_CONSTEXPR
vec<1, T, Q> & operator<<=(
vec<1, U, Q> const& v);
183 GLM_FUNC_DECL GLM_CONSTEXPR
vec<1, T, Q> & operator>>=(U scalar);
185 GLM_FUNC_DECL GLM_CONSTEXPR
vec<1, T, Q> & operator>>=(
vec<1, U, Q> const& v);
191 GLM_FUNC_DECL GLM_CONSTEXPR
vec<1, T, Q> operator+(
vec<1, T, Q> const& v);
194 GLM_FUNC_DECL GLM_CONSTEXPR
vec<1, T, Q> operator-(
vec<1, T, Q> const& v);
199 GLM_FUNC_DECL GLM_CONSTEXPR
vec<1, T, Q> operator+(
vec<1, T, Q> const& v, T scalar);
202 GLM_FUNC_DECL GLM_CONSTEXPR
vec<1, T, Q> operator+(T scalar,
vec<1, T, Q> const& v);
205 GLM_FUNC_DECL GLM_CONSTEXPR
vec<1, T, Q> operator+(
vec<1, T, Q> const& v1,
vec<1, T, Q> const& v2);
208 GLM_FUNC_DECL GLM_CONSTEXPR
vec<1, T, Q> operator-(
vec<1, T, Q> const& v, T scalar);
211 GLM_FUNC_DECL GLM_CONSTEXPR
vec<1, T, Q> operator-(T scalar,
vec<1, T, Q> const& v);
214 GLM_FUNC_DECL GLM_CONSTEXPR
vec<1, T, Q> operator-(
vec<1, T, Q> const& v1,
vec<1, T, Q> const& v2);
217 GLM_FUNC_DECL GLM_CONSTEXPR
vec<1, T, Q> operator*(
vec<1, T, Q> const& v, T scalar);
220 GLM_FUNC_DECL GLM_CONSTEXPR
vec<1, T, Q> operator*(T scalar,
vec<1, T, Q> const& v);
223 GLM_FUNC_DECL GLM_CONSTEXPR
vec<1, T, Q> operator*(
vec<1, T, Q> const& v1,
vec<1, T, Q> const& v2);
226 GLM_FUNC_DECL GLM_CONSTEXPR
vec<1, T, Q> operator/(
vec<1, T, Q> const& v, T scalar);
229 GLM_FUNC_DECL GLM_CONSTEXPR
vec<1, T, Q> operator/(T scalar,
vec<1, T, Q> const& v);
232 GLM_FUNC_DECL GLM_CONSTEXPR
vec<1, T, Q> operator/(
vec<1, T, Q> const& v1,
vec<1, T, Q> const& v2);
235 GLM_FUNC_DECL GLM_CONSTEXPR
vec<1, T, Q> operator%(
vec<1, T, Q> const& v, T scalar);
238 GLM_FUNC_DECL GLM_CONSTEXPR
vec<1, T, Q> operator%(T scalar,
vec<1, T, Q> const& v);
241 GLM_FUNC_DECL GLM_CONSTEXPR
vec<1, T, Q> operator%(
vec<1, T, Q> const& v1,
vec<1, T, Q> const& v2);
244 GLM_FUNC_DECL GLM_CONSTEXPR
vec<1, T, Q> operator&(
vec<1, T, Q> const& v, T scalar);
247 GLM_FUNC_DECL GLM_CONSTEXPR
vec<1, T, Q> operator&(T scalar,
vec<1, T, Q> const& v);
250 GLM_FUNC_DECL GLM_CONSTEXPR
vec<1, T, Q> operator&(
vec<1, T, Q> const& v1,
vec<1, T, Q> const& v2);
253 GLM_FUNC_DECL GLM_CONSTEXPR
vec<1, T, Q> operator|(
vec<1, T, Q> const& v, T scalar);
256 GLM_FUNC_DECL GLM_CONSTEXPR
vec<1, T, Q> operator|(T scalar,
vec<1, T, Q> const& v);
259 GLM_FUNC_DECL GLM_CONSTEXPR
vec<1, T, Q> operator|(
vec<1, T, Q> const& v1,
vec<1, T, Q> const& v2);
262 GLM_FUNC_DECL GLM_CONSTEXPR
vec<1, T, Q> operator^(
vec<1, T, Q> const& v, T scalar);
265 GLM_FUNC_DECL GLM_CONSTEXPR
vec<1, T, Q> operator^(T scalar,
vec<1, T, Q> const& v);
268 GLM_FUNC_DECL GLM_CONSTEXPR
vec<1, T, Q> operator^(
vec<1, T, Q> const& v1,
vec<1, T, Q> const& v2);
271 GLM_FUNC_DECL GLM_CONSTEXPR
vec<1, T, Q> operator<<(
vec<1, T, Q> const& v, T scalar);
274 GLM_FUNC_DECL GLM_CONSTEXPR
vec<1, T, Q> operator<<(T scalar,
vec<1, T, Q> const& v);
277 GLM_FUNC_DECL GLM_CONSTEXPR
vec<1, T, Q> operator<<(
vec<1, T, Q> const& v1,
vec<1, T, Q> const& v2);
280 GLM_FUNC_DECL GLM_CONSTEXPR
vec<1, T, Q> operator>>(
vec<1, T, Q> const& v, T scalar);
283 GLM_FUNC_DECL GLM_CONSTEXPR
vec<1, T, Q> operator>>(T scalar,
vec<1, T, Q> const& v);
286 GLM_FUNC_DECL GLM_CONSTEXPR
vec<1, T, Q> operator>>(
vec<1, T, Q> const& v1,
vec<1, T, Q> const& v2);
289 GLM_FUNC_DECL GLM_CONSTEXPR
vec<1, T, Q> operator~(
vec<1, T, Q> const& v);
294 GLM_FUNC_DECL GLM_CONSTEXPR
bool operator==(
vec<1, T, Q> const& v1,
vec<1, T, Q> const& v2);
297 GLM_FUNC_DECL GLM_CONSTEXPR
bool operator!=(
vec<1, T, Q> const& v1,
vec<1, T, Q> const& v2);
300 GLM_FUNC_DECL GLM_CONSTEXPR
vec<1,
bool, Q> operator&&(
vec<1,
bool, Q> const& v1,
vec<1,
bool, Q> const& v2);
303 GLM_FUNC_DECL GLM_CONSTEXPR
vec<1,
bool, Q> operator||(
vec<1,
bool, Q> const& v1,
vec<1,
bool, Q> const& v2);
306#ifndef GLM_EXTERNAL_TEMPLATE
307#include "type_vec1.inl"
Core features
Definition common.hpp:21
qualifier
Qualify GLM types in term of alignment (packed, aligned) and precision in term of ULPs (lowp,...
Definition qualifier.hpp:9
Definition qualifier.hpp:86
Definition type_vec1.hpp:18
length_t length_type
Return the count of components of the vector.
Definition type_vec1.hpp:87
Definition qualifier.hpp:35