0.9.9 API documenation
common.hpp
Go to the documentation of this file.
1 
13 #pragma once
14 
15 #include "detail/setup.hpp"
16 #include "detail/qualifier.hpp"
17 #include "detail/type_int.hpp"
18 #include "detail/_fixes.hpp"
19 
20 namespace glm
21 {
24 
32  template<typename genType>
33  GLM_FUNC_DECL genType abs(genType x);
34 
43  template<length_t L, typename T, qualifier Q>
44  GLM_FUNC_DECL vec<L, T, Q> abs(vec<L, T, Q> const& x);
45 
54  template<length_t L, typename T, qualifier Q>
55  GLM_FUNC_DECL vec<L, T, Q> sign(vec<L, T, Q> const& x);
56 
65  template<length_t L, typename T, qualifier Q>
66  GLM_FUNC_DECL vec<L, T, Q> floor(vec<L, T, Q> const& x);
67 
77  template<length_t L, typename T, qualifier Q>
78  GLM_FUNC_DECL vec<L, T, Q> trunc(vec<L, T, Q> const& x);
79 
92  template<length_t L, typename T, qualifier Q>
93  GLM_FUNC_DECL vec<L, T, Q> round(vec<L, T, Q> const& x);
94 
106  template<length_t L, typename T, qualifier Q>
107  GLM_FUNC_DECL vec<L, T, Q> roundEven(vec<L, T, Q> const& x);
108 
118  template<length_t L, typename T, qualifier Q>
119  GLM_FUNC_DECL vec<L, T, Q> ceil(vec<L, T, Q> const& x);
120 
127  template<typename genType>
128  GLM_FUNC_DECL genType fract(genType x);
129 
138  template<length_t L, typename T, qualifier Q>
139  GLM_FUNC_DECL vec<L, T, Q> fract(vec<L, T, Q> const& x);
140 
141  template<typename genType>
142  GLM_FUNC_DECL genType mod(genType x, genType y);
143 
144  template<length_t L, typename T, qualifier Q>
145  GLM_FUNC_DECL vec<L, T, Q> mod(vec<L, T, Q> const& x, T y);
146 
156  template<length_t L, typename T, qualifier Q>
157  GLM_FUNC_DECL vec<L, T, Q> mod(vec<L, T, Q> const& x, vec<L, T, Q> const& y);
158 
168  template<typename genType>
169  GLM_FUNC_DECL genType modf(genType x, genType& i);
170 
177  template<typename genType>
178  GLM_FUNC_DECL genType min(genType x, genType y);
179 
188  template<length_t L, typename T, qualifier Q>
189  GLM_FUNC_DECL vec<L, T, Q> min(vec<L, T, Q> const& x, T y);
190 
199  template<length_t L, typename T, qualifier Q>
200  GLM_FUNC_DECL vec<L, T, Q> min(vec<L, T, Q> const& x, vec<L, T, Q> const& y);
201 
208  template<typename genType>
209  GLM_FUNC_DECL genType max(genType x, genType y);
210 
219  template<length_t L, typename T, qualifier Q>
220  GLM_FUNC_DECL vec<L, T, Q> max(vec<L, T, Q> const& x, T y);
221 
230  template<length_t L, typename T, qualifier Q>
231  GLM_FUNC_DECL vec<L, T, Q> max(vec<L, T, Q> const& x, vec<L, T, Q> const& y);
232 
240  template<typename genType>
241  GLM_FUNC_DECL genType clamp(genType x, genType minVal, genType maxVal);
242 
252  template<length_t L, typename T, qualifier Q>
253  GLM_FUNC_DECL vec<L, T, Q> clamp(vec<L, T, Q> const& x, T minVal, T maxVal);
254 
264  template<length_t L, typename T, qualifier Q>
265  GLM_FUNC_DECL vec<L, T, Q> clamp(vec<L, T, Q> const& x, vec<L, T, Q> const& minVal, vec<L, T, Q> const& maxVal);
266 
309  template<typename genTypeT, typename genTypeU>
310  GLM_FUNC_DECL genTypeT mix(genTypeT x, genTypeT y, genTypeU a);
311 
312  template<length_t L, typename T, typename U, qualifier Q>
313  GLM_FUNC_DECL vec<L, T, Q> mix(vec<L, T, Q> const& x, vec<L, T, Q> const& y, vec<L, U, Q> const& a);
314 
315  template<length_t L, typename T, typename U, qualifier Q>
316  GLM_FUNC_DECL vec<L, T, Q> mix(vec<L, T, Q> const& x, vec<L, T, Q> const& y, U a);
317 
322  template<typename genType>
323  GLM_FUNC_DECL genType step(genType edge, genType x);
324 
333  template<length_t L, typename T, qualifier Q>
334  GLM_FUNC_DECL vec<L, T, Q> step(T edge, vec<L, T, Q> const& x);
335 
344  template<length_t L, typename T, qualifier Q>
345  GLM_FUNC_DECL vec<L, T, Q> step(vec<L, T, Q> const& edge, vec<L, T, Q> const& x);
346 
361  template<typename genType>
362  GLM_FUNC_DECL genType smoothstep(genType edge0, genType edge1, genType x);
363 
364  template<length_t L, typename T, qualifier Q>
365  GLM_FUNC_DECL vec<L, T, Q> smoothstep(T edge0, T edge1, vec<L, T, Q> const& x);
366 
367  template<length_t L, typename T, qualifier Q>
368  GLM_FUNC_DECL vec<L, T, Q> smoothstep(vec<L, T, Q> const& edge0, vec<L, T, Q> const& edge1, vec<L, T, Q> const& x);
369 
384  template<length_t L, typename T, qualifier Q>
385  GLM_FUNC_DECL vec<L, bool, Q> isnan(vec<L, T, Q> const& x);
386 
399  template<length_t L, typename T, qualifier Q>
400  GLM_FUNC_DECL vec<L, bool, Q> isinf(vec<L, T, Q> const& x);
401 
408  GLM_FUNC_DECL int floatBitsToInt(float const& v);
409 
419  template<length_t L, qualifier Q>
420  GLM_FUNC_DECL vec<L, int, Q> floatBitsToInt(vec<L, float, Q> const& v);
421 
428  GLM_FUNC_DECL uint floatBitsToUint(float const& v);
429 
439  template<length_t L, qualifier Q>
440  GLM_FUNC_DECL vec<L, uint, Q> floatBitsToUint(vec<L, float, Q> const& v);
441 
450  GLM_FUNC_DECL float intBitsToFloat(int const& v);
451 
463  template<length_t L, qualifier Q>
464  GLM_FUNC_DECL vec<L, float, Q> intBitsToFloat(vec<L, int, Q> const& v);
465 
474  GLM_FUNC_DECL float uintBitsToFloat(uint const& v);
475 
487  template<length_t L, qualifier Q>
488  GLM_FUNC_DECL vec<L, float, Q> uintBitsToFloat(vec<L, uint, Q> const& v);
489 
496  template<typename genType>
497  GLM_FUNC_DECL genType fma(genType const& a, genType const& b, genType const& c);
498 
513  template<typename genType, typename genIType>
514  GLM_FUNC_DECL genType frexp(genType const& x, genIType& exp);
515 
527  template<typename genType, typename genIType>
528  GLM_FUNC_DECL genType ldexp(genType const& x, genIType const& exp);
529 
531 }//namespace glm
532 
533 #include "detail/func_common.inl"
534 
GLM_FUNC_DECL vec< L, T, Q > trunc(vec< L, T, Q > const &x)
Returns a value equal to the nearest integer to x whose absolute value is not larger than the absolut...
GLM_FUNC_DECL vec< L, T, Q > sign(vec< L, T, Q > const &x)
Returns 1.0 if x > 0, 0.0 if x == 0, or -1.0 if x < 0.
GLM_FUNC_DECL vec< L, T, Q > floor(vec< L, T, Q > const &x)
Returns a value equal to the nearest integer that is less then or equal to x.
GLM_FUNC_DECL genType frexp(genType const &x, genIType &exp)
Splits x into a floating-point significand in the range [0.5, 1.0) and an integral exponent of two...
GLM_FUNC_DECL vec< L, float, Q > intBitsToFloat(vec< L, int, Q > const &v)
Returns a floating-point value corresponding to a signed integer encoding of a floating-point value...
GLM_FUNC_DECL vec< L, T, Q > round(vec< L, T, Q > const &x)
Returns a value equal to the nearest integer to x.
GLM_FUNC_DECL vec< L, T, Q > mod(vec< L, T, Q > const &x, vec< L, T, Q > const &y)
Modulus.
Core features
GLM_FUNC_DECL genType fma(genType const &a, genType const &b, genType const &c)
Computes and returns a * b + c.
GLM_FUNC_DECL vec< L, float, Q > uintBitsToFloat(vec< L, uint, Q > const &v)
Returns a floating-point value corresponding to a unsigned integer encoding of a floating-point value...
Definition: common.hpp:20
GLM_FUNC_DECL vec< L, int, Q > floatBitsToInt(vec< L, float, Q > const &v)
Returns a signed integer value representing the encoding of a floating-point value.
GLM_FUNC_DECL vec< L, uint, Q > floatBitsToUint(vec< L, float, Q > const &v)
Returns a unsigned integer value representing the encoding of a floating-point value.
GLM_FUNC_DECL vec< L, T, Q > ceil(vec< L, T, Q > const &x)
Returns a value equal to the nearest integer that is greater than or equal to x.
GLM_FUNC_DECL vec< L, T, Q > max(vec< L, T, Q > const &x, vec< L, T, Q > const &y)
Returns y if x < y; otherwise, it returns x.
GLM_FUNC_DECL vec< L, T, Q > exp(vec< L, T, Q > const &v)
Returns the natural exponentiation of x, i.e., e^x.
GLM_FUNC_DECL genType ldexp(genType const &x, genIType const &exp)
Builds a floating-point number from x and the corresponding integral exponent of two in exp...
GLM_FUNC_DECL vec< L, bool, Q > isinf(vec< L, T, Q > const &x)
Returns true if x holds a positive infinity or negative infinity representation in the underlying imp...
GLM_FUNC_DECL vec< L, bool, Q > isnan(vec< L, T, Q > const &x)
Returns true if x holds a NaN (not a number) representation in the underlying implementation's set of...
unsigned int uint
Unsigned integer type.
Definition: type_int.hpp:288
GLM_FUNC_DECL genType modf(genType x, genType &i)
Returns the fractional part of x and sets i to the integer part (as a whole number floating point val...
GLM_FUNC_DECL vec< L, T, Q > fract(vec< L, T, Q > const &x)
Return x - floor(x).
GLM_FUNC_DECL vec< L, T, Q > clamp(vec< L, T, Q > const &x, vec< L, T, Q > const &minVal, vec< L, T, Q > const &maxVal)
Returns min(max(x, minVal), maxVal) for each component in x using the floating-point values minVal an...
GLM_FUNC_DECL vec< L, T, Q > roundEven(vec< L, T, Q > const &x)
Returns a value equal to the nearest integer to x.
GLM_FUNC_DECL vec< L, T, Q > min(vec< L, T, Q > const &x, vec< L, T, Q > const &y)
Returns y if y < x; otherwise, it returns x.
GLM_FUNC_DECL vec< L, T, Q > abs(vec< L, T, Q > const &x)
Returns x if x >= 0; otherwise, it returns -x.
GLM_FUNC_DECL genType smoothstep(genType edge0, genType edge1, genType x)
Returns 0.0 if x <= edge0 and 1.0 if x >= edge1 and performs smooth Hermite interpolation between 0 a...
Core features
GLM_FUNC_DECL genTypeT mix(genTypeT x, genTypeT y, genTypeU a)
If genTypeU is a floating scalar or vector: Returns x * (1.0 - a) + y * a, i.e., the linear blend of ...
Core features
GLM_FUNC_DECL vec< L, T, Q > step(vec< L, T, Q > const &edge, vec< L, T, Q > const &x)
Returns 0.0 if x < edge, otherwise it returns 1.0.
Core features