37 #ifndef GLM_GTC_half_float 38 #define GLM_GTC_half_float GLM_VERSION 43 #if(defined(GLM_MESSAGES) && !defined(glm_ext)) 44 # pragma message("GLM: GLM_GTC_half_float extension included") 50 #if(GLM_COMPONENT == GLM_COMPONENT_CXX98) 55 typedef half value_type;
56 typedef std::size_t size_type;
58 GLM_FUNC_DECL size_type length()
const;
59 static GLM_FUNC_DECL size_type value_size();
61 typedef tvec2<half> type;
62 typedef tvec2<bool> bool_type;
72 half & operator[](size_type i);
73 half const & operator[](size_type i)
const;
79 tvec2(tvec2<half>
const & v);
94 tvec2(tref2<half>
const & r);
100 template <
typename U>
101 explicit tvec2(U
const & x);
103 template <
typename U,
typename V>
104 explicit tvec2(U
const & x, V
const & y);
110 template <
typename U>
111 explicit tvec2(tvec2<U>
const & v);
113 template <
typename U>
114 explicit tvec2(tvec3<U>
const & v);
116 template <
typename U>
117 explicit tvec2(tvec4<U>
const & v);
122 tvec2<half>& operator= (tvec2<half>
const & v);
124 tvec2<half>& operator+=(
half const & s);
125 tvec2<half>& operator+=(tvec2<half>
const & v);
126 tvec2<half>& operator-=(
half const & s);
127 tvec2<half>& operator-=(tvec2<half>
const & v);
128 tvec2<half>& operator*=(
half const & s);
129 tvec2<half>& operator*=(tvec2<half>
const & v);
130 tvec2<half>& operator/=(
half const & s);
131 tvec2<half>& operator/=(tvec2<half>
const & v);
132 tvec2<half>& operator++();
133 tvec2<half>& operator--();
138 half swizzle(comp X)
const;
139 tvec2<half> swizzle(comp X, comp Y)
const;
140 tvec3<half> swizzle(comp X, comp Y, comp Z)
const;
141 tvec4<half> swizzle(comp X, comp Y, comp Z, comp W)
const;
142 tref2<half> swizzle(comp X, comp Y);
149 typedef half value_type;
150 typedef std::size_t size_type;
151 GLM_FUNC_DECL size_type length()
const;
152 static GLM_FUNC_DECL size_type value_size();
154 typedef tvec3<half> type;
155 typedef tvec3<bool> bool_type;
165 half & operator[](size_type i);
166 half const & operator[](size_type i)
const;
172 tvec3(tvec3<half>
const & v);
177 explicit tvec3(ctor);
188 tvec3(tref3<half>
const & r);
194 template <
typename U>
195 explicit tvec3(U
const & x);
197 template <
typename U,
typename V,
typename W>
198 explicit tvec3(U
const & x, V
const & y, W
const & z);
204 template <
typename A,
typename B>
205 explicit tvec3(tvec2<A>
const & v, B
const & s);
207 template <
typename A,
typename B>
208 explicit tvec3(A
const & s, tvec2<B>
const & v);
210 template <
typename U>
211 explicit tvec3(tvec3<U>
const & v);
213 template <
typename U>
214 explicit tvec3(tvec4<U>
const & v);
219 tvec3<half>& operator= (tvec3<half>
const & v);
221 tvec3<half>& operator+=(
half const & s);
222 tvec3<half>& operator+=(tvec3<half>
const & v);
223 tvec3<half>& operator-=(
half const & s);
224 tvec3<half>& operator-=(tvec3<half>
const & v);
225 tvec3<half>& operator*=(
half const & s);
226 tvec3<half>& operator*=(tvec3<half>
const & v);
227 tvec3<half>& operator/=(
half const & s);
228 tvec3<half>& operator/=(tvec3<half>
const & v);
229 tvec3<half>& operator++();
230 tvec3<half>& operator--();
235 half swizzle(comp X)
const;
236 tvec2<half> swizzle(comp X, comp Y)
const;
237 tvec3<half> swizzle(comp X, comp Y, comp Z)
const;
238 tvec4<half> swizzle(comp X, comp Y, comp Z, comp W)
const;
239 tref3<half> swizzle(comp X, comp Y, comp Z);
246 typedef half value_type;
247 typedef std::size_t size_type;
248 GLM_FUNC_DECL size_type length()
const;
249 static GLM_FUNC_DECL size_type value_size();
251 typedef tvec4<half> type;
252 typedef tvec4<bool> bool_type;
262 half & operator[](size_type i);
263 half const & operator[](size_type i)
const;
269 tvec4(tvec4<half>
const & v);
274 explicit tvec4(ctor);
286 tvec4(tref4<half>
const & r);
292 template <
typename U>
293 explicit tvec4(U
const & x);
295 template <
typename A,
typename B,
typename C,
typename D>
296 explicit tvec4(A
const & x, B
const & y, C
const & z, D
const & w);
302 template <
typename A,
typename B,
typename C>
303 explicit tvec4(tvec2<A>
const & v, B
const & s1, C
const & s2);
305 template <
typename A,
typename B,
typename C>
306 explicit tvec4(A
const & s1, tvec2<B>
const & v, C
const & s2);
308 template <
typename A,
typename B,
typename C>
309 explicit tvec4(A
const & s1, B
const & s2, tvec2<C>
const & v);
311 template <
typename A,
typename B>
312 explicit tvec4(tvec3<A>
const & v, B
const & s);
314 template <
typename A,
typename B>
315 explicit tvec4(A
const & s, tvec3<B>
const & v);
317 template <
typename A,
typename B>
318 explicit tvec4(tvec2<A>
const & v1, tvec2<B>
const & v2);
320 template <
typename U>
321 explicit tvec4(tvec4<U>
const & v);
326 tvec4<half>& operator= (tvec4<half>
const & v);
328 tvec4<half>& operator+=(
half const & s);
329 tvec4<half>& operator+=(tvec4<half>
const & v);
330 tvec4<half>& operator-=(
half const & s);
331 tvec4<half>& operator-=(tvec4<half>
const & v);
332 tvec4<half>& operator*=(
half const & s);
333 tvec4<half>& operator*=(tvec4<half>
const & v);
334 tvec4<half>& operator/=(
half const & s);
335 tvec4<half>& operator/=(tvec4<half>
const & v);
336 tvec4<half>& operator++();
337 tvec4<half>& operator--();
342 half swizzle(comp X)
const;
343 tvec2<half> swizzle(comp X, comp Y)
const;
344 tvec3<half> swizzle(comp X, comp Y, comp Z)
const;
345 tvec4<half> swizzle(comp X, comp Y, comp Z, comp W)
const;
346 tref4<half> swizzle(comp X, comp Y, comp Z, comp W);
348 #endif//(GLM_COMPONENT == GLM_COMPONENT_CXX98) 424 #endif//GLM_GTC_half_float detail::tmat3x2< detail::half > hmat3x2
3 * 2 matrix of half-precision floating-point numbers.
Definition: half_float.hpp:397
detail::tmat4x3< detail::half > hmat4x3
4 * 3 matrix of half-precision floating-point numbers.
Definition: half_float.hpp:413
detail::tmat2x4< detail::half > hmat2x4
2 * 4 matrix of half-precision floating-point numbers.
Definition: half_float.hpp:393
Definition: type_mat2x2.hpp:45
Definition: type_mat2x2.hpp:48
Definition: type_mat2x2.hpp:42
detail::tvec4< detail::half > hvec4
Vector of 4 half-precision floating-point numbers.
Definition: half_float.hpp:369
Definition: _detail.hpp:38
Definition: type_mat2x2.hpp:38
detail::half half
Type for half-precision floating-point numbers.
Definition: half_float.hpp:357
detail::tmat3x4< detail::half > hmat3x4
3 * 4 matrix of half-precision floating-point numbers.
Definition: half_float.hpp:405
OpenGL Mathematics (glm.g-truc.net)
detail::tmat4x2< detail::half > hmat4x2
4 * 2 matrix of half-precision floating-point numbers.
Definition: half_float.hpp:409
detail::tmat3x3< detail::half > hmat3
3 * 3 matrix of half-precision floating-point numbers.
Definition: half_float.hpp:377
detail::tmat2x2< detail::half > hmat2x2
2 * 2 matrix of half-precision floating-point numbers.
Definition: half_float.hpp:385
detail::tmat4x4< detail::half > hmat4
4 * 4 matrix of half-precision floating-point numbers.
Definition: half_float.hpp:381
Definition: type_mat2x2.hpp:39
Definition: type_mat2x2.hpp:44
Definition: type_mat2x2.hpp:47
Definition: type_mat2x2.hpp:41
16-bit floating point type.
Definition: type_half.hpp:44
detail::tmat4x4< detail::half > hmat4x4
4 * 4 matrix of half-precision floating-point numbers.
Definition: half_float.hpp:417
Definition: type_mat2x2.hpp:40
detail::tmat2x2< detail::half > hmat2
2 * 2 matrix of half-precision floating-point numbers.
Definition: half_float.hpp:373
detail::tvec3< detail::half > hvec3
Vector of 3 half-precision floating-point numbers.
Definition: half_float.hpp:365
detail::tmat2x3< detail::half > hmat2x3
2 * 3 matrix of half-precision floating-point numbers.
Definition: half_float.hpp:389
detail::tvec2< detail::half > hvec2
Vector of 2 half-precision floating-point numbers.
Definition: half_float.hpp:361
detail::tmat3x3< detail::half > hmat3x3
3 * 3 matrix of half-precision floating-point numbers.
Definition: half_float.hpp:401
Definition: type_mat2x2.hpp:46
Definition: type_mat2x2.hpp:49
Definition: type_mat2x2.hpp:43