34 # if GLM_HAS_ANONYMOUS_UNION
44 template <
typename T, precision P = defaultp>
50 typedef tvec1<T, P> type;
51 typedef tvec1<bool, P> bool_type;
57 # ifdef GLM_FORCE_SIZE_FUNC
58 GLM_FUNC_DECL GLM_CONSTEXPR
size_t size()
const;
61 GLM_FUNC_DECL GLM_CONSTEXPR length_t
length()
const;
63 # endif//GLM_FORCE_SIZE_FUNC
68 # if GLM_HAS_ANONYMOUS_UNION
98 GLM_FUNC_DECL T & operator[](length_t i);
99 GLM_FUNC_DECL T
const & operator[](length_t i)
const;
104 GLM_FUNC_DECL tvec1();
105 template <precision Q>
106 GLM_FUNC_DECL tvec1(tvec1<T, Q>
const & v);
111 GLM_FUNC_DECL
explicit tvec1(ctor);
112 GLM_FUNC_DECL
explicit tvec1(T
const & s);
118 template <
typename U, precision Q>
119 GLM_FUNC_DECL
explicit tvec1(tvec2<U, Q>
const & v);
121 template <
typename U, precision Q>
122 GLM_FUNC_DECL
explicit tvec1(tvec3<U, Q>
const & v);
124 template <
typename U, precision Q>
125 GLM_FUNC_DECL
explicit tvec1(tvec4<U, Q>
const & v);
127 # ifdef GLM_FORCE_EXPLICIT_CTOR
128 template <
typename U, precision Q>
130 GLM_FUNC_DECL
explicit tvec1(tvec1<U, Q>
const & v);
132 template <
typename U, precision Q>
134 GLM_FUNC_DECL tvec1(tvec1<U, Q>
const & v);
140 # if(GLM_HAS_ANONYMOUS_UNION && defined(GLM_SWIZZLE))
142 GLM_FUNC_DECL tvec1(detail::_swizzle<1, T, P, tvec1<T, P>, E0, -1,-2,-3>
const & that)
146 # endif//(GLM_HAS_ANONYMOUS_UNION && defined(GLM_SWIZZLE))
151 template <
typename U>
152 GLM_FUNC_DECL tvec1<T, P> & operator=(tvec1<U, P>
const & v);
153 template <
typename U>
154 GLM_FUNC_DECL tvec1<T, P> & operator+=(U
const & s);
155 template <
typename U>
156 GLM_FUNC_DECL tvec1<T, P> & operator+=(tvec1<U, P>
const & v);
157 template <
typename U>
158 GLM_FUNC_DECL tvec1<T, P> & operator-=(U
const & s);
159 template <
typename U>
160 GLM_FUNC_DECL tvec1<T, P> & operator-=(tvec1<U, P>
const & v);
161 template <
typename U>
162 GLM_FUNC_DECL tvec1<T, P> & operator*=(U
const & s);
163 template <
typename U>
164 GLM_FUNC_DECL tvec1<T, P> & operator*=(tvec1<U, P>
const & v);
165 template <
typename U>
166 GLM_FUNC_DECL tvec1<T, P> & operator/=(U
const & s);
167 template <
typename U>
168 GLM_FUNC_DECL tvec1<T, P> & operator/=(tvec1<U, P>
const & v);
173 GLM_FUNC_DECL tvec1<T, P> & operator++();
174 GLM_FUNC_DECL tvec1<T, P> & operator--();
175 GLM_FUNC_DECL tvec1<T, P> operator++(
int);
176 GLM_FUNC_DECL tvec1<T, P> operator--(
int);
181 template <
typename U>
182 GLM_FUNC_DECL tvec1<T, P> & operator%=(U
const & s);
183 template <
typename U>
184 GLM_FUNC_DECL tvec1<T, P> & operator%=(tvec1<U, P>
const & v);
185 template <
typename U>
186 GLM_FUNC_DECL tvec1<T, P> & operator&=(U
const & s);
187 template <
typename U>
188 GLM_FUNC_DECL tvec1<T, P> & operator&=(tvec1<U, P>
const & v);
189 template <
typename U>
190 GLM_FUNC_DECL tvec1<T, P> & operator|=(U
const & s);
191 template <
typename U>
192 GLM_FUNC_DECL tvec1<T, P> & operator|=(tvec1<U, P>
const & v);
193 template <
typename U>
194 GLM_FUNC_DECL tvec1<T, P> & operator^=(U
const & s);
195 template <
typename U>
196 GLM_FUNC_DECL tvec1<T, P> & operator^=(tvec1<U, P>
const & v);
197 template <
typename U>
198 GLM_FUNC_DECL tvec1<T, P> & operator<<=(U
const & s);
199 template <
typename U>
200 GLM_FUNC_DECL tvec1<T, P> & operator<<=(tvec1<U, P>
const & v);
201 template <
typename U>
202 GLM_FUNC_DECL tvec1<T, P> & operator>>=(U
const & s);
203 template <
typename U>
204 GLM_FUNC_DECL tvec1<T, P> & operator>>=(tvec1<U, P>
const & v);
208 template <
typename T, precision P>
209 GLM_FUNC_DECL tvec1<T, P> operator+(tvec1<T, P>
const & v, T
const & s);
211 template <
typename T, precision P>
212 GLM_FUNC_DECL tvec1<T, P> operator+(T
const & s, tvec1<T, P>
const & v);
214 template <
typename T, precision P>
215 GLM_FUNC_DECL tvec1<T, P> operator+(tvec1<T, P>
const & v1, tvec1<T, P>
const & v2);
217 template <
typename T, precision P>
218 GLM_FUNC_DECL tvec1<T, P> operator-(tvec1<T, P>
const & v, T
const & s);
220 template <
typename T, precision P>
221 GLM_FUNC_DECL tvec1<T, P> operator-(T
const & s, tvec1<T, P>
const & v);
223 template <
typename T, precision P>
224 GLM_FUNC_DECL tvec1<T, P> operator- (tvec1<T, P>
const & v1, tvec1<T, P>
const & v2);
226 template <
typename T, precision P>
227 GLM_FUNC_DECL tvec1<T, P> operator*(tvec1<T, P>
const & v, T
const & s);
229 template <
typename T, precision P>
230 GLM_FUNC_DECL tvec1<T, P> operator*(T
const & s, tvec1<T, P>
const & v);
232 template <
typename T, precision P>
233 GLM_FUNC_DECL tvec1<T, P> operator*(tvec1<T, P>
const & v1, tvec1<T, P>
const & v2);
235 template <
typename T, precision P>
236 GLM_FUNC_DECL tvec1<T, P> operator/(tvec1<T, P>
const & v, T
const & s);
238 template <
typename T, precision P>
239 GLM_FUNC_DECL tvec1<T, P> operator/(T
const & s, tvec1<T, P>
const & v);
241 template <
typename T, precision P>
242 GLM_FUNC_DECL tvec1<T, P> operator/(tvec1<T, P>
const & v1, tvec1<T, P>
const & v2);
244 template <
typename T, precision P>
245 GLM_FUNC_DECL tvec1<T, P> operator-(tvec1<T, P>
const & v);
247 template <
typename T, precision P>
248 GLM_FUNC_DECL
bool operator==(tvec1<T, P>
const & v1, tvec1<T, P>
const & v2);
250 template <
typename T, precision P>
251 GLM_FUNC_DECL
bool operator!=(tvec1<T, P>
const & v1, tvec1<T, P>
const & v2);
253 template <
typename T, precision P>
254 GLM_FUNC_DECL tvec1<T, P> operator%(tvec1<T, P>
const & v, T
const & s);
256 template <
typename T, precision P>
257 GLM_FUNC_DECL tvec1<T, P> operator%(T
const & s, tvec1<T, P>
const & v);
259 template <
typename T, precision P>
260 GLM_FUNC_DECL tvec1<T, P> operator%(tvec1<T, P>
const & v1, tvec1<T, P>
const & v2);
262 template <
typename T, precision P>
263 GLM_FUNC_DECL tvec1<T, P> operator&(tvec1<T, P>
const & v, T
const & s);
265 template <
typename T, precision P>
266 GLM_FUNC_DECL tvec1<T, P> operator&(T
const & s, tvec1<T, P>
const & v);
268 template <
typename T, precision P>
269 GLM_FUNC_DECL tvec1<T, P> operator&(tvec1<T, P>
const & v1, tvec1<T, P>
const & v2);
271 template <
typename T, precision P>
272 GLM_FUNC_DECL tvec1<T, P> operator|(tvec1<T, P>
const & v, T
const & s);
274 template <
typename T, precision P>
275 GLM_FUNC_DECL tvec1<T, P> operator|(T
const & s, tvec1<T, P>
const & v);
277 template <
typename T, precision P>
278 GLM_FUNC_DECL tvec1<T, P> operator|(tvec1<T, P>
const & v1, tvec1<T, P>
const & v2);
280 template <
typename T, precision P>
281 GLM_FUNC_DECL tvec1<T, P> operator^(tvec1<T, P>
const & v, T
const & s);
283 template <
typename T, precision P>
284 GLM_FUNC_DECL tvec1<T, P> operator^(T
const & s, tvec1<T, P>
const & v);
286 template <
typename T, precision P>
287 GLM_FUNC_DECL tvec1<T, P> operator^(tvec1<T, P>
const & v1, tvec1<T, P>
const & v2);
289 template <
typename T, precision P>
290 GLM_FUNC_DECL tvec1<T, P> operator<<(tvec1<T, P>
const & v, T
const & s);
292 template <
typename T, precision P>
293 GLM_FUNC_DECL tvec1<T, P> operator<<(T const & s, tvec1<T, P>
const & v);
295 template <
typename T, precision P>
296 GLM_FUNC_DECL tvec1<T, P> operator<<(tvec1<T, P>
const & v1, tvec1<T, P>
const & v2);
298 template <
typename T, precision P>
299 GLM_FUNC_DECL tvec1<T, P> operator>>(tvec1<T, P>
const & v, T
const & s);
301 template <
typename T, precision P>
302 GLM_FUNC_DECL tvec1<T, P> operator>>(T
const & s, tvec1<T, P>
const & v);
304 template <
typename T, precision P>
305 GLM_FUNC_DECL tvec1<T, P> operator>>(tvec1<T, P>
const & v1, tvec1<T, P>
const & v2);
307 template <
typename T, precision P>
308 GLM_FUNC_DECL tvec1<T, P> operator~(tvec1<T, P>
const & v);
311 #ifndef GLM_EXTERNAL_TEMPLATE
312 #include "type_vec1.inl"
313 #endif//GLM_EXTERNAL_TEMPLATE
GLM_FUNC_DECL T length(vecType< T, P > const &x)
Returns the length of x, i.e., sqrt(x * x).
OpenGL Mathematics (glm.g-truc.net)
OpenGL Mathematics (glm.g-truc.net)
OpenGL Mathematics (glm.g-truc.net)