diff --git a/CMakeLists.txt b/CMakeLists.txt index c71989ee..a03df974 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -13,11 +13,6 @@ if(NOT GLM_TEST_ENABLE) message(STATUS "GLM is a header only library, no need to build it. Set the option GLM_TEST_ENABLE with ON to build and run the test bench") endif() -option(GLM_PERF_ENABLE "GLM perf" OFF) -if(GLM_PERF_ENABLE) - add_definitions(-DGLM_TEST_ENABLE_PERF) -endif() - if(("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") OR ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") OR (("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Intel") AND UNIX)) option(GLM_TEST_ENABLE_CXX_98 "Enable C++ 98" OFF) option(GLM_TEST_ENABLE_CXX_0X "Enable C++ 0x" OFF) @@ -72,23 +67,23 @@ if(GLM_TEST_FORCE_PURE) elseif(MSVC) add_definitions(/arch:IA32) endif() -elseif(GLM_TEST_ENABLE_AVX2) +elseif(GLM_TEST_ENABLE_SIMD_AVX2) if(CMAKE_COMPILER_IS_GNUCXX) add_definitions(-mavx2) elseif(GLM_USE_INTEL) add_definitions(/QxAVX2) elseif(MSVC) - add_definitions(/arch:AVX2) + add_definitions(/arch:AVX2) endif() -elseif(GLM_TEST_ENABLE_AVX) +elseif(GLM_TEST_ENABLE_SIMD_AVX) if(CMAKE_COMPILER_IS_GNUCXX) add_definitions(-mavx) elseif(GLM_USE_INTEL) add_definitions(/QxAVX) elseif(MSVC) - add_definitions(/arch:AVX) + add_definitions(/arch:AVX) endif() -elseif(GLM_TEST_ENABLE_SSE3) +elseif(GLM_TEST_ENABLE_SIMD_SSE3) if(CMAKE_COMPILER_IS_GNUCXX) add_definitions(-msse3) elseif(GLM_USE_INTEL) @@ -96,14 +91,14 @@ elseif(GLM_TEST_ENABLE_SSE3) elseif(MSVC) add_definitions(/arch:SSE2) # VC doesn't support /arch:SSE3 endif() -elseif(GLM_TEST_ENABLE_SSE2) +elseif(GLM_TEST_ENABLE_SIMD_SSE2) if(CMAKE_COMPILER_IS_GNUCXX) add_definitions(-msse2) elseif(GLM_USE_INTEL) add_definitions(/QxSSE2) elseif(MSVC) if(NOT CMAKE_CL_64) - add_definitions(/arch:SSE2) + add_definitions(/arch:SSE2) endif() endif() endif() diff --git a/copying.txt b/copying.txt index efd93bab..0b3b5acf 100644 --- a/copying.txt +++ b/copying.txt @@ -1,6 +1,39 @@ -The MIT License +================================================================================ +OpenGL Mathematics (GLM) +-------------------------------------------------------------------------------- +GLM is licensed under The Happy Bunny License and MIT License -Copyright (c) 2005 - 2013 G-Truc Creation +================================================================================ +The Happy Bunny License (Modified MIT License) +-------------------------------------------------------------------------------- +Copyright (c) 2005 - 2014 G-Truc Creation + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +Restrictions: + By making use of the Software for military purposes, you choose to make a + Bunny unhappy. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +================================================================================ +The MIT License +-------------------------------------------------------------------------------- +Copyright (c) 2005 - 2014 G-Truc Creation Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/doc/api/a00001.html b/doc/api/a00001.html new file mode 100644 index 00000000..58bd4ef2 --- /dev/null +++ b/doc/api/a00001.html @@ -0,0 +1,73 @@ + + + + + + +0.9.6: _features.hpp File Reference + + + + + + +
+
+ + + + + + + +
+
0.9.6 +
+
+
+ + + + + +
+
+
+
_features.hpp File Reference
+
+
+ +

Go to the source code of this file.

+

Detailed Description

+

OpenGL Mathematics (glm.g-truc.net)

+

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+

GLM Core

+
Date
2013-02-20 / 2013-02-20
+
Author
Christophe Riccio
+ +

Definition in file _features.hpp.

+
+ + + + diff --git a/doc/api/a00001_source.html b/doc/api/a00001_source.html new file mode 100644 index 00000000..821a14cc --- /dev/null +++ b/doc/api/a00001_source.html @@ -0,0 +1,457 @@ + + + + + + +0.9.6: _features.hpp Source File + + + + + + +
+
+ + + + + + + +
+
0.9.6 +
+
+
+ + + + + +
+
+
+
_features.hpp
+
+
+Go to the documentation of this file.
1 
+
33 #pragma once
+
34 
+
35 // #define GLM_CXX98_EXCEPTIONS
+
36 // #define GLM_CXX98_RTTI
+
37 
+
38 // #define GLM_CXX11_RVALUE_REFERENCES
+
39 // Rvalue references - GCC 4.3
+
40 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n2118.html
+
41 
+
42 // GLM_CXX11_TRAILING_RETURN
+
43 // Rvalue references for *this - GCC not supported
+
44 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2439.htm
+
45 
+
46 // GLM_CXX11_NONSTATIC_MEMBER_INIT
+
47 // Initialization of class objects by rvalues - GCC any
+
48 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1610.html
+
49 
+
50 // GLM_CXX11_NONSTATIC_MEMBER_INIT
+
51 // Non-static data member initializers - GCC 4.7
+
52 // http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2008/n2756.htm
+
53 
+
54 // #define GLM_CXX11_VARIADIC_TEMPLATE
+
55 // Variadic templates - GCC 4.3
+
56 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2242.pdf
+
57 
+
58 //
+
59 // Extending variadic template template parameters - GCC 4.4
+
60 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2555.pdf
+
61 
+
62 // #define GLM_CXX11_GENERALIZED_INITIALIZERS
+
63 // Initializer lists - GCC 4.4
+
64 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2672.htm
+
65 
+
66 // #define GLM_CXX11_STATIC_ASSERT
+
67 // Static assertions - GCC 4.3
+
68 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1720.html
+
69 
+
70 // #define GLM_CXX11_AUTO_TYPE
+
71 // auto-typed variables - GCC 4.4
+
72 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1984.pdf
+
73 
+
74 // #define GLM_CXX11_AUTO_TYPE
+
75 // Multi-declarator auto - GCC 4.4
+
76 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1737.pdf
+
77 
+
78 // #define GLM_CXX11_AUTO_TYPE
+
79 // Removal of auto as a storage-class specifier - GCC 4.4
+
80 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2546.htm
+
81 
+
82 // #define GLM_CXX11_AUTO_TYPE
+
83 // New function declarator syntax - GCC 4.4
+
84 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2541.htm
+
85 
+
86 // #define GLM_CXX11_LAMBDAS
+
87 // New wording for C++0x lambdas - GCC 4.5
+
88 // http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2009/n2927.pdf
+
89 
+
90 // #define GLM_CXX11_DECLTYPE
+
91 // Declared type of an expression - GCC 4.3
+
92 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2343.pdf
+
93 
+
94 //
+
95 // Right angle brackets - GCC 4.3
+
96 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1757.html
+
97 
+
98 //
+
99 // Default template arguments for function templates DR226 GCC 4.3
+
100 // http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#226
+
101 
+
102 //
+
103 // Solving the SFINAE problem for expressions DR339 GCC 4.4
+
104 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2634.html
+
105 
+
106 // #define GLM_CXX11_ALIAS_TEMPLATE
+
107 // Template aliases N2258 GCC 4.7
+
108 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2258.pdf
+
109 
+
110 //
+
111 // Extern templates N1987 Yes
+
112 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1987.htm
+
113 
+
114 // #define GLM_CXX11_NULLPTR
+
115 // Null pointer constant N2431 GCC 4.6
+
116 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2431.pdf
+
117 
+
118 // #define GLM_CXX11_STRONG_ENUMS
+
119 // Strongly-typed enums N2347 GCC 4.4
+
120 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2347.pdf
+
121 
+
122 //
+
123 // Forward declarations for enums N2764 GCC 4.6
+
124 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2764.pdf
+
125 
+
126 //
+
127 // Generalized attributes N2761 GCC 4.8
+
128 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2761.pdf
+
129 
+
130 //
+
131 // Generalized constant expressions N2235 GCC 4.6
+
132 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2235.pdf
+
133 
+
134 //
+
135 // Alignment support N2341 GCC 4.8
+
136 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2341.pdf
+
137 
+
138 // #define GLM_CXX11_DELEGATING_CONSTRUCTORS
+
139 // Delegating constructors N1986 GCC 4.7
+
140 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1986.pdf
+
141 
+
142 //
+
143 // Inheriting constructors N2540 GCC 4.8
+
144 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2540.htm
+
145 
+
146 // #define GLM_CXX11_EXPLICIT_CONVERSIONS
+
147 // Explicit conversion operators N2437 GCC 4.5
+
148 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2437.pdf
+
149 
+
150 //
+
151 // New character types N2249 GCC 4.4
+
152 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2249.html
+
153 
+
154 //
+
155 // Unicode string literals N2442 GCC 4.5
+
156 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2442.htm
+
157 
+
158 //
+
159 // Raw string literals N2442 GCC 4.5
+
160 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2442.htm
+
161 
+
162 //
+
163 // Universal character name literals N2170 GCC 4.5
+
164 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2170.html
+
165 
+
166 // #define GLM_CXX11_USER_LITERALS
+
167 // User-defined literals N2765 GCC 4.7
+
168 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2765.pdf
+
169 
+
170 //
+
171 // Standard Layout Types N2342 GCC 4.5
+
172 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2342.htm
+
173 
+
174 // #define GLM_CXX11_DEFAULTED_FUNCTIONS
+
175 // #define GLM_CXX11_DELETED_FUNCTIONS
+
176 // Defaulted and deleted functions N2346 GCC 4.4
+
177 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2346.htm
+
178 
+
179 //
+
180 // Extended friend declarations N1791 GCC 4.7
+
181 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1791.pdf
+
182 
+
183 //
+
184 // Extending sizeof N2253 GCC 4.4
+
185 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2253.html
+
186 
+
187 // #define GLM_CXX11_INLINE_NAMESPACES
+
188 // Inline namespaces N2535 GCC 4.4
+
189 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2535.htm
+
190 
+
191 // #define GLM_CXX11_UNRESTRICTED_UNIONS
+
192 // Unrestricted unions N2544 GCC 4.6
+
193 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2544.pdf
+
194 
+
195 // #define GLM_CXX11_LOCAL_TYPE_TEMPLATE_ARGS
+
196 // Local and unnamed types as template arguments N2657 GCC 4.5
+
197 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2657.htm
+
198 
+
199 // #define GLM_CXX11_RANGE_FOR
+
200 // Range-based for N2930 GCC 4.6
+
201 // http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2009/n2930.html
+
202 
+
203 // #define GLM_CXX11_OVERRIDE_CONTROL
+
204 // Explicit virtual overrides N2928 N3206 N3272 GCC 4.7
+
205 // http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2009/n2928.htm
+
206 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3206.htm
+
207 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3272.htm
+
208 
+
209 //
+
210 // Minimal support for garbage collection and reachability-based leak detection N2670 No
+
211 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2670.htm
+
212 
+
213 // #define GLM_CXX11_NOEXCEPT
+
214 // Allowing move constructors to throw [noexcept] N3050 GCC 4.6 (core language only)
+
215 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3050.html
+
216 
+
217 //
+
218 // Defining move special member functions N3053 GCC 4.6
+
219 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3053.html
+
220 
+
221 //
+
222 // Sequence points N2239 Yes
+
223 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2239.html
+
224 
+
225 //
+
226 // Atomic operations N2427 GCC 4.4
+
227 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2239.html
+
228 
+
229 //
+
230 // Strong Compare and Exchange N2748 GCC 4.5
+
231 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2427.html
+
232 
+
233 //
+
234 // Bidirectional Fences N2752 GCC 4.8
+
235 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2752.htm
+
236 
+
237 //
+
238 // Memory model N2429 GCC 4.8
+
239 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2429.htm
+
240 
+
241 //
+
242 // Data-dependency ordering: atomics and memory model N2664 GCC 4.4
+
243 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2664.htm
+
244 
+
245 //
+
246 // Propagating exceptions N2179 GCC 4.4
+
247 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2179.html
+
248 
+
249 //
+
250 // Abandoning a process and at_quick_exit N2440 GCC 4.8
+
251 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2440.htm
+
252 
+
253 //
+
254 // Allow atomics use in signal handlers N2547 Yes
+
255 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2547.htm
+
256 
+
257 //
+
258 // Thread-local storage N2659 GCC 4.8
+
259 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2659.htm
+
260 
+
261 //
+
262 // Dynamic initialization and destruction with concurrency N2660 GCC 4.3
+
263 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2660.htm
+
264 
+
265 //
+
266 // __func__ predefined identifier N2340 GCC 4.3
+
267 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2340.htm
+
268 
+
269 //
+
270 // C99 preprocessor N1653 GCC 4.3
+
271 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1653.htm
+
272 
+
273 //
+
274 // long long N1811 GCC 4.3
+
275 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1811.pdf
+
276 
+
277 //
+
278 // Extended integral types N1988 Yes
+
279 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1988.pdf
+
280 
+
281 #if(GLM_COMPILER & GLM_COMPILER_GCC)
+
282 
+
283 # if(GLM_COMPILER >= GLM_COMPILER_GCC43)
+
284 # define GLM_CXX11_STATIC_ASSERT
+
285 # endif
+
286 
+
287 #elif(GLM_COMPILER & (GLM_COMPILER_APPLE_CLANG | GLM_COMPILER_LLVM))
+
288 # if(__has_feature(cxx_exceptions))
+
289 # define GLM_CXX98_EXCEPTIONS
+
290 # endif
+
291 
+
292 # if(__has_feature(cxx_rtti))
+
293 # define GLM_CXX98_RTTI
+
294 # endif
+
295 
+
296 # if(__has_feature(cxx_access_control_sfinae))
+
297 # define GLM_CXX11_ACCESS_CONTROL_SFINAE
+
298 # endif
+
299 
+
300 # if(__has_feature(cxx_alias_templates))
+
301 # define GLM_CXX11_ALIAS_TEMPLATE
+
302 # endif
+
303 
+
304 # if(__has_feature(cxx_alignas))
+
305 # define GLM_CXX11_ALIGNAS
+
306 # endif
+
307 
+
308 # if(__has_feature(cxx_attributes))
+
309 # define GLM_CXX11_ATTRIBUTES
+
310 # endif
+
311 
+
312 # if(__has_feature(cxx_constexpr))
+
313 # define GLM_CXX11_CONSTEXPR
+
314 # endif
+
315 
+
316 # if(__has_feature(cxx_decltype))
+
317 # define GLM_CXX11_DECLTYPE
+
318 # endif
+
319 
+
320 # if(__has_feature(cxx_default_function_template_args))
+
321 # define GLM_CXX11_DEFAULT_FUNCTION_TEMPLATE_ARGS
+
322 # endif
+
323 
+
324 # if(__has_feature(cxx_defaulted_functions))
+
325 # define GLM_CXX11_DEFAULTED_FUNCTIONS
+
326 # endif
+
327 
+
328 # if(__has_feature(cxx_delegating_constructors))
+
329 # define GLM_CXX11_DELEGATING_CONSTRUCTORS
+
330 # endif
+
331 
+
332 # if(__has_feature(cxx_deleted_functions))
+
333 # define GLM_CXX11_DELETED_FUNCTIONS
+
334 # endif
+
335 
+
336 # if(__has_feature(cxx_explicit_conversions))
+
337 # define GLM_CXX11_EXPLICIT_CONVERSIONS
+
338 # endif
+
339 
+
340 # if(__has_feature(cxx_generalized_initializers))
+
341 # define GLM_CXX11_GENERALIZED_INITIALIZERS
+
342 # endif
+
343 
+
344 # if(__has_feature(cxx_implicit_moves))
+
345 # define GLM_CXX11_IMPLICIT_MOVES
+
346 # endif
+
347 
+
348 # if(__has_feature(cxx_inheriting_constructors))
+
349 # define GLM_CXX11_INHERITING_CONSTRUCTORS
+
350 # endif
+
351 
+
352 # if(__has_feature(cxx_inline_namespaces))
+
353 # define GLM_CXX11_INLINE_NAMESPACES
+
354 # endif
+
355 
+
356 # if(__has_feature(cxx_lambdas))
+
357 # define GLM_CXX11_LAMBDAS
+
358 # endif
+
359 
+
360 # if(__has_feature(cxx_local_type_template_args))
+
361 # define GLM_CXX11_LOCAL_TYPE_TEMPLATE_ARGS
+
362 # endif
+
363 
+
364 # if(__has_feature(cxx_noexcept))
+
365 # define GLM_CXX11_NOEXCEPT
+
366 # endif
+
367 
+
368 # if(__has_feature(cxx_nonstatic_member_init))
+
369 # define GLM_CXX11_NONSTATIC_MEMBER_INIT
+
370 # endif
+
371 
+
372 # if(__has_feature(cxx_nullptr))
+
373 # define GLM_CXX11_NULLPTR
+
374 # endif
+
375 
+
376 # if(__has_feature(cxx_override_control))
+
377 # define GLM_CXX11_OVERRIDE_CONTROL
+
378 # endif
+
379 
+
380 # if(__has_feature(cxx_reference_qualified_functions))
+
381 # define GLM_CXX11_REFERENCE_QUALIFIED_FUNCTIONS
+
382 # endif
+
383 
+
384 # if(__has_feature(cxx_range_for))
+
385 # define GLM_CXX11_RANGE_FOR
+
386 # endif
+
387 
+
388 # if(__has_feature(cxx_raw_string_literals))
+
389 # define GLM_CXX11_RAW_STRING_LITERALS
+
390 # endif
+
391 
+
392 # if(__has_feature(cxx_rvalue_references))
+
393 # define GLM_CXX11_RVALUE_REFERENCES
+
394 # endif
+
395 
+
396 # if(__has_feature(cxx_static_assert))
+
397 # define GLM_CXX11_STATIC_ASSERT
+
398 # endif
+
399 
+
400 # if(__has_feature(cxx_auto_type))
+
401 # define GLM_CXX11_AUTO_TYPE
+
402 # endif
+
403 
+
404 # if(__has_feature(cxx_strong_enums))
+
405 # define GLM_CXX11_STRONG_ENUMS
+
406 # endif
+
407 
+
408 # if(__has_feature(cxx_trailing_return))
+
409 # define GLM_CXX11_TRAILING_RETURN
+
410 # endif
+
411 
+
412 # if(__has_feature(cxx_unicode_literals))
+
413 # define GLM_CXX11_UNICODE_LITERALS
+
414 # endif
+
415 
+
416 # if(__has_feature(cxx_unrestricted_unions))
+
417 # define GLM_CXX11_UNRESTRICTED_UNIONS
+
418 # endif
+
419 
+
420 # if(__has_feature(cxx_user_literals))
+
421 # define GLM_CXX11_USER_LITERALS
+
422 # endif
+
423 
+
424 # if(__has_feature(cxx_variadic_templates))
+
425 # define GLM_CXX11_VARIADIC_TEMPLATES
+
426 # endif
+
427 
+
428 #endif//(GLM_COMPILER & (GLM_COMPILER_APPLE_CLANG | GLM_COMPILER_LLVM))
+
+ + + + diff --git a/doc/api/a00002.html b/doc/api/a00002.html index cad062fd..1bac8d0e 100644 --- a/doc/api/a00002.html +++ b/doc/api/a00002.html @@ -3,8 +3,8 @@ - -GLM: Differences between GLSL and GLM core + +0.9.6: _fixes.hpp File Reference @@ -16,9 +16,9 @@ + @@ -26,36 +26,48 @@
-
GLM -  0.9.5 +
0.9.6
- + + +
-
Differences between GLSL and GLM core
+
_fixes.hpp File Reference
-

GLM comes very close to replicating GLSL, but it is not exact. Here is a list of differences between GLM and GLSL:

- + +

Go to the source code of this file.

+

Detailed Description

+

OpenGL Mathematics (glm.g-truc.net)

+

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+

GLM Core

+
Date
2011-02-21 / 2011-11-22
+
Author
Christophe Riccio
+ +

Definition in file _fixes.hpp.

diff --git a/doc/api/a00002_source.html b/doc/api/a00002_source.html new file mode 100644 index 00000000..a43c9233 --- /dev/null +++ b/doc/api/a00002_source.html @@ -0,0 +1,83 @@ + + + + + + +0.9.6: _fixes.hpp Source File + + + + + + +
+
+ + + + + + + +
+
0.9.6 +
+
+
+ + + + + +
+
+
+
_fixes.hpp
+
+
+Go to the documentation of this file.
1 
+
33 #include <cmath>
+
34 
+
36 #ifdef max
+
37 #undef max
+
38 #endif
+
39 
+
41 #ifdef min
+
42 #undef min
+
43 #endif
+
44 
+
46 #ifdef isnan
+
47 #undef isnan
+
48 #endif
+
49 
+
51 #ifdef isinf
+
52 #undef isinf
+
53 #endif
+
54 
+
56 #ifdef log2
+
57 #undef log2
+
58 #endif
+
59 
+
+ + + + diff --git a/doc/api/a00050.html b/doc/api/a00003.html similarity index 71% rename from doc/api/a00050.html rename to doc/api/a00003.html index 223e01e0..8ba78af7 100644 --- a/doc/api/a00050.html +++ b/doc/api/a00003.html @@ -3,8 +3,8 @@ - -GLM: integer.hpp File Reference + +0.9.6: _noise.hpp File Reference @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,32 +41,33 @@
-
integer.hpp File Reference
+
_noise.hpp File Reference
-

Go to the source code of this file.

+

Go to the source code of this file.

Detailed Description

OpenGL Mathematics (glm.g-truc.net)

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM Core

+

GLM Core

Date
2013-12-24 / 2013-12-24
Author
Christophe Riccio
-

Definition in file integer.hpp.

+

Definition in file _noise.hpp.

diff --git a/doc/api/a00003_source.html b/doc/api/a00003_source.html new file mode 100644 index 00000000..5c4aafa2 --- /dev/null +++ b/doc/api/a00003_source.html @@ -0,0 +1,166 @@ + + + + + + +0.9.6: _noise.hpp Source File + + + + + + +
+
+ + + + + + + +
+
0.9.6 +
+
+
+ + + + + +
+
+
+
_noise.hpp
+
+
+Go to the documentation of this file.
1 
+
33 #pragma once
+
34 
+
35 #include "../vec2.hpp"
+
36 #include "../vec3.hpp"
+
37 #include "../vec4.hpp"
+
38 
+
39 namespace glm{
+
40 namespace detail
+
41 {
+
42  template <typename T>
+
43  GLM_FUNC_QUALIFIER T mod289(T const & x)
+
44  {
+
45  return x - floor(x * static_cast<T>(1.0) / static_cast<T>(289.0)) * static_cast<T>(289.0);
+
46  }
+
47 
+
48  template <typename T>
+
49  GLM_FUNC_QUALIFIER T permute(T const & x)
+
50  {
+
51  return mod289(((x * static_cast<T>(34)) + static_cast<T>(1)) * x);
+
52  }
+
53 
+
54  template <typename T, precision P>
+
55  GLM_FUNC_QUALIFIER tvec2<T, P> permute(tvec2<T, P> const & x)
+
56  {
+
57  return mod289(((x * static_cast<T>(34)) + static_cast<T>(1)) * x);
+
58  }
+
59 
+
60  template <typename T, precision P>
+
61  GLM_FUNC_QUALIFIER tvec3<T, P> permute(tvec3<T, P> const & x)
+
62  {
+
63  return mod289(((x * static_cast<T>(34)) + static_cast<T>(1)) * x);
+
64  }
+
65 
+
66  template <typename T, precision P>
+
67  GLM_FUNC_QUALIFIER tvec4<T, P> permute(tvec4<T, P> const & x)
+
68  {
+
69  return mod289(((x * static_cast<T>(34)) + static_cast<T>(1)) * x);
+
70  }
+
71 /*
+
72  template <typename T, precision P, template<typename> class vecType>
+
73  GLM_FUNC_QUALIFIER vecType<T, P> permute(vecType<T, P> const & x)
+
74  {
+
75  return mod289(((x * T(34)) + T(1)) * x);
+
76  }
+
77 */
+
78  template <typename T>
+
79  GLM_FUNC_QUALIFIER T taylorInvSqrt(T const & r)
+
80  {
+
81  return T(1.79284291400159) - T(0.85373472095314) * r;
+
82  }
+
83 
+
84  template <typename T, precision P>
+
85  GLM_FUNC_QUALIFIER tvec2<T, P> taylorInvSqrt(tvec2<T, P> const & r)
+
86  {
+
87  return T(1.79284291400159) - T(0.85373472095314) * r;
+
88  }
+
89 
+
90  template <typename T, precision P>
+
91  GLM_FUNC_QUALIFIER tvec3<T, P> taylorInvSqrt(tvec3<T, P> const & r)
+
92  {
+
93  return T(1.79284291400159) - T(0.85373472095314) * r;
+
94  }
+
95 
+
96  template <typename T, precision P>
+
97  GLM_FUNC_QUALIFIER tvec4<T, P> taylorInvSqrt(tvec4<T, P> const & r)
+
98  {
+
99  return T(1.79284291400159) - T(0.85373472095314) * r;
+
100  }
+
101 /*
+
102  template <typename T, precision P, template<typename> class vecType>
+
103  GLM_FUNC_QUALIFIER vecType<T, P> taylorInvSqrt(vecType<T, P> const & r)
+
104  {
+
105  return T(1.79284291400159) - T(0.85373472095314) * r;
+
106  }
+
107 */
+
108 
+
109  template <typename T, precision P>
+
110  GLM_FUNC_QUALIFIER tvec2<T, P> fade(tvec2<T, P> const & t)
+
111  {
+
112  return (t * t * t) * (t * (t * T(6) - T(15)) + T(10));
+
113  }
+
114 
+
115  template <typename T, precision P>
+
116  GLM_FUNC_QUALIFIER tvec3<T, P> fade(tvec3<T, P> const & t)
+
117  {
+
118  return (t * t * t) * (t * (t * T(6) - T(15)) + T(10));
+
119  }
+
120 
+
121  template <typename T, precision P>
+
122  GLM_FUNC_QUALIFIER tvec4<T, P> fade(tvec4<T, P> const & t)
+
123  {
+
124  return (t * t * t) * (t * (t * T(6) - T(15)) + T(10));
+
125  }
+
126 /*
+
127  template <typename T, precision P, template <typename> class vecType>
+
128  GLM_FUNC_QUALIFIER vecType<T, P> fade(vecType<T, P> const & t)
+
129  {
+
130  return (t * t * t) * (t * (t * T(6) - T(15)) + T(10));
+
131  }
+
132 */
+
133 }//namespace detail
+
134 }//namespace glm
+
135 
+
GLM_FUNC_DECL vecType< T, P > floor(vecType< T, P > const &x)
Returns a value equal to the nearest integer that is less then or equal to x.
+
Definition: _noise.hpp:39
+
+ + + + diff --git a/doc/api/a00004.html b/doc/api/a00004.html new file mode 100644 index 00000000..a7c6fdf4 --- /dev/null +++ b/doc/api/a00004.html @@ -0,0 +1,73 @@ + + + + + + +0.9.6: _swizzle.hpp File Reference + + + + + + +
+
+ + + + + + + +
+
0.9.6 +
+
+
+ + + + + +
+
+
+
_swizzle.hpp File Reference
+
+
+ +

Go to the source code of this file.

+

Detailed Description

+

OpenGL Mathematics (glm.g-truc.net)

+

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+

GLM Core

+
Date
2006-04-20 / 2011-02-16
+
Author
Christophe Riccio
+ +

Definition in file _swizzle.hpp.

+
+ + + + diff --git a/doc/api/a00004_source.html b/doc/api/a00004_source.html index 3710764a..b0a43f10 100644 --- a/doc/api/a00004_source.html +++ b/doc/api/a00004_source.html @@ -3,8 +3,8 @@ - -GLM: _features.hpp Source File + +0.9.6: _swizzle.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,420 +41,824 @@
-
_features.hpp
+
_swizzle.hpp
-
1 
-
29 #ifndef glm_core_features
-
30 #define glm_core_features
-
31 
-
32 // #define GLM_CXX98_EXCEPTIONS
-
33 // #define GLM_CXX98_RTTI
+Go to the documentation of this file.
1 
+
33 #pragma once
34 
-
35 // #define GLM_CXX11_RVALUE_REFERENCES
-
36 // Rvalue references - GCC 4.3
-
37 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n2118.html
-
38 
-
39 // GLM_CXX11_TRAILING_RETURN
-
40 // Rvalue references for *this - GCC not supported
-
41 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2439.htm
-
42 
-
43 // GLM_CXX11_NONSTATIC_MEMBER_INIT
-
44 // Initialization of class objects by rvalues - GCC any
-
45 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1610.html
-
46 
-
47 // GLM_CXX11_NONSTATIC_MEMBER_INIT
-
48 // Non-static data member initializers - GCC 4.7
-
49 // http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2008/n2756.htm
-
50 
-
51 // #define GLM_CXX11_VARIADIC_TEMPLATE
-
52 // Variadic templates - GCC 4.3
-
53 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2242.pdf
-
54 
-
55 //
-
56 // Extending variadic template template parameters - GCC 4.4
-
57 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2555.pdf
+
35 namespace glm{
+
36 namespace detail
+
37 {
+
38  // Internal class for implementing swizzle operators
+
39  template <typename T, int N>
+
40  struct _swizzle_base0
+
41  {
+
42  typedef T value_type;
+
43 
+
44  protected:
+
45  GLM_FUNC_QUALIFIER value_type& elem (size_t i) { return (reinterpret_cast<value_type*>(_buffer))[i]; }
+
46  GLM_FUNC_QUALIFIER const value_type& elem (size_t i) const { return (reinterpret_cast<const value_type*>(_buffer))[i]; }
+
47 
+
48  // Use an opaque buffer to *ensure* the compiler doesn't call a constructor.
+
49  // The size 1 buffer is assumed to aligned to the actual members so that the
+
50  // elem()
+
51  char _buffer[1];
+
52  };
+
53 
+
54  template <typename T, precision P, typename V, int E0, int E1, int E2, int E3, int N>
+
55  struct _swizzle_base1 : public _swizzle_base0<T, N>
+
56  {
+
57  };
58 
-
59 // #define GLM_CXX11_GENERALIZED_INITIALIZERS
-
60 // Initializer lists - GCC 4.4
-
61 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2672.htm
-
62 
-
63 // #define GLM_CXX11_STATIC_ASSERT
-
64 // Static assertions - GCC 4.3
-
65 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1720.html
-
66 
-
67 // #define GLM_CXX11_AUTO_TYPE
-
68 // auto-typed variables - GCC 4.4
-
69 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1984.pdf
+
59  template <typename T, precision P, typename V, int E0, int E1>
+
60  struct _swizzle_base1<T, P, V,E0,E1,-1,-2,2> : public _swizzle_base0<T, 2>
+
61  {
+
62  GLM_FUNC_QUALIFIER V operator ()() const { return V(this->elem(E0), this->elem(E1)); }
+
63  };
+
64 
+
65  template <typename T, precision P, typename V, int E0, int E1, int E2>
+
66  struct _swizzle_base1<T, P, V,E0,E1,E2,-1,3> : public _swizzle_base0<T, 3>
+
67  {
+
68  GLM_FUNC_QUALIFIER V operator ()() const { return V(this->elem(E0), this->elem(E1), this->elem(E2)); }
+
69  };
70 
-
71 // #define GLM_CXX11_AUTO_TYPE
-
72 // Multi-declarator auto - GCC 4.4
-
73 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1737.pdf
-
74 
-
75 // #define GLM_CXX11_AUTO_TYPE
-
76 // Removal of auto as a storage-class specifier - GCC 4.4
-
77 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2546.htm
-
78 
-
79 // #define GLM_CXX11_AUTO_TYPE
-
80 // New function declarator syntax - GCC 4.4
-
81 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2541.htm
-
82 
-
83 // #define GLM_CXX11_LAMBDAS
-
84 // New wording for C++0x lambdas - GCC 4.5
-
85 // http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2009/n2927.pdf
-
86 
-
87 // #define GLM_CXX11_DECLTYPE
-
88 // Declared type of an expression - GCC 4.3
-
89 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2343.pdf
-
90 
-
91 //
-
92 // Right angle brackets - GCC 4.3
-
93 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1757.html
+
71  template <typename T, precision P, typename V, int E0, int E1, int E2, int E3>
+
72  struct _swizzle_base1<T, P, V,E0,E1,E2,E3,4> : public _swizzle_base0<T, 4>
+
73  {
+
74  GLM_FUNC_QUALIFIER V operator ()() const { return V(this->elem(E0), this->elem(E1), this->elem(E2), this->elem(E3)); }
+
75  };
+
76 
+
77  // Internal class for implementing swizzle operators
+
78  /*
+
79  Template parameters:
+
80 
+
81  ValueType = type of scalar values (e.g. float, double)
+
82  VecType = class the swizzle is applies to (e.g. tvec3<float>)
+
83  N = number of components in the vector (e.g. 3)
+
84  E0...3 = what index the n-th element of this swizzle refers to in the unswizzled vec
+
85 
+
86  DUPLICATE_ELEMENTS = 1 if there is a repeated element, 0 otherwise (used to specialize swizzles
+
87  containing duplicate elements so that they cannot be used as r-values).
+
88  */
+
89  template <typename ValueType, precision P, typename VecType, int N, int E0, int E1, int E2, int E3, int DUPLICATE_ELEMENTS>
+
90  struct _swizzle_base2 : public _swizzle_base1<ValueType, P, VecType,E0,E1,E2,E3,N>
+
91  {
+
92  typedef VecType vec_type;
+
93  typedef ValueType value_type;
94 
-
95 //
-
96 // Default template arguments for function templates DR226 GCC 4.3
-
97 // http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#226
-
98 
-
99 //
-
100 // Solving the SFINAE problem for expressions DR339 GCC 4.4
-
101 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2634.html
-
102 
-
103 // #define GLM_CXX11_ALIAS_TEMPLATE
-
104 // Template aliases N2258 GCC 4.7
-
105 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2258.pdf
-
106 
-
107 //
-
108 // Extern templates N1987 Yes
-
109 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1987.htm
+
95  GLM_FUNC_QUALIFIER _swizzle_base2& operator= (const ValueType& t)
+
96  {
+
97  for (int i = 0; i < N; ++i)
+
98  (*this)[i] = t;
+
99  return *this;
+
100  }
+
101 
+
102  GLM_FUNC_QUALIFIER _swizzle_base2& operator= (const VecType& that)
+
103  {
+
104  struct op {
+
105  GLM_FUNC_QUALIFIER void operator() (value_type& e, value_type& t) { e = t; }
+
106  };
+
107  _apply_op(that, op());
+
108  return *this;
+
109  }
110 
-
111 // #define GLM_CXX11_NULLPTR
-
112 // Null pointer constant N2431 GCC 4.6
-
113 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2431.pdf
-
114 
-
115 // #define GLM_CXX11_STRONG_ENUMS
-
116 // Strongly-typed enums N2347 GCC 4.4
-
117 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2347.pdf
+
111  GLM_FUNC_QUALIFIER void operator -= (const VecType& that)
+
112  {
+
113  struct op {
+
114  GLM_FUNC_QUALIFIER void operator() (value_type& e, value_type& t) { e -= t; }
+
115  };
+
116  _apply_op(that, op());
+
117  }
118 
-
119 //
-
120 // Forward declarations for enums N2764 GCC 4.6
-
121 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2764.pdf
-
122 
-
123 //
-
124 // Generalized attributes N2761 GCC 4.8
-
125 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2761.pdf
+
119  GLM_FUNC_QUALIFIER void operator += (const VecType& that)
+
120  {
+
121  struct op {
+
122  GLM_FUNC_QUALIFIER void operator() (value_type& e, value_type& t) { e += t; }
+
123  };
+
124  _apply_op(that, op());
+
125  }
126 
-
127 //
-
128 // Generalized constant expressions N2235 GCC 4.6
-
129 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2235.pdf
-
130 
-
131 //
-
132 // Alignment support N2341 GCC 4.8
-
133 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2341.pdf
+
127  GLM_FUNC_QUALIFIER void operator *= (const VecType& that)
+
128  {
+
129  struct op {
+
130  GLM_FUNC_QUALIFIER void operator() (value_type& e, value_type& t) { e *= t; }
+
131  };
+
132  _apply_op(that, op());
+
133  }
134 
-
135 // #define GLM_CXX11_DELEGATING_CONSTRUCTORS
-
136 // Delegating constructors N1986 GCC 4.7
-
137 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1986.pdf
-
138 
-
139 //
-
140 // Inheriting constructors N2540 GCC 4.8
-
141 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2540.htm
+
135  GLM_FUNC_QUALIFIER void operator /= (const VecType& that)
+
136  {
+
137  struct op {
+
138  GLM_FUNC_QUALIFIER void operator() (value_type& e, value_type& t) { e /= t; }
+
139  };
+
140  _apply_op(that, op());
+
141  }
142 
-
143 // #define GLM_CXX11_EXPLICIT_CONVERSIONS
-
144 // Explicit conversion operators N2437 GCC 4.5
-
145 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2437.pdf
-
146 
-
147 //
-
148 // New character types N2249 GCC 4.4
-
149 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2249.html
-
150 
-
151 //
-
152 // Unicode string literals N2442 GCC 4.5
-
153 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2442.htm
-
154 
-
155 //
-
156 // Raw string literals N2442 GCC 4.5
-
157 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2442.htm
-
158 
-
159 //
-
160 // Universal character name literals N2170 GCC 4.5
-
161 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2170.html
-
162 
-
163 // #define GLM_CXX11_USER_LITERALS
-
164 // User-defined literals N2765 GCC 4.7
-
165 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2765.pdf
-
166 
-
167 //
-
168 // Standard Layout Types N2342 GCC 4.5
-
169 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2342.htm
-
170 
-
171 // #define GLM_CXX11_DEFAULTED_FUNCTIONS
-
172 // #define GLM_CXX11_DELETED_FUNCTIONS
-
173 // Defaulted and deleted functions N2346 GCC 4.4
-
174 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2346.htm
+
143  GLM_FUNC_QUALIFIER value_type& operator[] (size_t i)
+
144  {
+
145  const int offset_dst[4] = { E0, E1, E2, E3 };
+
146  return this->elem(offset_dst[i]);
+
147  }
+
148  GLM_FUNC_QUALIFIER value_type operator[] (size_t i) const
+
149  {
+
150  const int offset_dst[4] = { E0, E1, E2, E3 };
+
151  return this->elem(offset_dst[i]);
+
152  }
+
153 
+
154  protected:
+
155  template <typename T>
+
156  GLM_FUNC_QUALIFIER void _apply_op(const VecType& that, T op)
+
157  {
+
158  // Make a copy of the data in this == &that.
+
159  // The copier should optimize out the copy in cases where the function is
+
160  // properly inlined and the copy is not necessary.
+
161  ValueType t[N];
+
162  for (int i = 0; i < N; ++i)
+
163  t[i] = that[i];
+
164  for (int i = 0; i < N; ++i)
+
165  op( (*this)[i], t[i] );
+
166  }
+
167  };
+
168 
+
169  // Specialization for swizzles containing duplicate elements. These cannot be modified.
+
170  template <typename ValueType, precision P, typename VecType, int N, int E0, int E1, int E2, int E3>
+
171  struct _swizzle_base2<ValueType, P, VecType,N,E0,E1,E2,E3,1> : public _swizzle_base1<ValueType, P, VecType,E0,E1,E2,E3,N>
+
172  {
+
173  typedef VecType vec_type;
+
174  typedef ValueType value_type;
175 
-
176 //
-
177 // Extended friend declarations N1791 GCC 4.7
-
178 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1791.pdf
-
179 
-
180 //
-
181 // Extending sizeof N2253 GCC 4.4
-
182 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2253.html
-
183 
-
184 // #define GLM_CXX11_INLINE_NAMESPACES
-
185 // Inline namespaces N2535 GCC 4.4
-
186 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2535.htm
-
187 
-
188 // #define GLM_CXX11_UNRESTRICTED_UNIONS
-
189 // Unrestricted unions N2544 GCC 4.6
-
190 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2544.pdf
-
191 
-
192 // #define GLM_CXX11_LOCAL_TYPE_TEMPLATE_ARGS
-
193 // Local and unnamed types as template arguments N2657 GCC 4.5
-
194 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2657.htm
+
176  struct Stub {};
+
177  GLM_FUNC_QUALIFIER _swizzle_base2& operator= (Stub const &) { return *this; }
+
178 
+
179  GLM_FUNC_QUALIFIER value_type operator[] (size_t i) const
+
180  {
+
181  const int offset_dst[4] = { E0, E1, E2, E3 };
+
182  return this->elem(offset_dst[i]);
+
183  }
+
184  };
+
185 
+
186  template <int N,typename ValueType, precision P, typename VecType, int E0,int E1,int E2,int E3>
+
187  struct _swizzle : public _swizzle_base2<ValueType, P, VecType, N, E0, E1, E2, E3, (E0==E1||E0==E2||E0==E3||E1==E2||E1==E3||E2==E3)>
+
188  {
+
189  typedef _swizzle_base2<ValueType, P, VecType,N,E0,E1,E2,E3,(E0==E1||E0==E2||E0==E3||E1==E2||E1==E3||E2==E3)> base_type;
+
190 
+
191  using base_type::operator=;
+
192 
+
193  GLM_FUNC_QUALIFIER operator VecType () const { return (*this)(); }
+
194  };
195 
-
196 // #define GLM_CXX11_RANGE_FOR
-
197 // Range-based for N2930 GCC 4.6
-
198 // http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2009/n2930.html
-
199 
-
200 // #define GLM_CXX11_OVERRIDE_CONTROL
-
201 // Explicit virtual overrides N2928 N3206 N3272 GCC 4.7
-
202 // http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2009/n2928.htm
-
203 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3206.htm
-
204 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3272.htm
-
205 
-
206 //
-
207 // Minimal support for garbage collection and reachability-based leak detection N2670 No
-
208 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2670.htm
-
209 
-
210 // #define GLM_CXX11_NOEXCEPT
-
211 // Allowing move constructors to throw [noexcept] N3050 GCC 4.6 (core language only)
-
212 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3050.html
-
213 
-
214 //
-
215 // Defining move special member functions N3053 GCC 4.6
-
216 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3053.html
-
217 
-
218 //
-
219 // Sequence points N2239 Yes
-
220 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2239.html
-
221 
-
222 //
-
223 // Atomic operations N2427 GCC 4.4
-
224 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2239.html
-
225 
-
226 //
-
227 // Strong Compare and Exchange N2748 GCC 4.5
-
228 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2427.html
-
229 
-
230 //
-
231 // Bidirectional Fences N2752 GCC 4.8
-
232 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2752.htm
-
233 
-
234 //
-
235 // Memory model N2429 GCC 4.8
-
236 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2429.htm
-
237 
-
238 //
-
239 // Data-dependency ordering: atomics and memory model N2664 GCC 4.4
-
240 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2664.htm
-
241 
-
242 //
-
243 // Propagating exceptions N2179 GCC 4.4
-
244 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2179.html
-
245 
-
246 //
-
247 // Abandoning a process and at_quick_exit N2440 GCC 4.8
-
248 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2440.htm
-
249 
-
250 //
-
251 // Allow atomics use in signal handlers N2547 Yes
-
252 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2547.htm
-
253 
-
254 //
-
255 // Thread-local storage N2659 GCC 4.8
-
256 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2659.htm
-
257 
-
258 //
-
259 // Dynamic initialization and destruction with concurrency N2660 GCC 4.3
-
260 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2660.htm
-
261 
-
262 //
-
263 // __func__ predefined identifier N2340 GCC 4.3
-
264 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2340.htm
-
265 
-
266 //
-
267 // C99 preprocessor N1653 GCC 4.3
-
268 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1653.htm
-
269 
-
270 //
-
271 // long long N1811 GCC 4.3
-
272 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1811.pdf
+
196 //
+
197 // To prevent the C++ syntax from getting entirely overwhelming, define some alias macros
+
198 //
+
199 #define _GLM_SWIZZLE_TEMPLATE1 template <int N, typename T, precision P, typename V, int E0, int E1, int E2, int E3>
+
200 #define _GLM_SWIZZLE_TEMPLATE2 template <int N, typename T, precision P, typename V, int E0, int E1, int E2, int E3, int F0, int F1, int F2, int F3>
+
201 #define _GLM_SWIZZLE_TYPE1 _swizzle<N, T, P, V, E0, E1, E2, E3>
+
202 #define _GLM_SWIZZLE_TYPE2 _swizzle<N, T, P, V, F0, F1, F2, F3>
+
203 
+
204 //
+
205 // Wrapper for a binary operator (e.g. u.yy + v.zy)
+
206 //
+
207 #define _GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(OPERAND) \
+
208  _GLM_SWIZZLE_TEMPLATE2 \
+
209  GLM_FUNC_QUALIFIER V operator OPERAND ( const _GLM_SWIZZLE_TYPE1& a, const _GLM_SWIZZLE_TYPE2& b) \
+
210  { \
+
211  return a() OPERAND b(); \
+
212  } \
+
213  _GLM_SWIZZLE_TEMPLATE1 \
+
214  GLM_FUNC_QUALIFIER V operator OPERAND ( const _GLM_SWIZZLE_TYPE1& a, const V& b) \
+
215  { \
+
216  return a() OPERAND b; \
+
217  } \
+
218  _GLM_SWIZZLE_TEMPLATE1 \
+
219  GLM_FUNC_QUALIFIER V operator OPERAND ( const V& a, const _GLM_SWIZZLE_TYPE1& b) \
+
220  { \
+
221  return a OPERAND b(); \
+
222  }
+
223 
+
224 //
+
225 // Wrapper for a operand between a swizzle and a binary (e.g. 1.0f - u.xyz)
+
226 //
+
227 #define _GLM_SWIZZLE_SCALAR_BINARY_OPERATOR_IMPLEMENTATION(OPERAND) \
+
228  _GLM_SWIZZLE_TEMPLATE1 \
+
229  GLM_FUNC_QUALIFIER V operator OPERAND ( const _GLM_SWIZZLE_TYPE1& a, const T& b) \
+
230  { \
+
231  return a() OPERAND b; \
+
232  } \
+
233  _GLM_SWIZZLE_TEMPLATE1 \
+
234  GLM_FUNC_QUALIFIER V operator OPERAND ( const T& a, const _GLM_SWIZZLE_TYPE1& b) \
+
235  { \
+
236  return a OPERAND b(); \
+
237  }
+
238 
+
239 //
+
240 // Macro for wrapping a function taking one argument (e.g. abs())
+
241 //
+
242 #define _GLM_SWIZZLE_FUNCTION_1_ARGS(RETURN_TYPE,FUNCTION) \
+
243  _GLM_SWIZZLE_TEMPLATE1 \
+
244  GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1& a) \
+
245  { \
+
246  return FUNCTION(a()); \
+
247  }
+
248 
+
249 //
+
250 // Macro for wrapping a function taking two vector arguments (e.g. dot()).
+
251 //
+
252 #define _GLM_SWIZZLE_FUNCTION_2_ARGS(RETURN_TYPE,FUNCTION) \
+
253  _GLM_SWIZZLE_TEMPLATE2 \
+
254  GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1& a, const _GLM_SWIZZLE_TYPE2& b) \
+
255  { \
+
256  return FUNCTION(a(), b()); \
+
257  } \
+
258  _GLM_SWIZZLE_TEMPLATE1 \
+
259  GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1& a, const _GLM_SWIZZLE_TYPE1& b) \
+
260  { \
+
261  return FUNCTION(a(), b()); \
+
262  } \
+
263  _GLM_SWIZZLE_TEMPLATE1 \
+
264  GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1& a, const typename V& b) \
+
265  { \
+
266  return FUNCTION(a(), b); \
+
267  } \
+
268  _GLM_SWIZZLE_TEMPLATE1 \
+
269  GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const V& a, const _GLM_SWIZZLE_TYPE1& b) \
+
270  { \
+
271  return FUNCTION(a, b()); \
+
272  }
273 
-
274 //
-
275 // Extended integral types N1988 Yes
-
276 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1988.pdf
-
277 
-
278 #if(GLM_COMPILER & GLM_COMPILER_GCC)
-
279 
-
280 # if(GLM_COMPILER >= GLM_COMPILER_GCC43)
-
281 # define GLM_CXX11_STATIC_ASSERT
-
282 # endif
-
283 
-
284 #elif(GLM_COMPILER & GLM_COMPILER_CLANG)
-
285 # if(__has_feature(cxx_exceptions))
-
286 # define GLM_CXX98_EXCEPTIONS
-
287 # endif
-
288 
-
289 # if(__has_feature(cxx_rtti))
-
290 # define GLM_CXX98_RTTI
-
291 # endif
-
292 
-
293 # if(__has_feature(cxx_access_control_sfinae))
-
294 # define GLM_CXX11_ACCESS_CONTROL_SFINAE
-
295 # endif
-
296 
-
297 # if(__has_feature(cxx_alias_templates))
-
298 # define GLM_CXX11_ALIAS_TEMPLATE
-
299 # endif
-
300 
-
301 # if(__has_feature(cxx_alignas))
-
302 # define GLM_CXX11_ALIGNAS
-
303 # endif
-
304 
-
305 # if(__has_feature(cxx_attributes))
-
306 # define GLM_CXX11_ATTRIBUTES
-
307 # endif
-
308 
-
309 # if(__has_feature(cxx_constexpr))
-
310 # define GLM_CXX11_CONSTEXPR
-
311 # endif
-
312 
-
313 # if(__has_feature(cxx_decltype))
-
314 # define GLM_CXX11_DECLTYPE
-
315 # endif
-
316 
-
317 # if(__has_feature(cxx_default_function_template_args))
-
318 # define GLM_CXX11_DEFAULT_FUNCTION_TEMPLATE_ARGS
-
319 # endif
-
320 
-
321 # if(__has_feature(cxx_defaulted_functions))
-
322 # define GLM_CXX11_DEFAULTED_FUNCTIONS
-
323 # endif
-
324 
-
325 # if(__has_feature(cxx_delegating_constructors))
-
326 # define GLM_CXX11_DELEGATING_CONSTRUCTORS
-
327 # endif
-
328 
-
329 # if(__has_feature(cxx_deleted_functions))
-
330 # define GLM_CXX11_DELETED_FUNCTIONS
-
331 # endif
-
332 
-
333 # if(__has_feature(cxx_explicit_conversions))
-
334 # define GLM_CXX11_EXPLICIT_CONVERSIONS
-
335 # endif
-
336 
-
337 # if(__has_feature(cxx_generalized_initializers))
-
338 # define GLM_CXX11_GENERALIZED_INITIALIZERS
-
339 # endif
-
340 
-
341 # if(__has_feature(cxx_implicit_moves))
-
342 # define GLM_CXX11_IMPLICIT_MOVES
-
343 # endif
-
344 
-
345 # if(__has_feature(cxx_inheriting_constructors))
-
346 # define GLM_CXX11_INHERITING_CONSTRUCTORS
-
347 # endif
-
348 
-
349 # if(__has_feature(cxx_inline_namespaces))
-
350 # define GLM_CXX11_INLINE_NAMESPACES
-
351 # endif
-
352 
-
353 # if(__has_feature(cxx_lambdas))
-
354 # define GLM_CXX11_LAMBDAS
-
355 # endif
-
356 
-
357 # if(__has_feature(cxx_local_type_template_args))
-
358 # define GLM_CXX11_LOCAL_TYPE_TEMPLATE_ARGS
-
359 # endif
-
360 
-
361 # if(__has_feature(cxx_noexcept))
-
362 # define GLM_CXX11_NOEXCEPT
-
363 # endif
-
364 
-
365 # if(__has_feature(cxx_nonstatic_member_init))
-
366 # define GLM_CXX11_NONSTATIC_MEMBER_INIT
-
367 # endif
-
368 
-
369 # if(__has_feature(cxx_nullptr))
-
370 # define GLM_CXX11_NULLPTR
-
371 # endif
-
372 
-
373 # if(__has_feature(cxx_override_control))
-
374 # define GLM_CXX11_OVERRIDE_CONTROL
-
375 # endif
-
376 
-
377 # if(__has_feature(cxx_reference_qualified_functions))
-
378 # define GLM_CXX11_REFERENCE_QUALIFIED_FUNCTIONS
-
379 # endif
-
380 
-
381 # if(__has_feature(cxx_range_for))
-
382 # define GLM_CXX11_RANGE_FOR
-
383 # endif
-
384 
-
385 # if(__has_feature(cxx_raw_string_literals))
-
386 # define GLM_CXX11_RAW_STRING_LITERALS
-
387 # endif
-
388 
-
389 # if(__has_feature(cxx_rvalue_references))
-
390 # define GLM_CXX11_RVALUE_REFERENCES
-
391 # endif
-
392 
-
393 # if(__has_feature(cxx_static_assert))
-
394 # define GLM_CXX11_STATIC_ASSERT
-
395 # endif
-
396 
-
397 # if(__has_feature(cxx_auto_type))
-
398 # define GLM_CXX11_AUTO_TYPE
-
399 # endif
-
400 
-
401 # if(__has_feature(cxx_strong_enums))
-
402 # define GLM_CXX11_STRONG_ENUMS
-
403 # endif
-
404 
-
405 # if(__has_feature(cxx_trailing_return))
-
406 # define GLM_CXX11_TRAILING_RETURN
-
407 # endif
-
408 
-
409 # if(__has_feature(cxx_unicode_literals))
-
410 # define GLM_CXX11_UNICODE_LITERALS
-
411 # endif
-
412 
-
413 # if(__has_feature(cxx_unrestricted_unions))
-
414 # define GLM_CXX11_UNRESTRICTED_UNIONS
-
415 # endif
-
416 
-
417 # if(__has_feature(cxx_user_literals))
-
418 # define GLM_CXX11_USER_LITERALS
-
419 # endif
-
420 
-
421 # if(__has_feature(cxx_variadic_templates))
-
422 # define GLM_CXX11_VARIADIC_TEMPLATES
-
423 # endif
-
424 
-
425 #endif//(GLM_COMPILER & GLM_COMPILER_CLANG)
-
426 
-
427 #endif//glm_core_features
+
274 //
+
275 // Macro for wrapping a function take 2 vec arguments followed by a scalar (e.g. mix()).
+
276 //
+
277 #define _GLM_SWIZZLE_FUNCTION_2_ARGS_SCALAR(RETURN_TYPE,FUNCTION) \
+
278  _GLM_SWIZZLE_TEMPLATE2 \
+
279  GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1& a, const _GLM_SWIZZLE_TYPE2& b, const T& c) \
+
280  { \
+
281  return FUNCTION(a(), b(), c); \
+
282  } \
+
283  _GLM_SWIZZLE_TEMPLATE1 \
+
284  GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1& a, const _GLM_SWIZZLE_TYPE1& b, const T& c) \
+
285  { \
+
286  return FUNCTION(a(), b(), c); \
+
287  } \
+
288  _GLM_SWIZZLE_TEMPLATE1 \
+
289  GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1& a, const typename S0::vec_type& b, const T& c)\
+
290  { \
+
291  return FUNCTION(a(), b, c); \
+
292  } \
+
293  _GLM_SWIZZLE_TEMPLATE1 \
+
294  GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const typename V& a, const _GLM_SWIZZLE_TYPE1& b, const T& c) \
+
295  { \
+
296  return FUNCTION(a, b(), c); \
+
297  }
+
298 
+
299 }//namespace detail
+
300 }//namespace glm
+
301 
+
302 namespace glm
+
303 {
+
304  namespace detail
+
305  {
+
306  _GLM_SWIZZLE_SCALAR_BINARY_OPERATOR_IMPLEMENTATION(-)
+
307  _GLM_SWIZZLE_SCALAR_BINARY_OPERATOR_IMPLEMENTATION(*)
+
308  _GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(+)
+
309  _GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(-)
+
310  _GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(*)
+
311  _GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(/)
+
312  }
+
313 
+
314  //
+
315  // Swizzles are distinct types from the unswizzled type. The below macros will
+
316  // provide template specializations for the swizzle types for the given functions
+
317  // so that the compiler does not have any ambiguity to choosing how to handle
+
318  // the function.
+
319  //
+
320  // The alternative is to use the operator()() when calling the function in order
+
321  // to explicitly convert the swizzled type to the unswizzled type.
+
322  //
+
323 
+
324  //_GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type, abs);
+
325  //_GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type, acos);
+
326  //_GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type, acosh);
+
327  //_GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type, all);
+
328  //_GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type, any);
+
329 
+
330  //_GLM_SWIZZLE_FUNCTION_2_ARGS(value_type, dot);
+
331  //_GLM_SWIZZLE_FUNCTION_2_ARGS(vec_type, cross);
+
332  //_GLM_SWIZZLE_FUNCTION_2_ARGS(vec_type, step);
+
333  //_GLM_SWIZZLE_FUNCTION_2_ARGS_SCALAR(vec_type, mix);
+
334 }
+
335 
+
336 #define _GLM_SWIZZLE2_2_MEMBERS(T, P, V, E0,E1) \
+
337  struct { detail::_swizzle<2, T, P, V<T, P>, 0,0,-1,-2> E0 ## E0; }; \
+
338  struct { detail::_swizzle<2, T, P, V<T, P>, 0,1,-1,-2> E0 ## E1; }; \
+
339  struct { detail::_swizzle<2, T, P, V<T, P>, 1,0,-1,-2> E1 ## E0; }; \
+
340  struct { detail::_swizzle<2, T, P, V<T, P>, 1,1,-1,-2> E1 ## E1; };
+
341 
+
342 #define _GLM_SWIZZLE2_3_MEMBERS(T, P, V, E0,E1) \
+
343  struct { detail::_swizzle<3,T, P, V<T, P>, 0,0,0,-1> E0 ## E0 ## E0; }; \
+
344  struct { detail::_swizzle<3,T, P, V<T, P>, 0,0,1,-1> E0 ## E0 ## E1; }; \
+
345  struct { detail::_swizzle<3,T, P, V<T, P>, 0,1,0,-1> E0 ## E1 ## E0; }; \
+
346  struct { detail::_swizzle<3,T, P, V<T, P>, 0,1,1,-1> E0 ## E1 ## E1; }; \
+
347  struct { detail::_swizzle<3,T, P, V<T, P>, 1,0,0,-1> E1 ## E0 ## E0; }; \
+
348  struct { detail::_swizzle<3,T, P, V<T, P>, 1,0,1,-1> E1 ## E0 ## E1; }; \
+
349  struct { detail::_swizzle<3,T, P, V<T, P>, 1,1,0,-1> E1 ## E1 ## E0; }; \
+
350  struct { detail::_swizzle<3,T, P, V<T, P>, 1,1,1,-1> E1 ## E1 ## E1; };
+
351 
+
352 #define _GLM_SWIZZLE2_4_MEMBERS(T, P, V, E0,E1) \
+
353  struct { detail::_swizzle<4,T, P, V<T, P>, 0,0,0,0> E0 ## E0 ## E0 ## E0; }; \
+
354  struct { detail::_swizzle<4,T, P, V<T, P>, 0,0,0,1> E0 ## E0 ## E0 ## E1; }; \
+
355  struct { detail::_swizzle<4,T, P, V<T, P>, 0,0,1,0> E0 ## E0 ## E1 ## E0; }; \
+
356  struct { detail::_swizzle<4,T, P, V<T, P>, 0,0,1,1> E0 ## E0 ## E1 ## E1; }; \
+
357  struct { detail::_swizzle<4,T, P, V<T, P>, 0,1,0,0> E0 ## E1 ## E0 ## E0; }; \
+
358  struct { detail::_swizzle<4,T, P, V<T, P>, 0,1,0,1> E0 ## E1 ## E0 ## E1; }; \
+
359  struct { detail::_swizzle<4,T, P, V<T, P>, 0,1,1,0> E0 ## E1 ## E1 ## E0; }; \
+
360  struct { detail::_swizzle<4,T, P, V<T, P>, 0,1,1,1> E0 ## E1 ## E1 ## E1; }; \
+
361  struct { detail::_swizzle<4,T, P, V<T, P>, 1,0,0,0> E1 ## E0 ## E0 ## E0; }; \
+
362  struct { detail::_swizzle<4,T, P, V<T, P>, 1,0,0,1> E1 ## E0 ## E0 ## E1; }; \
+
363  struct { detail::_swizzle<4,T, P, V<T, P>, 1,0,1,0> E1 ## E0 ## E1 ## E0; }; \
+
364  struct { detail::_swizzle<4,T, P, V<T, P>, 1,0,1,1> E1 ## E0 ## E1 ## E1; }; \
+
365  struct { detail::_swizzle<4,T, P, V<T, P>, 1,1,0,0> E1 ## E1 ## E0 ## E0; }; \
+
366  struct { detail::_swizzle<4,T, P, V<T, P>, 1,1,0,1> E1 ## E1 ## E0 ## E1; }; \
+
367  struct { detail::_swizzle<4,T, P, V<T, P>, 1,1,1,0> E1 ## E1 ## E1 ## E0; }; \
+
368  struct { detail::_swizzle<4,T, P, V<T, P>, 1,1,1,1> E1 ## E1 ## E1 ## E1; };
+
369 
+
370 #define _GLM_SWIZZLE3_2_MEMBERS(T, P, V, E0,E1,E2) \
+
371  struct { detail::_swizzle<2,T, P, V<T, P>, 0,0,-1,-2> E0 ## E0; }; \
+
372  struct { detail::_swizzle<2,T, P, V<T, P>, 0,1,-1,-2> E0 ## E1; }; \
+
373  struct { detail::_swizzle<2,T, P, V<T, P>, 0,2,-1,-2> E0 ## E2; }; \
+
374  struct { detail::_swizzle<2,T, P, V<T, P>, 1,0,-1,-2> E1 ## E0; }; \
+
375  struct { detail::_swizzle<2,T, P, V<T, P>, 1,1,-1,-2> E1 ## E1; }; \
+
376  struct { detail::_swizzle<2,T, P, V<T, P>, 1,2,-1,-2> E1 ## E2; }; \
+
377  struct { detail::_swizzle<2,T, P, V<T, P>, 2,0,-1,-2> E2 ## E0; }; \
+
378  struct { detail::_swizzle<2,T, P, V<T, P>, 2,1,-1,-2> E2 ## E1; }; \
+
379  struct { detail::_swizzle<2,T, P, V<T, P>, 2,2,-1,-2> E2 ## E2; };
+
380 
+
381 #define _GLM_SWIZZLE3_3_MEMBERS(T, P, V ,E0,E1,E2) \
+
382  struct { detail::_swizzle<3,T,P, V<T, P>, 0,0,0,-1> E0 ## E0 ## E0; }; \
+
383  struct { detail::_swizzle<3,T,P, V<T, P>, 0,0,1,-1> E0 ## E0 ## E1; }; \
+
384  struct { detail::_swizzle<3,T,P, V<T, P>, 0,0,2,-1> E0 ## E0 ## E2; }; \
+
385  struct { detail::_swizzle<3,T,P, V<T, P>, 0,1,0,-1> E0 ## E1 ## E0; }; \
+
386  struct { detail::_swizzle<3,T,P, V<T, P>, 0,1,1,-1> E0 ## E1 ## E1; }; \
+
387  struct { detail::_swizzle<3,T,P, V<T, P>, 0,1,2,-1> E0 ## E1 ## E2; }; \
+
388  struct { detail::_swizzle<3,T,P, V<T, P>, 0,2,0,-1> E0 ## E2 ## E0; }; \
+
389  struct { detail::_swizzle<3,T,P, V<T, P>, 0,2,1,-1> E0 ## E2 ## E1; }; \
+
390  struct { detail::_swizzle<3,T,P, V<T, P>, 0,2,2,-1> E0 ## E2 ## E2; }; \
+
391  struct { detail::_swizzle<3,T,P, V<T, P>, 1,0,0,-1> E1 ## E0 ## E0; }; \
+
392  struct { detail::_swizzle<3,T,P, V<T, P>, 1,0,1,-1> E1 ## E0 ## E1; }; \
+
393  struct { detail::_swizzle<3,T,P, V<T, P>, 1,0,2,-1> E1 ## E0 ## E2; }; \
+
394  struct { detail::_swizzle<3,T,P, V<T, P>, 1,1,0,-1> E1 ## E1 ## E0; }; \
+
395  struct { detail::_swizzle<3,T,P, V<T, P>, 1,1,1,-1> E1 ## E1 ## E1; }; \
+
396  struct { detail::_swizzle<3,T,P, V<T, P>, 1,1,2,-1> E1 ## E1 ## E2; }; \
+
397  struct { detail::_swizzle<3,T,P, V<T, P>, 1,2,0,-1> E1 ## E2 ## E0; }; \
+
398  struct { detail::_swizzle<3,T,P, V<T, P>, 1,2,1,-1> E1 ## E2 ## E1; }; \
+
399  struct { detail::_swizzle<3,T,P, V<T, P>, 1,2,2,-1> E1 ## E2 ## E2; }; \
+
400  struct { detail::_swizzle<3,T,P, V<T, P>, 2,0,0,-1> E2 ## E0 ## E0; }; \
+
401  struct { detail::_swizzle<3,T,P, V<T, P>, 2,0,1,-1> E2 ## E0 ## E1; }; \
+
402  struct { detail::_swizzle<3,T,P, V<T, P>, 2,0,2,-1> E2 ## E0 ## E2; }; \
+
403  struct { detail::_swizzle<3,T,P, V<T, P>, 2,1,0,-1> E2 ## E1 ## E0; }; \
+
404  struct { detail::_swizzle<3,T,P, V<T, P>, 2,1,1,-1> E2 ## E1 ## E1; }; \
+
405  struct { detail::_swizzle<3,T,P, V<T, P>, 2,1,2,-1> E2 ## E1 ## E2; }; \
+
406  struct { detail::_swizzle<3,T,P, V<T, P>, 2,2,0,-1> E2 ## E2 ## E0; }; \
+
407  struct { detail::_swizzle<3,T,P, V<T, P>, 2,2,1,-1> E2 ## E2 ## E1; }; \
+
408  struct { detail::_swizzle<3,T,P, V<T, P>, 2,2,2,-1> E2 ## E2 ## E2; };
+
409 
+
410 #define _GLM_SWIZZLE3_4_MEMBERS(T, P, V, E0,E1,E2) \
+
411  struct { detail::_swizzle<4,T, P, V<T, P>, 0,0,0,0> E0 ## E0 ## E0 ## E0; }; \
+
412  struct { detail::_swizzle<4,T, P, V<T, P>, 0,0,0,1> E0 ## E0 ## E0 ## E1; }; \
+
413  struct { detail::_swizzle<4,T, P, V<T, P>, 0,0,0,2> E0 ## E0 ## E0 ## E2; }; \
+
414  struct { detail::_swizzle<4,T, P, V<T, P>, 0,0,1,0> E0 ## E0 ## E1 ## E0; }; \
+
415  struct { detail::_swizzle<4,T, P, V<T, P>, 0,0,1,1> E0 ## E0 ## E1 ## E1; }; \
+
416  struct { detail::_swizzle<4,T, P, V<T, P>, 0,0,1,2> E0 ## E0 ## E1 ## E2; }; \
+
417  struct { detail::_swizzle<4,T, P, V<T, P>, 0,0,2,0> E0 ## E0 ## E2 ## E0; }; \
+
418  struct { detail::_swizzle<4,T, P, V<T, P>, 0,0,2,1> E0 ## E0 ## E2 ## E1; }; \
+
419  struct { detail::_swizzle<4,T, P, V<T, P>, 0,0,2,2> E0 ## E0 ## E2 ## E2; }; \
+
420  struct { detail::_swizzle<4,T, P, V<T, P>, 0,1,0,0> E0 ## E1 ## E0 ## E0; }; \
+
421  struct { detail::_swizzle<4,T, P, V<T, P>, 0,1,0,1> E0 ## E1 ## E0 ## E1; }; \
+
422  struct { detail::_swizzle<4,T, P, V<T, P>, 0,1,0,2> E0 ## E1 ## E0 ## E2; }; \
+
423  struct { detail::_swizzle<4,T, P, V<T, P>, 0,1,1,0> E0 ## E1 ## E1 ## E0; }; \
+
424  struct { detail::_swizzle<4,T, P, V<T, P>, 0,1,1,1> E0 ## E1 ## E1 ## E1; }; \
+
425  struct { detail::_swizzle<4,T, P, V<T, P>, 0,1,1,2> E0 ## E1 ## E1 ## E2; }; \
+
426  struct { detail::_swizzle<4,T, P, V<T, P>, 0,1,2,0> E0 ## E1 ## E2 ## E0; }; \
+
427  struct { detail::_swizzle<4,T, P, V<T, P>, 0,1,2,1> E0 ## E1 ## E2 ## E1; }; \
+
428  struct { detail::_swizzle<4,T, P, V<T, P>, 0,1,2,2> E0 ## E1 ## E2 ## E2; }; \
+
429  struct { detail::_swizzle<4,T, P, V<T, P>, 0,2,0,0> E0 ## E2 ## E0 ## E0; }; \
+
430  struct { detail::_swizzle<4,T, P, V<T, P>, 0,2,0,1> E0 ## E2 ## E0 ## E1; }; \
+
431  struct { detail::_swizzle<4,T, P, V<T, P>, 0,2,0,2> E0 ## E2 ## E0 ## E2; }; \
+
432  struct { detail::_swizzle<4,T, P, V<T, P>, 0,2,1,0> E0 ## E2 ## E1 ## E0; }; \
+
433  struct { detail::_swizzle<4,T, P, V<T, P>, 0,2,1,1> E0 ## E2 ## E1 ## E1; }; \
+
434  struct { detail::_swizzle<4,T, P, V<T, P>, 0,2,1,2> E0 ## E2 ## E1 ## E2; }; \
+
435  struct { detail::_swizzle<4,T, P, V<T, P>, 0,2,2,0> E0 ## E2 ## E2 ## E0; }; \
+
436  struct { detail::_swizzle<4,T, P, V<T, P>, 0,2,2,1> E0 ## E2 ## E2 ## E1; }; \
+
437  struct { detail::_swizzle<4,T, P, V<T, P>, 0,2,2,2> E0 ## E2 ## E2 ## E2; }; \
+
438  struct { detail::_swizzle<4,T, P, V<T, P>, 1,0,0,0> E1 ## E0 ## E0 ## E0; }; \
+
439  struct { detail::_swizzle<4,T, P, V<T, P>, 1,0,0,1> E1 ## E0 ## E0 ## E1; }; \
+
440  struct { detail::_swizzle<4,T, P, V<T, P>, 1,0,0,2> E1 ## E0 ## E0 ## E2; }; \
+
441  struct { detail::_swizzle<4,T, P, V<T, P>, 1,0,1,0> E1 ## E0 ## E1 ## E0; }; \
+
442  struct { detail::_swizzle<4,T, P, V<T, P>, 1,0,1,1> E1 ## E0 ## E1 ## E1; }; \
+
443  struct { detail::_swizzle<4,T, P, V<T, P>, 1,0,1,2> E1 ## E0 ## E1 ## E2; }; \
+
444  struct { detail::_swizzle<4,T, P, V<T, P>, 1,0,2,0> E1 ## E0 ## E2 ## E0; }; \
+
445  struct { detail::_swizzle<4,T, P, V<T, P>, 1,0,2,1> E1 ## E0 ## E2 ## E1; }; \
+
446  struct { detail::_swizzle<4,T, P, V<T, P>, 1,0,2,2> E1 ## E0 ## E2 ## E2; }; \
+
447  struct { detail::_swizzle<4,T, P, V<T, P>, 1,1,0,0> E1 ## E1 ## E0 ## E0; }; \
+
448  struct { detail::_swizzle<4,T, P, V<T, P>, 1,1,0,1> E1 ## E1 ## E0 ## E1; }; \
+
449  struct { detail::_swizzle<4,T, P, V<T, P>, 1,1,0,2> E1 ## E1 ## E0 ## E2; }; \
+
450  struct { detail::_swizzle<4,T, P, V<T, P>, 1,1,1,0> E1 ## E1 ## E1 ## E0; }; \
+
451  struct { detail::_swizzle<4,T, P, V<T, P>, 1,1,1,1> E1 ## E1 ## E1 ## E1; }; \
+
452  struct { detail::_swizzle<4,T, P, V<T, P>, 1,1,1,2> E1 ## E1 ## E1 ## E2; }; \
+
453  struct { detail::_swizzle<4,T, P, V<T, P>, 1,1,2,0> E1 ## E1 ## E2 ## E0; }; \
+
454  struct { detail::_swizzle<4,T, P, V<T, P>, 1,1,2,1> E1 ## E1 ## E2 ## E1; }; \
+
455  struct { detail::_swizzle<4,T, P, V<T, P>, 1,1,2,2> E1 ## E1 ## E2 ## E2; }; \
+
456  struct { detail::_swizzle<4,T, P, V<T, P>, 1,2,0,0> E1 ## E2 ## E0 ## E0; }; \
+
457  struct { detail::_swizzle<4,T, P, V<T, P>, 1,2,0,1> E1 ## E2 ## E0 ## E1; }; \
+
458  struct { detail::_swizzle<4,T, P, V<T, P>, 1,2,0,2> E1 ## E2 ## E0 ## E2; }; \
+
459  struct { detail::_swizzle<4,T, P, V<T, P>, 1,2,1,0> E1 ## E2 ## E1 ## E0; }; \
+
460  struct { detail::_swizzle<4,T, P, V<T, P>, 1,2,1,1> E1 ## E2 ## E1 ## E1; }; \
+
461  struct { detail::_swizzle<4,T, P, V<T, P>, 1,2,1,2> E1 ## E2 ## E1 ## E2; }; \
+
462  struct { detail::_swizzle<4,T, P, V<T, P>, 1,2,2,0> E1 ## E2 ## E2 ## E0; }; \
+
463  struct { detail::_swizzle<4,T, P, V<T, P>, 1,2,2,1> E1 ## E2 ## E2 ## E1; }; \
+
464  struct { detail::_swizzle<4,T, P, V<T, P>, 1,2,2,2> E1 ## E2 ## E2 ## E2; }; \
+
465  struct { detail::_swizzle<4,T, P, V<T, P>, 2,0,0,0> E2 ## E0 ## E0 ## E0; }; \
+
466  struct { detail::_swizzle<4,T, P, V<T, P>, 2,0,0,1> E2 ## E0 ## E0 ## E1; }; \
+
467  struct { detail::_swizzle<4,T, P, V<T, P>, 2,0,0,2> E2 ## E0 ## E0 ## E2; }; \
+
468  struct { detail::_swizzle<4,T, P, V<T, P>, 2,0,1,0> E2 ## E0 ## E1 ## E0; }; \
+
469  struct { detail::_swizzle<4,T, P, V<T, P>, 2,0,1,1> E2 ## E0 ## E1 ## E1; }; \
+
470  struct { detail::_swizzle<4,T, P, V<T, P>, 2,0,1,2> E2 ## E0 ## E1 ## E2; }; \
+
471  struct { detail::_swizzle<4,T, P, V<T, P>, 2,0,2,0> E2 ## E0 ## E2 ## E0; }; \
+
472  struct { detail::_swizzle<4,T, P, V<T, P>, 2,0,2,1> E2 ## E0 ## E2 ## E1; }; \
+
473  struct { detail::_swizzle<4,T, P, V<T, P>, 2,0,2,2> E2 ## E0 ## E2 ## E2; }; \
+
474  struct { detail::_swizzle<4,T, P, V<T, P>, 2,1,0,0> E2 ## E1 ## E0 ## E0; }; \
+
475  struct { detail::_swizzle<4,T, P, V<T, P>, 2,1,0,1> E2 ## E1 ## E0 ## E1; }; \
+
476  struct { detail::_swizzle<4,T, P, V<T, P>, 2,1,0,2> E2 ## E1 ## E0 ## E2; }; \
+
477  struct { detail::_swizzle<4,T, P, V<T, P>, 2,1,1,0> E2 ## E1 ## E1 ## E0; }; \
+
478  struct { detail::_swizzle<4,T, P, V<T, P>, 2,1,1,1> E2 ## E1 ## E1 ## E1; }; \
+
479  struct { detail::_swizzle<4,T, P, V<T, P>, 2,1,1,2> E2 ## E1 ## E1 ## E2; }; \
+
480  struct { detail::_swizzle<4,T, P, V<T, P>, 2,1,2,0> E2 ## E1 ## E2 ## E0; }; \
+
481  struct { detail::_swizzle<4,T, P, V<T, P>, 2,1,2,1> E2 ## E1 ## E2 ## E1; }; \
+
482  struct { detail::_swizzle<4,T, P, V<T, P>, 2,1,2,2> E2 ## E1 ## E2 ## E2; }; \
+
483  struct { detail::_swizzle<4,T, P, V<T, P>, 2,2,0,0> E2 ## E2 ## E0 ## E0; }; \
+
484  struct { detail::_swizzle<4,T, P, V<T, P>, 2,2,0,1> E2 ## E2 ## E0 ## E1; }; \
+
485  struct { detail::_swizzle<4,T, P, V<T, P>, 2,2,0,2> E2 ## E2 ## E0 ## E2; }; \
+
486  struct { detail::_swizzle<4,T, P, V<T, P>, 2,2,1,0> E2 ## E2 ## E1 ## E0; }; \
+
487  struct { detail::_swizzle<4,T, P, V<T, P>, 2,2,1,1> E2 ## E2 ## E1 ## E1; }; \
+
488  struct { detail::_swizzle<4,T, P, V<T, P>, 2,2,1,2> E2 ## E2 ## E1 ## E2; }; \
+
489  struct { detail::_swizzle<4,T, P, V<T, P>, 2,2,2,0> E2 ## E2 ## E2 ## E0; }; \
+
490  struct { detail::_swizzle<4,T, P, V<T, P>, 2,2,2,1> E2 ## E2 ## E2 ## E1; }; \
+
491  struct { detail::_swizzle<4,T, P, V<T, P>, 2,2,2,2> E2 ## E2 ## E2 ## E2; };
+
492 
+
493 #define _GLM_SWIZZLE4_2_MEMBERS(T, P, V, E0,E1,E2,E3) \
+
494  struct { detail::_swizzle<2,T, P, V<T, P>, 0,0,-1,-2> E0 ## E0; }; \
+
495  struct { detail::_swizzle<2,T, P, V<T, P>, 0,1,-1,-2> E0 ## E1; }; \
+
496  struct { detail::_swizzle<2,T, P, V<T, P>, 0,2,-1,-2> E0 ## E2; }; \
+
497  struct { detail::_swizzle<2,T, P, V<T, P>, 0,3,-1,-2> E0 ## E3; }; \
+
498  struct { detail::_swizzle<2,T, P, V<T, P>, 1,0,-1,-2> E1 ## E0; }; \
+
499  struct { detail::_swizzle<2,T, P, V<T, P>, 1,1,-1,-2> E1 ## E1; }; \
+
500  struct { detail::_swizzle<2,T, P, V<T, P>, 1,2,-1,-2> E1 ## E2; }; \
+
501  struct { detail::_swizzle<2,T, P, V<T, P>, 1,3,-1,-2> E1 ## E3; }; \
+
502  struct { detail::_swizzle<2,T, P, V<T, P>, 2,0,-1,-2> E2 ## E0; }; \
+
503  struct { detail::_swizzle<2,T, P, V<T, P>, 2,1,-1,-2> E2 ## E1; }; \
+
504  struct { detail::_swizzle<2,T, P, V<T, P>, 2,2,-1,-2> E2 ## E2; }; \
+
505  struct { detail::_swizzle<2,T, P, V<T, P>, 2,3,-1,-2> E2 ## E3; }; \
+
506  struct { detail::_swizzle<2,T, P, V<T, P>, 3,0,-1,-2> E3 ## E0; }; \
+
507  struct { detail::_swizzle<2,T, P, V<T, P>, 3,1,-1,-2> E3 ## E1; }; \
+
508  struct { detail::_swizzle<2,T, P, V<T, P>, 3,2,-1,-2> E3 ## E2; }; \
+
509  struct { detail::_swizzle<2,T, P, V<T, P>, 3,3,-1,-2> E3 ## E3; };
+
510 
+
511 #define _GLM_SWIZZLE4_3_MEMBERS(T,P, V, E0,E1,E2,E3) \
+
512  struct { detail::_swizzle<3,T,P, V<T, P>, 0,0,0,-1> E0 ## E0 ## E0; }; \
+
513  struct { detail::_swizzle<3,T,P, V<T, P>, 0,0,1,-1> E0 ## E0 ## E1; }; \
+
514  struct { detail::_swizzle<3,T,P, V<T, P>, 0,0,2,-1> E0 ## E0 ## E2; }; \
+
515  struct { detail::_swizzle<3,T,P, V<T, P>, 0,0,3,-1> E0 ## E0 ## E3; }; \
+
516  struct { detail::_swizzle<3,T,P, V<T, P>, 0,1,0,-1> E0 ## E1 ## E0; }; \
+
517  struct { detail::_swizzle<3,T,P, V<T, P>, 0,1,1,-1> E0 ## E1 ## E1; }; \
+
518  struct { detail::_swizzle<3,T,P, V<T, P>, 0,1,2,-1> E0 ## E1 ## E2; }; \
+
519  struct { detail::_swizzle<3,T,P, V<T, P>, 0,1,3,-1> E0 ## E1 ## E3; }; \
+
520  struct { detail::_swizzle<3,T,P, V<T, P>, 0,2,0,-1> E0 ## E2 ## E0; }; \
+
521  struct { detail::_swizzle<3,T,P, V<T, P>, 0,2,1,-1> E0 ## E2 ## E1; }; \
+
522  struct { detail::_swizzle<3,T,P, V<T, P>, 0,2,2,-1> E0 ## E2 ## E2; }; \
+
523  struct { detail::_swizzle<3,T,P, V<T, P>, 0,2,3,-1> E0 ## E2 ## E3; }; \
+
524  struct { detail::_swizzle<3,T,P, V<T, P>, 0,3,0,-1> E0 ## E3 ## E0; }; \
+
525  struct { detail::_swizzle<3,T,P, V<T, P>, 0,3,1,-1> E0 ## E3 ## E1; }; \
+
526  struct { detail::_swizzle<3,T,P, V<T, P>, 0,3,2,-1> E0 ## E3 ## E2; }; \
+
527  struct { detail::_swizzle<3,T,P, V<T, P>, 0,3,3,-1> E0 ## E3 ## E3; }; \
+
528  struct { detail::_swizzle<3,T,P, V<T, P>, 1,0,0,-1> E1 ## E0 ## E0; }; \
+
529  struct { detail::_swizzle<3,T,P, V<T, P>, 1,0,1,-1> E1 ## E0 ## E1; }; \
+
530  struct { detail::_swizzle<3,T,P, V<T, P>, 1,0,2,-1> E1 ## E0 ## E2; }; \
+
531  struct { detail::_swizzle<3,T,P, V<T, P>, 1,0,3,-1> E1 ## E0 ## E3; }; \
+
532  struct { detail::_swizzle<3,T,P, V<T, P>, 1,1,0,-1> E1 ## E1 ## E0; }; \
+
533  struct { detail::_swizzle<3,T,P, V<T, P>, 1,1,1,-1> E1 ## E1 ## E1; }; \
+
534  struct { detail::_swizzle<3,T,P, V<T, P>, 1,1,2,-1> E1 ## E1 ## E2; }; \
+
535  struct { detail::_swizzle<3,T,P, V<T, P>, 1,1,3,-1> E1 ## E1 ## E3; }; \
+
536  struct { detail::_swizzle<3,T,P, V<T, P>, 1,2,0,-1> E1 ## E2 ## E0; }; \
+
537  struct { detail::_swizzle<3,T,P, V<T, P>, 1,2,1,-1> E1 ## E2 ## E1; }; \
+
538  struct { detail::_swizzle<3,T,P, V<T, P>, 1,2,2,-1> E1 ## E2 ## E2; }; \
+
539  struct { detail::_swizzle<3,T,P, V<T, P>, 1,2,3,-1> E1 ## E2 ## E3; }; \
+
540  struct { detail::_swizzle<3,T,P, V<T, P>, 1,3,0,-1> E1 ## E3 ## E0; }; \
+
541  struct { detail::_swizzle<3,T,P, V<T, P>, 1,3,1,-1> E1 ## E3 ## E1; }; \
+
542  struct { detail::_swizzle<3,T,P, V<T, P>, 1,3,2,-1> E1 ## E3 ## E2; }; \
+
543  struct { detail::_swizzle<3,T,P, V<T, P>, 1,3,3,-1> E1 ## E3 ## E3; }; \
+
544  struct { detail::_swizzle<3,T,P, V<T, P>, 2,0,0,-1> E2 ## E0 ## E0; }; \
+
545  struct { detail::_swizzle<3,T,P, V<T, P>, 2,0,1,-1> E2 ## E0 ## E1; }; \
+
546  struct { detail::_swizzle<3,T,P, V<T, P>, 2,0,2,-1> E2 ## E0 ## E2; }; \
+
547  struct { detail::_swizzle<3,T,P, V<T, P>, 2,0,3,-1> E2 ## E0 ## E3; }; \
+
548  struct { detail::_swizzle<3,T,P, V<T, P>, 2,1,0,-1> E2 ## E1 ## E0; }; \
+
549  struct { detail::_swizzle<3,T,P, V<T, P>, 2,1,1,-1> E2 ## E1 ## E1; }; \
+
550  struct { detail::_swizzle<3,T,P, V<T, P>, 2,1,2,-1> E2 ## E1 ## E2; }; \
+
551  struct { detail::_swizzle<3,T,P, V<T, P>, 2,1,3,-1> E2 ## E1 ## E3; }; \
+
552  struct { detail::_swizzle<3,T,P, V<T, P>, 2,2,0,-1> E2 ## E2 ## E0; }; \
+
553  struct { detail::_swizzle<3,T,P, V<T, P>, 2,2,1,-1> E2 ## E2 ## E1; }; \
+
554  struct { detail::_swizzle<3,T,P, V<T, P>, 2,2,2,-1> E2 ## E2 ## E2; }; \
+
555  struct { detail::_swizzle<3,T,P, V<T, P>, 2,2,3,-1> E2 ## E2 ## E3; }; \
+
556  struct { detail::_swizzle<3,T,P, V<T, P>, 2,3,0,-1> E2 ## E3 ## E0; }; \
+
557  struct { detail::_swizzle<3,T,P, V<T, P>, 2,3,1,-1> E2 ## E3 ## E1; }; \
+
558  struct { detail::_swizzle<3,T,P, V<T, P>, 2,3,2,-1> E2 ## E3 ## E2; }; \
+
559  struct { detail::_swizzle<3,T,P, V<T, P>, 2,3,3,-1> E2 ## E3 ## E3; }; \
+
560  struct { detail::_swizzle<3,T,P, V<T, P>, 3,0,0,-1> E3 ## E0 ## E0; }; \
+
561  struct { detail::_swizzle<3,T,P, V<T, P>, 3,0,1,-1> E3 ## E0 ## E1; }; \
+
562  struct { detail::_swizzle<3,T,P, V<T, P>, 3,0,2,-1> E3 ## E0 ## E2; }; \
+
563  struct { detail::_swizzle<3,T,P, V<T, P>, 3,0,3,-1> E3 ## E0 ## E3; }; \
+
564  struct { detail::_swizzle<3,T,P, V<T, P>, 3,1,0,-1> E3 ## E1 ## E0; }; \
+
565  struct { detail::_swizzle<3,T,P, V<T, P>, 3,1,1,-1> E3 ## E1 ## E1; }; \
+
566  struct { detail::_swizzle<3,T,P, V<T, P>, 3,1,2,-1> E3 ## E1 ## E2; }; \
+
567  struct { detail::_swizzle<3,T,P, V<T, P>, 3,1,3,-1> E3 ## E1 ## E3; }; \
+
568  struct { detail::_swizzle<3,T,P, V<T, P>, 3,2,0,-1> E3 ## E2 ## E0; }; \
+
569  struct { detail::_swizzle<3,T,P, V<T, P>, 3,2,1,-1> E3 ## E2 ## E1; }; \
+
570  struct { detail::_swizzle<3,T,P, V<T, P>, 3,2,2,-1> E3 ## E2 ## E2; }; \
+
571  struct { detail::_swizzle<3,T,P, V<T, P>, 3,2,3,-1> E3 ## E2 ## E3; }; \
+
572  struct { detail::_swizzle<3,T,P, V<T, P>, 3,3,0,-1> E3 ## E3 ## E0; }; \
+
573  struct { detail::_swizzle<3,T,P, V<T, P>, 3,3,1,-1> E3 ## E3 ## E1; }; \
+
574  struct { detail::_swizzle<3,T,P, V<T, P>, 3,3,2,-1> E3 ## E3 ## E2; }; \
+
575  struct { detail::_swizzle<3,T,P, V<T, P>, 3,3,3,-1> E3 ## E3 ## E3; };
+
576 
+
577 #define _GLM_SWIZZLE4_4_MEMBERS(T, P, V, E0,E1,E2,E3) \
+
578  struct { detail::_swizzle<4, T, P, V<T, P>, 0,0,0,0> E0 ## E0 ## E0 ## E0; }; \
+
579  struct { detail::_swizzle<4, T, P, V<T, P>, 0,0,0,1> E0 ## E0 ## E0 ## E1; }; \
+
580  struct { detail::_swizzle<4, T, P, V<T, P>, 0,0,0,2> E0 ## E0 ## E0 ## E2; }; \
+
581  struct { detail::_swizzle<4, T, P, V<T, P>, 0,0,0,3> E0 ## E0 ## E0 ## E3; }; \
+
582  struct { detail::_swizzle<4, T, P, V<T, P>, 0,0,1,0> E0 ## E0 ## E1 ## E0; }; \
+
583  struct { detail::_swizzle<4, T, P, V<T, P>, 0,0,1,1> E0 ## E0 ## E1 ## E1; }; \
+
584  struct { detail::_swizzle<4, T, P, V<T, P>, 0,0,1,2> E0 ## E0 ## E1 ## E2; }; \
+
585  struct { detail::_swizzle<4, T, P, V<T, P>, 0,0,1,3> E0 ## E0 ## E1 ## E3; }; \
+
586  struct { detail::_swizzle<4, T, P, V<T, P>, 0,0,2,0> E0 ## E0 ## E2 ## E0; }; \
+
587  struct { detail::_swizzle<4, T, P, V<T, P>, 0,0,2,1> E0 ## E0 ## E2 ## E1; }; \
+
588  struct { detail::_swizzle<4, T, P, V<T, P>, 0,0,2,2> E0 ## E0 ## E2 ## E2; }; \
+
589  struct { detail::_swizzle<4, T, P, V<T, P>, 0,0,2,3> E0 ## E0 ## E2 ## E3; }; \
+
590  struct { detail::_swizzle<4, T, P, V<T, P>, 0,0,3,0> E0 ## E0 ## E3 ## E0; }; \
+
591  struct { detail::_swizzle<4, T, P, V<T, P>, 0,0,3,1> E0 ## E0 ## E3 ## E1; }; \
+
592  struct { detail::_swizzle<4, T, P, V<T, P>, 0,0,3,2> E0 ## E0 ## E3 ## E2; }; \
+
593  struct { detail::_swizzle<4, T, P, V<T, P>, 0,0,3,3> E0 ## E0 ## E3 ## E3; }; \
+
594  struct { detail::_swizzle<4, T, P, V<T, P>, 0,1,0,0> E0 ## E1 ## E0 ## E0; }; \
+
595  struct { detail::_swizzle<4, T, P, V<T, P>, 0,1,0,1> E0 ## E1 ## E0 ## E1; }; \
+
596  struct { detail::_swizzle<4, T, P, V<T, P>, 0,1,0,2> E0 ## E1 ## E0 ## E2; }; \
+
597  struct { detail::_swizzle<4, T, P, V<T, P>, 0,1,0,3> E0 ## E1 ## E0 ## E3; }; \
+
598  struct { detail::_swizzle<4, T, P, V<T, P>, 0,1,1,0> E0 ## E1 ## E1 ## E0; }; \
+
599  struct { detail::_swizzle<4, T, P, V<T, P>, 0,1,1,1> E0 ## E1 ## E1 ## E1; }; \
+
600  struct { detail::_swizzle<4, T, P, V<T, P>, 0,1,1,2> E0 ## E1 ## E1 ## E2; }; \
+
601  struct { detail::_swizzle<4, T, P, V<T, P>, 0,1,1,3> E0 ## E1 ## E1 ## E3; }; \
+
602  struct { detail::_swizzle<4, T, P, V<T, P>, 0,1,2,0> E0 ## E1 ## E2 ## E0; }; \
+
603  struct { detail::_swizzle<4, T, P, V<T, P>, 0,1,2,1> E0 ## E1 ## E2 ## E1; }; \
+
604  struct { detail::_swizzle<4, T, P, V<T, P>, 0,1,2,2> E0 ## E1 ## E2 ## E2; }; \
+
605  struct { detail::_swizzle<4, T, P, V<T, P>, 0,1,2,3> E0 ## E1 ## E2 ## E3; }; \
+
606  struct { detail::_swizzle<4, T, P, V<T, P>, 0,1,3,0> E0 ## E1 ## E3 ## E0; }; \
+
607  struct { detail::_swizzle<4, T, P, V<T, P>, 0,1,3,1> E0 ## E1 ## E3 ## E1; }; \
+
608  struct { detail::_swizzle<4, T, P, V<T, P>, 0,1,3,2> E0 ## E1 ## E3 ## E2; }; \
+
609  struct { detail::_swizzle<4, T, P, V<T, P>, 0,1,3,3> E0 ## E1 ## E3 ## E3; }; \
+
610  struct { detail::_swizzle<4, T, P, V<T, P>, 0,2,0,0> E0 ## E2 ## E0 ## E0; }; \
+
611  struct { detail::_swizzle<4, T, P, V<T, P>, 0,2,0,1> E0 ## E2 ## E0 ## E1; }; \
+
612  struct { detail::_swizzle<4, T, P, V<T, P>, 0,2,0,2> E0 ## E2 ## E0 ## E2; }; \
+
613  struct { detail::_swizzle<4, T, P, V<T, P>, 0,2,0,3> E0 ## E2 ## E0 ## E3; }; \
+
614  struct { detail::_swizzle<4, T, P, V<T, P>, 0,2,1,0> E0 ## E2 ## E1 ## E0; }; \
+
615  struct { detail::_swizzle<4, T, P, V<T, P>, 0,2,1,1> E0 ## E2 ## E1 ## E1; }; \
+
616  struct { detail::_swizzle<4, T, P, V<T, P>, 0,2,1,2> E0 ## E2 ## E1 ## E2; }; \
+
617  struct { detail::_swizzle<4, T, P, V<T, P>, 0,2,1,3> E0 ## E2 ## E1 ## E3; }; \
+
618  struct { detail::_swizzle<4, T, P, V<T, P>, 0,2,2,0> E0 ## E2 ## E2 ## E0; }; \
+
619  struct { detail::_swizzle<4, T, P, V<T, P>, 0,2,2,1> E0 ## E2 ## E2 ## E1; }; \
+
620  struct { detail::_swizzle<4, T, P, V<T, P>, 0,2,2,2> E0 ## E2 ## E2 ## E2; }; \
+
621  struct { detail::_swizzle<4, T, P, V<T, P>, 0,2,2,3> E0 ## E2 ## E2 ## E3; }; \
+
622  struct { detail::_swizzle<4, T, P, V<T, P>, 0,2,3,0> E0 ## E2 ## E3 ## E0; }; \
+
623  struct { detail::_swizzle<4, T, P, V<T, P>, 0,2,3,1> E0 ## E2 ## E3 ## E1; }; \
+
624  struct { detail::_swizzle<4, T, P, V<T, P>, 0,2,3,2> E0 ## E2 ## E3 ## E2; }; \
+
625  struct { detail::_swizzle<4, T, P, V<T, P>, 0,2,3,3> E0 ## E2 ## E3 ## E3; }; \
+
626  struct { detail::_swizzle<4, T, P, V<T, P>, 0,3,0,0> E0 ## E3 ## E0 ## E0; }; \
+
627  struct { detail::_swizzle<4, T, P, V<T, P>, 0,3,0,1> E0 ## E3 ## E0 ## E1; }; \
+
628  struct { detail::_swizzle<4, T, P, V<T, P>, 0,3,0,2> E0 ## E3 ## E0 ## E2; }; \
+
629  struct { detail::_swizzle<4, T, P, V<T, P>, 0,3,0,3> E0 ## E3 ## E0 ## E3; }; \
+
630  struct { detail::_swizzle<4, T, P, V<T, P>, 0,3,1,0> E0 ## E3 ## E1 ## E0; }; \
+
631  struct { detail::_swizzle<4, T, P, V<T, P>, 0,3,1,1> E0 ## E3 ## E1 ## E1; }; \
+
632  struct { detail::_swizzle<4, T, P, V<T, P>, 0,3,1,2> E0 ## E3 ## E1 ## E2; }; \
+
633  struct { detail::_swizzle<4, T, P, V<T, P>, 0,3,1,3> E0 ## E3 ## E1 ## E3; }; \
+
634  struct { detail::_swizzle<4, T, P, V<T, P>, 0,3,2,0> E0 ## E3 ## E2 ## E0; }; \
+
635  struct { detail::_swizzle<4, T, P, V<T, P>, 0,3,2,1> E0 ## E3 ## E2 ## E1; }; \
+
636  struct { detail::_swizzle<4, T, P, V<T, P>, 0,3,2,2> E0 ## E3 ## E2 ## E2; }; \
+
637  struct { detail::_swizzle<4, T, P, V<T, P>, 0,3,2,3> E0 ## E3 ## E2 ## E3; }; \
+
638  struct { detail::_swizzle<4, T, P, V<T, P>, 0,3,3,0> E0 ## E3 ## E3 ## E0; }; \
+
639  struct { detail::_swizzle<4, T, P, V<T, P>, 0,3,3,1> E0 ## E3 ## E3 ## E1; }; \
+
640  struct { detail::_swizzle<4, T, P, V<T, P>, 0,3,3,2> E0 ## E3 ## E3 ## E2; }; \
+
641  struct { detail::_swizzle<4, T, P, V<T, P>, 0,3,3,3> E0 ## E3 ## E3 ## E3; }; \
+
642  struct { detail::_swizzle<4, T, P, V<T, P>, 1,0,0,0> E1 ## E0 ## E0 ## E0; }; \
+
643  struct { detail::_swizzle<4, T, P, V<T, P>, 1,0,0,1> E1 ## E0 ## E0 ## E1; }; \
+
644  struct { detail::_swizzle<4, T, P, V<T, P>, 1,0,0,2> E1 ## E0 ## E0 ## E2; }; \
+
645  struct { detail::_swizzle<4, T, P, V<T, P>, 1,0,0,3> E1 ## E0 ## E0 ## E3; }; \
+
646  struct { detail::_swizzle<4, T, P, V<T, P>, 1,0,1,0> E1 ## E0 ## E1 ## E0; }; \
+
647  struct { detail::_swizzle<4, T, P, V<T, P>, 1,0,1,1> E1 ## E0 ## E1 ## E1; }; \
+
648  struct { detail::_swizzle<4, T, P, V<T, P>, 1,0,1,2> E1 ## E0 ## E1 ## E2; }; \
+
649  struct { detail::_swizzle<4, T, P, V<T, P>, 1,0,1,3> E1 ## E0 ## E1 ## E3; }; \
+
650  struct { detail::_swizzle<4, T, P, V<T, P>, 1,0,2,0> E1 ## E0 ## E2 ## E0; }; \
+
651  struct { detail::_swizzle<4, T, P, V<T, P>, 1,0,2,1> E1 ## E0 ## E2 ## E1; }; \
+
652  struct { detail::_swizzle<4, T, P, V<T, P>, 1,0,2,2> E1 ## E0 ## E2 ## E2; }; \
+
653  struct { detail::_swizzle<4, T, P, V<T, P>, 1,0,2,3> E1 ## E0 ## E2 ## E3; }; \
+
654  struct { detail::_swizzle<4, T, P, V<T, P>, 1,0,3,0> E1 ## E0 ## E3 ## E0; }; \
+
655  struct { detail::_swizzle<4, T, P, V<T, P>, 1,0,3,1> E1 ## E0 ## E3 ## E1; }; \
+
656  struct { detail::_swizzle<4, T, P, V<T, P>, 1,0,3,2> E1 ## E0 ## E3 ## E2; }; \
+
657  struct { detail::_swizzle<4, T, P, V<T, P>, 1,0,3,3> E1 ## E0 ## E3 ## E3; }; \
+
658  struct { detail::_swizzle<4, T, P, V<T, P>, 1,1,0,0> E1 ## E1 ## E0 ## E0; }; \
+
659  struct { detail::_swizzle<4, T, P, V<T, P>, 1,1,0,1> E1 ## E1 ## E0 ## E1; }; \
+
660  struct { detail::_swizzle<4, T, P, V<T, P>, 1,1,0,2> E1 ## E1 ## E0 ## E2; }; \
+
661  struct { detail::_swizzle<4, T, P, V<T, P>, 1,1,0,3> E1 ## E1 ## E0 ## E3; }; \
+
662  struct { detail::_swizzle<4, T, P, V<T, P>, 1,1,1,0> E1 ## E1 ## E1 ## E0; }; \
+
663  struct { detail::_swizzle<4, T, P, V<T, P>, 1,1,1,1> E1 ## E1 ## E1 ## E1; }; \
+
664  struct { detail::_swizzle<4, T, P, V<T, P>, 1,1,1,2> E1 ## E1 ## E1 ## E2; }; \
+
665  struct { detail::_swizzle<4, T, P, V<T, P>, 1,1,1,3> E1 ## E1 ## E1 ## E3; }; \
+
666  struct { detail::_swizzle<4, T, P, V<T, P>, 1,1,2,0> E1 ## E1 ## E2 ## E0; }; \
+
667  struct { detail::_swizzle<4, T, P, V<T, P>, 1,1,2,1> E1 ## E1 ## E2 ## E1; }; \
+
668  struct { detail::_swizzle<4, T, P, V<T, P>, 1,1,2,2> E1 ## E1 ## E2 ## E2; }; \
+
669  struct { detail::_swizzle<4, T, P, V<T, P>, 1,1,2,3> E1 ## E1 ## E2 ## E3; }; \
+
670  struct { detail::_swizzle<4, T, P, V<T, P>, 1,1,3,0> E1 ## E1 ## E3 ## E0; }; \
+
671  struct { detail::_swizzle<4, T, P, V<T, P>, 1,1,3,1> E1 ## E1 ## E3 ## E1; }; \
+
672  struct { detail::_swizzle<4, T, P, V<T, P>, 1,1,3,2> E1 ## E1 ## E3 ## E2; }; \
+
673  struct { detail::_swizzle<4, T, P, V<T, P>, 1,1,3,3> E1 ## E1 ## E3 ## E3; }; \
+
674  struct { detail::_swizzle<4, T, P, V<T, P>, 1,2,0,0> E1 ## E2 ## E0 ## E0; }; \
+
675  struct { detail::_swizzle<4, T, P, V<T, P>, 1,2,0,1> E1 ## E2 ## E0 ## E1; }; \
+
676  struct { detail::_swizzle<4, T, P, V<T, P>, 1,2,0,2> E1 ## E2 ## E0 ## E2; }; \
+
677  struct { detail::_swizzle<4, T, P, V<T, P>, 1,2,0,3> E1 ## E2 ## E0 ## E3; }; \
+
678  struct { detail::_swizzle<4, T, P, V<T, P>, 1,2,1,0> E1 ## E2 ## E1 ## E0; }; \
+
679  struct { detail::_swizzle<4, T, P, V<T, P>, 1,2,1,1> E1 ## E2 ## E1 ## E1; }; \
+
680  struct { detail::_swizzle<4, T, P, V<T, P>, 1,2,1,2> E1 ## E2 ## E1 ## E2; }; \
+
681  struct { detail::_swizzle<4, T, P, V<T, P>, 1,2,1,3> E1 ## E2 ## E1 ## E3; }; \
+
682  struct { detail::_swizzle<4, T, P, V<T, P>, 1,2,2,0> E1 ## E2 ## E2 ## E0; }; \
+
683  struct { detail::_swizzle<4, T, P, V<T, P>, 1,2,2,1> E1 ## E2 ## E2 ## E1; }; \
+
684  struct { detail::_swizzle<4, T, P, V<T, P>, 1,2,2,2> E1 ## E2 ## E2 ## E2; }; \
+
685  struct { detail::_swizzle<4, T, P, V<T, P>, 1,2,2,3> E1 ## E2 ## E2 ## E3; }; \
+
686  struct { detail::_swizzle<4, T, P, V<T, P>, 1,2,3,0> E1 ## E2 ## E3 ## E0; }; \
+
687  struct { detail::_swizzle<4, T, P, V<T, P>, 1,2,3,1> E1 ## E2 ## E3 ## E1; }; \
+
688  struct { detail::_swizzle<4, T, P, V<T, P>, 1,2,3,2> E1 ## E2 ## E3 ## E2; }; \
+
689  struct { detail::_swizzle<4, T, P, V<T, P>, 1,2,3,3> E1 ## E2 ## E3 ## E3; }; \
+
690  struct { detail::_swizzle<4, T, P, V<T, P>, 1,3,0,0> E1 ## E3 ## E0 ## E0; }; \
+
691  struct { detail::_swizzle<4, T, P, V<T, P>, 1,3,0,1> E1 ## E3 ## E0 ## E1; }; \
+
692  struct { detail::_swizzle<4, T, P, V<T, P>, 1,3,0,2> E1 ## E3 ## E0 ## E2; }; \
+
693  struct { detail::_swizzle<4, T, P, V<T, P>, 1,3,0,3> E1 ## E3 ## E0 ## E3; }; \
+
694  struct { detail::_swizzle<4, T, P, V<T, P>, 1,3,1,0> E1 ## E3 ## E1 ## E0; }; \
+
695  struct { detail::_swizzle<4, T, P, V<T, P>, 1,3,1,1> E1 ## E3 ## E1 ## E1; }; \
+
696  struct { detail::_swizzle<4, T, P, V<T, P>, 1,3,1,2> E1 ## E3 ## E1 ## E2; }; \
+
697  struct { detail::_swizzle<4, T, P, V<T, P>, 1,3,1,3> E1 ## E3 ## E1 ## E3; }; \
+
698  struct { detail::_swizzle<4, T, P, V<T, P>, 1,3,2,0> E1 ## E3 ## E2 ## E0; }; \
+
699  struct { detail::_swizzle<4, T, P, V<T, P>, 1,3,2,1> E1 ## E3 ## E2 ## E1; }; \
+
700  struct { detail::_swizzle<4, T, P, V<T, P>, 1,3,2,2> E1 ## E3 ## E2 ## E2; }; \
+
701  struct { detail::_swizzle<4, T, P, V<T, P>, 1,3,2,3> E1 ## E3 ## E2 ## E3; }; \
+
702  struct { detail::_swizzle<4, T, P, V<T, P>, 1,3,3,0> E1 ## E3 ## E3 ## E0; }; \
+
703  struct { detail::_swizzle<4, T, P, V<T, P>, 1,3,3,1> E1 ## E3 ## E3 ## E1; }; \
+
704  struct { detail::_swizzle<4, T, P, V<T, P>, 1,3,3,2> E1 ## E3 ## E3 ## E2; }; \
+
705  struct { detail::_swizzle<4, T, P, V<T, P>, 1,3,3,3> E1 ## E3 ## E3 ## E3; }; \
+
706  struct { detail::_swizzle<4, T, P, V<T, P>, 2,0,0,0> E2 ## E0 ## E0 ## E0; }; \
+
707  struct { detail::_swizzle<4, T, P, V<T, P>, 2,0,0,1> E2 ## E0 ## E0 ## E1; }; \
+
708  struct { detail::_swizzle<4, T, P, V<T, P>, 2,0,0,2> E2 ## E0 ## E0 ## E2; }; \
+
709  struct { detail::_swizzle<4, T, P, V<T, P>, 2,0,0,3> E2 ## E0 ## E0 ## E3; }; \
+
710  struct { detail::_swizzle<4, T, P, V<T, P>, 2,0,1,0> E2 ## E0 ## E1 ## E0; }; \
+
711  struct { detail::_swizzle<4, T, P, V<T, P>, 2,0,1,1> E2 ## E0 ## E1 ## E1; }; \
+
712  struct { detail::_swizzle<4, T, P, V<T, P>, 2,0,1,2> E2 ## E0 ## E1 ## E2; }; \
+
713  struct { detail::_swizzle<4, T, P, V<T, P>, 2,0,1,3> E2 ## E0 ## E1 ## E3; }; \
+
714  struct { detail::_swizzle<4, T, P, V<T, P>, 2,0,2,0> E2 ## E0 ## E2 ## E0; }; \
+
715  struct { detail::_swizzle<4, T, P, V<T, P>, 2,0,2,1> E2 ## E0 ## E2 ## E1; }; \
+
716  struct { detail::_swizzle<4, T, P, V<T, P>, 2,0,2,2> E2 ## E0 ## E2 ## E2; }; \
+
717  struct { detail::_swizzle<4, T, P, V<T, P>, 2,0,2,3> E2 ## E0 ## E2 ## E3; }; \
+
718  struct { detail::_swizzle<4, T, P, V<T, P>, 2,0,3,0> E2 ## E0 ## E3 ## E0; }; \
+
719  struct { detail::_swizzle<4, T, P, V<T, P>, 2,0,3,1> E2 ## E0 ## E3 ## E1; }; \
+
720  struct { detail::_swizzle<4, T, P, V<T, P>, 2,0,3,2> E2 ## E0 ## E3 ## E2; }; \
+
721  struct { detail::_swizzle<4, T, P, V<T, P>, 2,0,3,3> E2 ## E0 ## E3 ## E3; }; \
+
722  struct { detail::_swizzle<4, T, P, V<T, P>, 2,1,0,0> E2 ## E1 ## E0 ## E0; }; \
+
723  struct { detail::_swizzle<4, T, P, V<T, P>, 2,1,0,1> E2 ## E1 ## E0 ## E1; }; \
+
724  struct { detail::_swizzle<4, T, P, V<T, P>, 2,1,0,2> E2 ## E1 ## E0 ## E2; }; \
+
725  struct { detail::_swizzle<4, T, P, V<T, P>, 2,1,0,3> E2 ## E1 ## E0 ## E3; }; \
+
726  struct { detail::_swizzle<4, T, P, V<T, P>, 2,1,1,0> E2 ## E1 ## E1 ## E0; }; \
+
727  struct { detail::_swizzle<4, T, P, V<T, P>, 2,1,1,1> E2 ## E1 ## E1 ## E1; }; \
+
728  struct { detail::_swizzle<4, T, P, V<T, P>, 2,1,1,2> E2 ## E1 ## E1 ## E2; }; \
+
729  struct { detail::_swizzle<4, T, P, V<T, P>, 2,1,1,3> E2 ## E1 ## E1 ## E3; }; \
+
730  struct { detail::_swizzle<4, T, P, V<T, P>, 2,1,2,0> E2 ## E1 ## E2 ## E0; }; \
+
731  struct { detail::_swizzle<4, T, P, V<T, P>, 2,1,2,1> E2 ## E1 ## E2 ## E1; }; \
+
732  struct { detail::_swizzle<4, T, P, V<T, P>, 2,1,2,2> E2 ## E1 ## E2 ## E2; }; \
+
733  struct { detail::_swizzle<4, T, P, V<T, P>, 2,1,2,3> E2 ## E1 ## E2 ## E3; }; \
+
734  struct { detail::_swizzle<4, T, P, V<T, P>, 2,1,3,0> E2 ## E1 ## E3 ## E0; }; \
+
735  struct { detail::_swizzle<4, T, P, V<T, P>, 2,1,3,1> E2 ## E1 ## E3 ## E1; }; \
+
736  struct { detail::_swizzle<4, T, P, V<T, P>, 2,1,3,2> E2 ## E1 ## E3 ## E2; }; \
+
737  struct { detail::_swizzle<4, T, P, V<T, P>, 2,1,3,3> E2 ## E1 ## E3 ## E3; }; \
+
738  struct { detail::_swizzle<4, T, P, V<T, P>, 2,2,0,0> E2 ## E2 ## E0 ## E0; }; \
+
739  struct { detail::_swizzle<4, T, P, V<T, P>, 2,2,0,1> E2 ## E2 ## E0 ## E1; }; \
+
740  struct { detail::_swizzle<4, T, P, V<T, P>, 2,2,0,2> E2 ## E2 ## E0 ## E2; }; \
+
741  struct { detail::_swizzle<4, T, P, V<T, P>, 2,2,0,3> E2 ## E2 ## E0 ## E3; }; \
+
742  struct { detail::_swizzle<4, T, P, V<T, P>, 2,2,1,0> E2 ## E2 ## E1 ## E0; }; \
+
743  struct { detail::_swizzle<4, T, P, V<T, P>, 2,2,1,1> E2 ## E2 ## E1 ## E1; }; \
+
744  struct { detail::_swizzle<4, T, P, V<T, P>, 2,2,1,2> E2 ## E2 ## E1 ## E2; }; \
+
745  struct { detail::_swizzle<4, T, P, V<T, P>, 2,2,1,3> E2 ## E2 ## E1 ## E3; }; \
+
746  struct { detail::_swizzle<4, T, P, V<T, P>, 2,2,2,0> E2 ## E2 ## E2 ## E0; }; \
+
747  struct { detail::_swizzle<4, T, P, V<T, P>, 2,2,2,1> E2 ## E2 ## E2 ## E1; }; \
+
748  struct { detail::_swizzle<4, T, P, V<T, P>, 2,2,2,2> E2 ## E2 ## E2 ## E2; }; \
+
749  struct { detail::_swizzle<4, T, P, V<T, P>, 2,2,2,3> E2 ## E2 ## E2 ## E3; }; \
+
750  struct { detail::_swizzle<4, T, P, V<T, P>, 2,2,3,0> E2 ## E2 ## E3 ## E0; }; \
+
751  struct { detail::_swizzle<4, T, P, V<T, P>, 2,2,3,1> E2 ## E2 ## E3 ## E1; }; \
+
752  struct { detail::_swizzle<4, T, P, V<T, P>, 2,2,3,2> E2 ## E2 ## E3 ## E2; }; \
+
753  struct { detail::_swizzle<4, T, P, V<T, P>, 2,2,3,3> E2 ## E2 ## E3 ## E3; }; \
+
754  struct { detail::_swizzle<4, T, P, V<T, P>, 2,3,0,0> E2 ## E3 ## E0 ## E0; }; \
+
755  struct { detail::_swizzle<4, T, P, V<T, P>, 2,3,0,1> E2 ## E3 ## E0 ## E1; }; \
+
756  struct { detail::_swizzle<4, T, P, V<T, P>, 2,3,0,2> E2 ## E3 ## E0 ## E2; }; \
+
757  struct { detail::_swizzle<4, T, P, V<T, P>, 2,3,0,3> E2 ## E3 ## E0 ## E3; }; \
+
758  struct { detail::_swizzle<4, T, P, V<T, P>, 2,3,1,0> E2 ## E3 ## E1 ## E0; }; \
+
759  struct { detail::_swizzle<4, T, P, V<T, P>, 2,3,1,1> E2 ## E3 ## E1 ## E1; }; \
+
760  struct { detail::_swizzle<4, T, P, V<T, P>, 2,3,1,2> E2 ## E3 ## E1 ## E2; }; \
+
761  struct { detail::_swizzle<4, T, P, V<T, P>, 2,3,1,3> E2 ## E3 ## E1 ## E3; }; \
+
762  struct { detail::_swizzle<4, T, P, V<T, P>, 2,3,2,0> E2 ## E3 ## E2 ## E0; }; \
+
763  struct { detail::_swizzle<4, T, P, V<T, P>, 2,3,2,1> E2 ## E3 ## E2 ## E1; }; \
+
764  struct { detail::_swizzle<4, T, P, V<T, P>, 2,3,2,2> E2 ## E3 ## E2 ## E2; }; \
+
765  struct { detail::_swizzle<4, T, P, V<T, P>, 2,3,2,3> E2 ## E3 ## E2 ## E3; }; \
+
766  struct { detail::_swizzle<4, T, P, V<T, P>, 2,3,3,0> E2 ## E3 ## E3 ## E0; }; \
+
767  struct { detail::_swizzle<4, T, P, V<T, P>, 2,3,3,1> E2 ## E3 ## E3 ## E1; }; \
+
768  struct { detail::_swizzle<4, T, P, V<T, P>, 2,3,3,2> E2 ## E3 ## E3 ## E2; }; \
+
769  struct { detail::_swizzle<4, T, P, V<T, P>, 2,3,3,3> E2 ## E3 ## E3 ## E3; }; \
+
770  struct { detail::_swizzle<4, T, P, V<T, P>, 3,0,0,0> E3 ## E0 ## E0 ## E0; }; \
+
771  struct { detail::_swizzle<4, T, P, V<T, P>, 3,0,0,1> E3 ## E0 ## E0 ## E1; }; \
+
772  struct { detail::_swizzle<4, T, P, V<T, P>, 3,0,0,2> E3 ## E0 ## E0 ## E2; }; \
+
773  struct { detail::_swizzle<4, T, P, V<T, P>, 3,0,0,3> E3 ## E0 ## E0 ## E3; }; \
+
774  struct { detail::_swizzle<4, T, P, V<T, P>, 3,0,1,0> E3 ## E0 ## E1 ## E0; }; \
+
775  struct { detail::_swizzle<4, T, P, V<T, P>, 3,0,1,1> E3 ## E0 ## E1 ## E1; }; \
+
776  struct { detail::_swizzle<4, T, P, V<T, P>, 3,0,1,2> E3 ## E0 ## E1 ## E2; }; \
+
777  struct { detail::_swizzle<4, T, P, V<T, P>, 3,0,1,3> E3 ## E0 ## E1 ## E3; }; \
+
778  struct { detail::_swizzle<4, T, P, V<T, P>, 3,0,2,0> E3 ## E0 ## E2 ## E0; }; \
+
779  struct { detail::_swizzle<4, T, P, V<T, P>, 3,0,2,1> E3 ## E0 ## E2 ## E1; }; \
+
780  struct { detail::_swizzle<4, T, P, V<T, P>, 3,0,2,2> E3 ## E0 ## E2 ## E2; }; \
+
781  struct { detail::_swizzle<4, T, P, V<T, P>, 3,0,2,3> E3 ## E0 ## E2 ## E3; }; \
+
782  struct { detail::_swizzle<4, T, P, V<T, P>, 3,0,3,0> E3 ## E0 ## E3 ## E0; }; \
+
783  struct { detail::_swizzle<4, T, P, V<T, P>, 3,0,3,1> E3 ## E0 ## E3 ## E1; }; \
+
784  struct { detail::_swizzle<4, T, P, V<T, P>, 3,0,3,2> E3 ## E0 ## E3 ## E2; }; \
+
785  struct { detail::_swizzle<4, T, P, V<T, P>, 3,0,3,3> E3 ## E0 ## E3 ## E3; }; \
+
786  struct { detail::_swizzle<4, T, P, V<T, P>, 3,1,0,0> E3 ## E1 ## E0 ## E0; }; \
+
787  struct { detail::_swizzle<4, T, P, V<T, P>, 3,1,0,1> E3 ## E1 ## E0 ## E1; }; \
+
788  struct { detail::_swizzle<4, T, P, V<T, P>, 3,1,0,2> E3 ## E1 ## E0 ## E2; }; \
+
789  struct { detail::_swizzle<4, T, P, V<T, P>, 3,1,0,3> E3 ## E1 ## E0 ## E3; }; \
+
790  struct { detail::_swizzle<4, T, P, V<T, P>, 3,1,1,0> E3 ## E1 ## E1 ## E0; }; \
+
791  struct { detail::_swizzle<4, T, P, V<T, P>, 3,1,1,1> E3 ## E1 ## E1 ## E1; }; \
+
792  struct { detail::_swizzle<4, T, P, V<T, P>, 3,1,1,2> E3 ## E1 ## E1 ## E2; }; \
+
793  struct { detail::_swizzle<4, T, P, V<T, P>, 3,1,1,3> E3 ## E1 ## E1 ## E3; }; \
+
794  struct { detail::_swizzle<4, T, P, V<T, P>, 3,1,2,0> E3 ## E1 ## E2 ## E0; }; \
+
795  struct { detail::_swizzle<4, T, P, V<T, P>, 3,1,2,1> E3 ## E1 ## E2 ## E1; }; \
+
796  struct { detail::_swizzle<4, T, P, V<T, P>, 3,1,2,2> E3 ## E1 ## E2 ## E2; }; \
+
797  struct { detail::_swizzle<4, T, P, V<T, P>, 3,1,2,3> E3 ## E1 ## E2 ## E3; }; \
+
798  struct { detail::_swizzle<4, T, P, V<T, P>, 3,1,3,0> E3 ## E1 ## E3 ## E0; }; \
+
799  struct { detail::_swizzle<4, T, P, V<T, P>, 3,1,3,1> E3 ## E1 ## E3 ## E1; }; \
+
800  struct { detail::_swizzle<4, T, P, V<T, P>, 3,1,3,2> E3 ## E1 ## E3 ## E2; }; \
+
801  struct { detail::_swizzle<4, T, P, V<T, P>, 3,1,3,3> E3 ## E1 ## E3 ## E3; }; \
+
802  struct { detail::_swizzle<4, T, P, V<T, P>, 3,2,0,0> E3 ## E2 ## E0 ## E0; }; \
+
803  struct { detail::_swizzle<4, T, P, V<T, P>, 3,2,0,1> E3 ## E2 ## E0 ## E1; }; \
+
804  struct { detail::_swizzle<4, T, P, V<T, P>, 3,2,0,2> E3 ## E2 ## E0 ## E2; }; \
+
805  struct { detail::_swizzle<4, T, P, V<T, P>, 3,2,0,3> E3 ## E2 ## E0 ## E3; }; \
+
806  struct { detail::_swizzle<4, T, P, V<T, P>, 3,2,1,0> E3 ## E2 ## E1 ## E0; }; \
+
807  struct { detail::_swizzle<4, T, P, V<T, P>, 3,2,1,1> E3 ## E2 ## E1 ## E1; }; \
+
808  struct { detail::_swizzle<4, T, P, V<T, P>, 3,2,1,2> E3 ## E2 ## E1 ## E2; }; \
+
809  struct { detail::_swizzle<4, T, P, V<T, P>, 3,2,1,3> E3 ## E2 ## E1 ## E3; }; \
+
810  struct { detail::_swizzle<4, T, P, V<T, P>, 3,2,2,0> E3 ## E2 ## E2 ## E0; }; \
+
811  struct { detail::_swizzle<4, T, P, V<T, P>, 3,2,2,1> E3 ## E2 ## E2 ## E1; }; \
+
812  struct { detail::_swizzle<4, T, P, V<T, P>, 3,2,2,2> E3 ## E2 ## E2 ## E2; }; \
+
813  struct { detail::_swizzle<4, T, P, V<T, P>, 3,2,2,3> E3 ## E2 ## E2 ## E3; }; \
+
814  struct { detail::_swizzle<4, T, P, V<T, P>, 3,2,3,0> E3 ## E2 ## E3 ## E0; }; \
+
815  struct { detail::_swizzle<4, T, P, V<T, P>, 3,2,3,1> E3 ## E2 ## E3 ## E1; }; \
+
816  struct { detail::_swizzle<4, T, P, V<T, P>, 3,2,3,2> E3 ## E2 ## E3 ## E2; }; \
+
817  struct { detail::_swizzle<4, T, P, V<T, P>, 3,2,3,3> E3 ## E2 ## E3 ## E3; }; \
+
818  struct { detail::_swizzle<4, T, P, V<T, P>, 3,3,0,0> E3 ## E3 ## E0 ## E0; }; \
+
819  struct { detail::_swizzle<4, T, P, V<T, P>, 3,3,0,1> E3 ## E3 ## E0 ## E1; }; \
+
820  struct { detail::_swizzle<4, T, P, V<T, P>, 3,3,0,2> E3 ## E3 ## E0 ## E2; }; \
+
821  struct { detail::_swizzle<4, T, P, V<T, P>, 3,3,0,3> E3 ## E3 ## E0 ## E3; }; \
+
822  struct { detail::_swizzle<4, T, P, V<T, P>, 3,3,1,0> E3 ## E3 ## E1 ## E0; }; \
+
823  struct { detail::_swizzle<4, T, P, V<T, P>, 3,3,1,1> E3 ## E3 ## E1 ## E1; }; \
+
824  struct { detail::_swizzle<4, T, P, V<T, P>, 3,3,1,2> E3 ## E3 ## E1 ## E2; }; \
+
825  struct { detail::_swizzle<4, T, P, V<T, P>, 3,3,1,3> E3 ## E3 ## E1 ## E3; }; \
+
826  struct { detail::_swizzle<4, T, P, V<T, P>, 3,3,2,0> E3 ## E3 ## E2 ## E0; }; \
+
827  struct { detail::_swizzle<4, T, P, V<T, P>, 3,3,2,1> E3 ## E3 ## E2 ## E1; }; \
+
828  struct { detail::_swizzle<4, T, P, V<T, P>, 3,3,2,2> E3 ## E3 ## E2 ## E2; }; \
+
829  struct { detail::_swizzle<4, T, P, V<T, P>, 3,3,2,3> E3 ## E3 ## E2 ## E3; }; \
+
830  struct { detail::_swizzle<4, T, P, V<T, P>, 3,3,3,0> E3 ## E3 ## E3 ## E0; }; \
+
831  struct { detail::_swizzle<4, T, P, V<T, P>, 3,3,3,1> E3 ## E3 ## E3 ## E1; }; \
+
832  struct { detail::_swizzle<4, T, P, V<T, P>, 3,3,3,2> E3 ## E3 ## E3 ## E2; }; \
+
833  struct { detail::_swizzle<4, T, P, V<T, P>, 3,3,3,3> E3 ## E3 ## E3 ## E3; };
+
Definition: _noise.hpp:39
+
GLM_FUNC_DECL genType e()
Return e constant.
diff --git a/doc/api/a00005.html b/doc/api/a00005.html new file mode 100644 index 00000000..3364dc58 --- /dev/null +++ b/doc/api/a00005.html @@ -0,0 +1,73 @@ + + + + + + +0.9.6: _swizzle_func.hpp File Reference + + + + + + +
+
+ + + + + + + +
+
0.9.6 +
+
+
+ + + + + +
+
+
+
_swizzle_func.hpp File Reference
+
+
+ +

Go to the source code of this file.

+

Detailed Description

+

OpenGL Mathematics (glm.g-truc.net)

+

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+

GLM Core

+
Date
2011-10-16 / 2011-10-16
+
Author
Christophe Riccio
+ +

Definition in file _swizzle_func.hpp.

+
+ + + + diff --git a/doc/api/a00005_source.html b/doc/api/a00005_source.html index 4e023c2a..fb76234c 100644 --- a/doc/api/a00005_source.html +++ b/doc/api/a00005_source.html @@ -3,8 +3,8 @@ - -GLM: _fixes.hpp Source File + +0.9.6: _swizzle_func.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,43 +41,714 @@
-
_fixes.hpp
+
_swizzle_func.hpp
-
1 
-
29 #include <cmath>
-
30 
-
32 #ifdef max
-
33 #undef max
-
34 #endif
-
35 
-
37 #ifdef min
-
38 #undef min
-
39 #endif
-
40 
-
42 #ifdef isnan
-
43 #undef isnan
-
44 #endif
-
45 
-
47 #ifdef isinf
-
48 #undef isinf
-
49 #endif
-
50 
-
52 #ifdef log2
-
53 #undef log2
-
54 #endif
-
55 
+Go to the documentation of this file.
1 
+
33 #pragma once
+
34 
+
35 #define GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, CONST, A, B) \
+
36  SWIZZLED_TYPE<TMPL_TYPE, PRECISION> A ## B() CONST \
+
37  { \
+
38  return SWIZZLED_TYPE<TMPL_TYPE, PRECISION>(this->A, this->B); \
+
39  }
+
40 
+
41 #define GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, CONST, A, B, C) \
+
42  SWIZZLED_TYPE<TMPL_TYPE, PRECISION> A ## B ## C() CONST \
+
43  { \
+
44  return SWIZZLED_TYPE<TMPL_TYPE, PRECISION>(this->A, this->B, this->C); \
+
45  }
+
46 
+
47 #define GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, CONST, A, B, C, D) \
+
48  SWIZZLED_TYPE<TMPL_TYPE, PRECISION> A ## B ## C ## D() CONST \
+
49  { \
+
50  return SWIZZLED_TYPE<TMPL_TYPE, PRECISION>(this->A, this->B, this->C, this->D); \
+
51  }
+
52 
+
53 #define GLM_SWIZZLE_GEN_VEC2_ENTRY_DEF(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, CONST, A, B) \
+
54  template <typename TMPL_TYPE> \
+
55  SWIZZLED_TYPE<TMPL_TYPE> CLASS_TYPE<TMPL_TYPE, PRECISION>::A ## B() CONST \
+
56  { \
+
57  return SWIZZLED_TYPE<TMPL_TYPE, PRECISION>(this->A, this->B); \
+
58  }
+
59 
+
60 #define GLM_SWIZZLE_GEN_VEC3_ENTRY_DEF(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, CONST, A, B, C) \
+
61  template <typename TMPL_TYPE> \
+
62  SWIZZLED_TYPE<TMPL_TYPE> CLASS_TYPE<TMPL_TYPE, PRECISION>::A ## B ## C() CONST \
+
63  { \
+
64  return SWIZZLED_TYPE<TMPL_TYPE, PRECISION>(this->A, this->B, this->C); \
+
65  }
+
66 
+
67 #define GLM_SWIZZLE_GEN_VEC4_ENTRY_DEF(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, CONST, A, B, C, D) \
+
68  template <typename TMPL_TYPE> \
+
69  SWIZZLED_TYPE<TMPL_TYPE> CLASS_TYPE<TMPL_TYPE, PRECISION>::A ## B ## C ## D() CONST \
+
70  { \
+
71  return SWIZZLED_TYPE<TMPL_TYPE, PRECISION>(this->A, this->B, this->C, this->D); \
+
72  }
+
73 
+
74 #define GLM_MUTABLE
+
75 
+
76 #define GLM_SWIZZLE_GEN_REF2_FROM_VEC2_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B) \
+
77  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, B) \
+
78  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, A)
+
79 
+
80 #define GLM_SWIZZLE_GEN_REF_FROM_VEC2(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE) \
+
81  GLM_SWIZZLE_GEN_REF2_FROM_VEC2_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, x, y) \
+
82  GLM_SWIZZLE_GEN_REF2_FROM_VEC2_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, r, g) \
+
83  GLM_SWIZZLE_GEN_REF2_FROM_VEC2_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, s, t)
+
84 
+
85 //GLM_SWIZZLE_GEN_REF_FROM_VEC2(valType, detail::vec2, detail::ref2)
+
86 
+
87 #define GLM_SWIZZLE_GEN_REF2_FROM_VEC3_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C) \
+
88  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, B) \
+
89  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, C) \
+
90  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, A) \
+
91  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, C) \
+
92  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, C, A) \
+
93  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, C, B)
+
94 
+
95 #define GLM_SWIZZLE_GEN_REF3_FROM_VEC3_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C) \
+
96  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, B, C) \
+
97  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, C, B) \
+
98  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, A, C) \
+
99  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, C, A) \
+
100  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, C, A, B) \
+
101  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, C, B, A)
+
102 
+
103 #define GLM_SWIZZLE_GEN_REF_FROM_VEC3_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, A, B, C) \
+
104  GLM_SWIZZLE_GEN_REF3_FROM_VEC3_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC3_TYPE, A, B, C) \
+
105  GLM_SWIZZLE_GEN_REF2_FROM_VEC3_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, A, B, C)
+
106 
+
107 #define GLM_SWIZZLE_GEN_REF_FROM_VEC3(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE) \
+
108  GLM_SWIZZLE_GEN_REF_FROM_VEC3_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, x, y, z) \
+
109  GLM_SWIZZLE_GEN_REF_FROM_VEC3_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, r, g, b) \
+
110  GLM_SWIZZLE_GEN_REF_FROM_VEC3_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, s, t, p)
+
111 
+
112 //GLM_SWIZZLE_GEN_REF_FROM_VEC3(valType, detail::vec3, detail::ref2, detail::ref3)
+
113 
+
114 #define GLM_SWIZZLE_GEN_REF2_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C, D) \
+
115  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, B) \
+
116  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, C) \
+
117  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, D) \
+
118  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, A) \
+
119  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, C) \
+
120  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, D) \
+
121  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, C, A) \
+
122  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, C, B) \
+
123  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, C, D) \
+
124  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, D, A) \
+
125  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, D, B) \
+
126  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, D, C)
+
127 
+
128 #define GLM_SWIZZLE_GEN_REF3_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C, D) \
+
129  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, B, C) \
+
130  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, B, D) \
+
131  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, C, B) \
+
132  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, C, D) \
+
133  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, D, B) \
+
134  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, D, C) \
+
135  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, A, C) \
+
136  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, A, D) \
+
137  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, C, A) \
+
138  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, C, D) \
+
139  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, D, A) \
+
140  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, D, C) \
+
141  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, A, B) \
+
142  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, A, D) \
+
143  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, B, A) \
+
144  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, B, D) \
+
145  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, D, A) \
+
146  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, D, B) \
+
147  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, A, B) \
+
148  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, A, C) \
+
149  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, B, A) \
+
150  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, B, C) \
+
151  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, C, A) \
+
152  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, C, B)
+
153 
+
154 #define GLM_SWIZZLE_GEN_REF4_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C, D) \
+
155  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, C, B, D) \
+
156  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, C, D, B) \
+
157  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, D, B, C) \
+
158  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, D, C, B) \
+
159  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, B, D, C) \
+
160  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, B, C, D) \
+
161  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, C, A, D) \
+
162  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, C, D, A) \
+
163  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, D, A, C) \
+
164  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, D, C, A) \
+
165  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, A, D, C) \
+
166  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, A, C, D) \
+
167  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, B, A, D) \
+
168  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, B, D, A) \
+
169  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, D, A, B) \
+
170  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, D, B, A) \
+
171  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, A, D, B) \
+
172  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, A, B, D) \
+
173  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, C, B, A) \
+
174  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, C, A, B) \
+
175  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, A, B, C) \
+
176  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, A, C, B) \
+
177  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, B, A, C) \
+
178  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, B, C, A)
+
179 
+
180 #define GLM_SWIZZLE_GEN_REF_FROM_VEC4_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, A, B, C, D) \
+
181  GLM_SWIZZLE_GEN_REF2_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, A, B, C, D) \
+
182  GLM_SWIZZLE_GEN_REF3_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC3_TYPE, A, B, C, D) \
+
183  GLM_SWIZZLE_GEN_REF4_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC4_TYPE, A, B, C, D)
+
184 
+
185 #define GLM_SWIZZLE_GEN_REF_FROM_VEC4(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE) \
+
186  GLM_SWIZZLE_GEN_REF_FROM_VEC4_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, x, y, z, w) \
+
187  GLM_SWIZZLE_GEN_REF_FROM_VEC4_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, r, g, b, a) \
+
188  GLM_SWIZZLE_GEN_REF_FROM_VEC4_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, s, t, p, q)
+
189 
+
190 //GLM_SWIZZLE_GEN_REF_FROM_VEC4(valType, detail::vec4, detail::ref2, detail::ref3, detail::ref4)
+
191 
+
192 #define GLM_SWIZZLE_GEN_VEC2_FROM_VEC2_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B) \
+
193  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A) \
+
194  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B) \
+
195  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A) \
+
196  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B)
+
197 
+
198 #define GLM_SWIZZLE_GEN_VEC3_FROM_VEC2_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B) \
+
199  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A) \
+
200  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B) \
+
201  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A) \
+
202  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B) \
+
203  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A) \
+
204  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B) \
+
205  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A) \
+
206  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B)
+
207 
+
208 #define GLM_SWIZZLE_GEN_VEC4_FROM_VEC2_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B) \
+
209  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, A) \
+
210  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, B) \
+
211  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, A) \
+
212  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, B) \
+
213  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, A) \
+
214  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, B) \
+
215  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, A) \
+
216  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, B) \
+
217  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, A) \
+
218  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, B) \
+
219  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, A) \
+
220  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, B) \
+
221  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, A) \
+
222  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, B) \
+
223  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, A) \
+
224  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, B)
+
225 
+
226 #define GLM_SWIZZLE_GEN_VEC_FROM_VEC2_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, A, B) \
+
227  GLM_SWIZZLE_GEN_VEC2_FROM_VEC2_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, A, B) \
+
228  GLM_SWIZZLE_GEN_VEC3_FROM_VEC2_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC3_TYPE, A, B) \
+
229  GLM_SWIZZLE_GEN_VEC4_FROM_VEC2_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC4_TYPE, A, B)
+
230 
+
231 #define GLM_SWIZZLE_GEN_VEC_FROM_VEC2(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE) \
+
232  GLM_SWIZZLE_GEN_VEC_FROM_VEC2_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, x, y) \
+
233  GLM_SWIZZLE_GEN_VEC_FROM_VEC2_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, r, g) \
+
234  GLM_SWIZZLE_GEN_VEC_FROM_VEC2_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, s, t)
+
235 
+
236 //GLM_SWIZZLE_GEN_VEC_FROM_VEC2(valType, detail::vec2, detail::vec2, detail::vec3, detail::vec4)
+
237 
+
238 #define GLM_SWIZZLE_GEN_VEC2_FROM_VEC3_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C) \
+
239  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A) \
+
240  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B) \
+
241  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C) \
+
242  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A) \
+
243  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B) \
+
244  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C) \
+
245  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A) \
+
246  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B) \
+
247  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C)
+
248 
+
249 #define GLM_SWIZZLE_GEN_VEC3_FROM_VEC3_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C) \
+
250  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A) \
+
251  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B) \
+
252  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C) \
+
253  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A) \
+
254  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B) \
+
255  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C) \
+
256  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A) \
+
257  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B) \
+
258  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C) \
+
259  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A) \
+
260  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B) \
+
261  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C) \
+
262  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A) \
+
263  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B) \
+
264  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C) \
+
265  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A) \
+
266  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B) \
+
267  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C) \
+
268  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A) \
+
269  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B) \
+
270  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C) \
+
271  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A) \
+
272  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B) \
+
273  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C) \
+
274  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A) \
+
275  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B) \
+
276  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C)
+
277 
+
278 #define GLM_SWIZZLE_GEN_VEC4_FROM_VEC3_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C) \
+
279  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, A) \
+
280  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, B) \
+
281  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, C) \
+
282  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, A) \
+
283  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, B) \
+
284  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, C) \
+
285  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, A) \
+
286  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, B) \
+
287  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, C) \
+
288  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, A) \
+
289  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, B) \
+
290  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, C) \
+
291  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, A) \
+
292  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, B) \
+
293  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, C) \
+
294  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, A) \
+
295  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, B) \
+
296  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, C) \
+
297  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, A) \
+
298  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, B) \
+
299  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, C) \
+
300  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, A) \
+
301  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, B) \
+
302  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, C) \
+
303  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, A) \
+
304  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, B) \
+
305  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, C) \
+
306  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, A) \
+
307  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, B) \
+
308  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, C) \
+
309  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, A) \
+
310  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, B) \
+
311  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, C) \
+
312  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, A) \
+
313  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, B) \
+
314  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, C) \
+
315  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, A) \
+
316  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, B) \
+
317  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, C) \
+
318  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, A) \
+
319  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, B) \
+
320  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, C) \
+
321  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, A) \
+
322  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, B) \
+
323  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, C) \
+
324  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, A) \
+
325  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, B) \
+
326  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, C) \
+
327  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, A) \
+
328  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, B) \
+
329  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, C) \
+
330  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, A) \
+
331  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, B) \
+
332  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, C) \
+
333  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, A) \
+
334  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, B) \
+
335  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, C) \
+
336  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, A) \
+
337  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, B) \
+
338  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, C) \
+
339  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, A) \
+
340  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, B) \
+
341  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, C) \
+
342  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, A) \
+
343  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, B) \
+
344  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, C) \
+
345  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, A) \
+
346  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, B) \
+
347  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, C) \
+
348  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, A) \
+
349  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, B) \
+
350  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, C) \
+
351  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, A) \
+
352  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, B) \
+
353  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, C) \
+
354  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, A) \
+
355  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, B) \
+
356  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, C) \
+
357  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, A) \
+
358  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, B) \
+
359  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, C)
+
360 
+
361 #define GLM_SWIZZLE_GEN_VEC_FROM_VEC3_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, A, B, C) \
+
362  GLM_SWIZZLE_GEN_VEC2_FROM_VEC3_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, A, B, C) \
+
363  GLM_SWIZZLE_GEN_VEC3_FROM_VEC3_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC3_TYPE, A, B, C) \
+
364  GLM_SWIZZLE_GEN_VEC4_FROM_VEC3_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC4_TYPE, A, B, C)
+
365 
+
366 #define GLM_SWIZZLE_GEN_VEC_FROM_VEC3(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE) \
+
367  GLM_SWIZZLE_GEN_VEC_FROM_VEC3_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, x, y, z) \
+
368  GLM_SWIZZLE_GEN_VEC_FROM_VEC3_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, r, g, b) \
+
369  GLM_SWIZZLE_GEN_VEC_FROM_VEC3_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, s, t, p)
+
370 
+
371 //GLM_SWIZZLE_GEN_VEC_FROM_VEC3(valType, detail::vec3, detail::vec2, detail::vec3, detail::vec4)
+
372 
+
373 #define GLM_SWIZZLE_GEN_VEC2_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C, D) \
+
374  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A) \
+
375  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B) \
+
376  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C) \
+
377  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D) \
+
378  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A) \
+
379  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B) \
+
380  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C) \
+
381  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D) \
+
382  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A) \
+
383  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B) \
+
384  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C) \
+
385  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D) \
+
386  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A) \
+
387  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B) \
+
388  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C) \
+
389  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D)
+
390 
+
391 #define GLM_SWIZZLE_GEN_VEC3_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C, D) \
+
392  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A) \
+
393  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B) \
+
394  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C) \
+
395  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, D) \
+
396  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A) \
+
397  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B) \
+
398  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C) \
+
399  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, D) \
+
400  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A) \
+
401  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B) \
+
402  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C) \
+
403  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, D) \
+
404  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, A) \
+
405  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, B) \
+
406  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, C) \
+
407  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, D) \
+
408  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A) \
+
409  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B) \
+
410  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C) \
+
411  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, D) \
+
412  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A) \
+
413  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B) \
+
414  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C) \
+
415  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, D) \
+
416  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A) \
+
417  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B) \
+
418  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C) \
+
419  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, D) \
+
420  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, A) \
+
421  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, B) \
+
422  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, C) \
+
423  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, D) \
+
424  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A) \
+
425  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B) \
+
426  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C) \
+
427  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, D) \
+
428  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A) \
+
429  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B) \
+
430  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C) \
+
431  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, D) \
+
432  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A) \
+
433  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B) \
+
434  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C) \
+
435  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, D) \
+
436  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, A) \
+
437  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, B) \
+
438  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, C) \
+
439  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, D) \
+
440  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, A) \
+
441  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, B) \
+
442  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, C) \
+
443  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, D) \
+
444  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, A) \
+
445  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, B) \
+
446  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, C) \
+
447  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, D) \
+
448  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, A) \
+
449  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, B) \
+
450  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, C) \
+
451  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, D) \
+
452  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, A) \
+
453  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, B) \
+
454  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, C) \
+
455  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, D)
+
456 
+
457 #define GLM_SWIZZLE_GEN_VEC4_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C, D) \
+
458  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, A) \
+
459  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, B) \
+
460  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, C) \
+
461  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, D) \
+
462  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, A) \
+
463  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, B) \
+
464  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, C) \
+
465  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, D) \
+
466  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, A) \
+
467  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, B) \
+
468  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, C) \
+
469  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, D) \
+
470  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, D, A) \
+
471  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, D, B) \
+
472  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, D, C) \
+
473  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, D, D) \
+
474  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, A) \
+
475  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, B) \
+
476  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, C) \
+
477  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, D) \
+
478  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, A) \
+
479  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, B) \
+
480  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, C) \
+
481  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, D) \
+
482  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, A) \
+
483  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, B) \
+
484  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, C) \
+
485  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, D) \
+
486  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, D, A) \
+
487  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, D, B) \
+
488  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, D, C) \
+
489  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, D, D) \
+
490  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, A) \
+
491  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, B) \
+
492  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, C) \
+
493  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, D) \
+
494  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, A) \
+
495  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, B) \
+
496  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, C) \
+
497  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, D) \
+
498  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, A) \
+
499  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, B) \
+
500  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, C) \
+
501  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, D) \
+
502  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, D, A) \
+
503  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, D, B) \
+
504  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, D, C) \
+
505  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, D, D) \
+
506  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, A, A) \
+
507  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, A, B) \
+
508  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, A, C) \
+
509  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, A, D) \
+
510  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, B, A) \
+
511  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, B, B) \
+
512  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, B, C) \
+
513  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, B, D) \
+
514  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, C, A) \
+
515  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, C, B) \
+
516  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, C, C) \
+
517  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, C, D) \
+
518  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, D, A) \
+
519  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, D, B) \
+
520  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, D, C) \
+
521  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, D, D) \
+
522  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, A) \
+
523  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, B) \
+
524  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, C) \
+
525  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, D) \
+
526  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, A) \
+
527  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, B) \
+
528  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, C) \
+
529  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, D) \
+
530  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, A) \
+
531  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, B) \
+
532  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, C) \
+
533  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, D) \
+
534  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, D, A) \
+
535  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, D, B) \
+
536  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, D, C) \
+
537  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, D, D) \
+
538  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, A) \
+
539  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, B) \
+
540  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, C) \
+
541  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, D) \
+
542  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, A) \
+
543  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, B) \
+
544  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, C) \
+
545  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, D) \
+
546  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, A) \
+
547  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, B) \
+
548  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, C) \
+
549  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, D) \
+
550  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, D, A) \
+
551  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, D, B) \
+
552  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, D, C) \
+
553  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, D, D) \
+
554  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, A) \
+
555  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, B) \
+
556  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, C) \
+
557  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, D) \
+
558  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, A) \
+
559  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, B) \
+
560  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, C) \
+
561  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, D) \
+
562  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, A) \
+
563  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, B) \
+
564  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, C) \
+
565  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, D) \
+
566  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, D, A) \
+
567  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, D, B) \
+
568  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, D, C) \
+
569  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, D, D) \
+
570  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, A, A) \
+
571  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, A, B) \
+
572  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, A, C) \
+
573  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, A, D) \
+
574  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, B, A) \
+
575  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, B, B) \
+
576  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, B, C) \
+
577  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, B, D) \
+
578  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, C, A) \
+
579  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, C, B) \
+
580  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, C, C) \
+
581  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, C, D) \
+
582  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, D, A) \
+
583  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, D, B) \
+
584  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, D, C) \
+
585  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, D, D) \
+
586  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, A) \
+
587  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, B) \
+
588  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, C) \
+
589  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, D) \
+
590  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, A) \
+
591  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, B) \
+
592  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, C) \
+
593  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, D) \
+
594  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, A) \
+
595  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, B) \
+
596  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, C) \
+
597  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, D) \
+
598  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, D, A) \
+
599  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, D, B) \
+
600  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, D, C) \
+
601  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, D, D) \
+
602  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, A) \
+
603  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, B) \
+
604  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, C) \
+
605  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, D) \
+
606  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, A) \
+
607  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, B) \
+
608  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, C) \
+
609  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, D) \
+
610  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, A) \
+
611  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, B) \
+
612  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, C) \
+
613  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, D) \
+
614  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, D, A) \
+
615  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, D, B) \
+
616  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, D, C) \
+
617  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, D, D) \
+
618  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, A) \
+
619  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, B) \
+
620  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, C) \
+
621  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, D) \
+
622  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, A) \
+
623  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, B) \
+
624  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, C) \
+
625  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, D) \
+
626  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, A) \
+
627  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, B) \
+
628  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, C) \
+
629  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, D) \
+
630  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, D, A) \
+
631  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, D, B) \
+
632  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, D, C) \
+
633  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, D, D) \
+
634  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, A, A) \
+
635  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, A, B) \
+
636  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, A, C) \
+
637  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, A, D) \
+
638  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, B, A) \
+
639  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, B, B) \
+
640  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, B, C) \
+
641  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, B, D) \
+
642  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, C, A) \
+
643  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, C, B) \
+
644  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, C, C) \
+
645  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, C, D) \
+
646  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, D, A) \
+
647  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, D, B) \
+
648  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, D, C) \
+
649  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, D, D) \
+
650  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, A, A) \
+
651  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, A, B) \
+
652  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, A, C) \
+
653  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, A, D) \
+
654  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, B, A) \
+
655  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, B, B) \
+
656  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, B, C) \
+
657  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, B, D) \
+
658  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, C, A) \
+
659  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, C, B) \
+
660  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, C, C) \
+
661  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, C, D) \
+
662  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, D, A) \
+
663  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, D, B) \
+
664  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, D, C) \
+
665  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, D, D) \
+
666  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, A, A) \
+
667  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, A, B) \
+
668  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, A, C) \
+
669  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, A, D) \
+
670  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, B, A) \
+
671  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, B, B) \
+
672  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, B, C) \
+
673  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, B, D) \
+
674  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, C, A) \
+
675  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, C, B) \
+
676  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, C, C) \
+
677  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, C, D) \
+
678  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, D, A) \
+
679  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, D, B) \
+
680  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, D, C) \
+
681  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, D, D) \
+
682  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, A, A) \
+
683  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, A, B) \
+
684  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, A, C) \
+
685  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, A, D) \
+
686  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, B, A) \
+
687  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, B, B) \
+
688  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, B, C) \
+
689  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, B, D) \
+
690  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, C, A) \
+
691  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, C, B) \
+
692  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, C, C) \
+
693  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, C, D) \
+
694  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, D, A) \
+
695  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, D, B) \
+
696  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, D, C) \
+
697  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, D, D) \
+
698  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, A, A) \
+
699  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, A, B) \
+
700  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, A, C) \
+
701  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, A, D) \
+
702  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, B, A) \
+
703  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, B, B) \
+
704  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, B, C) \
+
705  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, B, D) \
+
706  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, C, A) \
+
707  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, C, B) \
+
708  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, C, C) \
+
709  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, C, D) \
+
710  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, D, A) \
+
711  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, D, B) \
+
712  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, D, C) \
+
713  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, D, D)
+
714 
+
715 #define GLM_SWIZZLE_GEN_VEC_FROM_VEC4_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, A, B, C, D) \
+
716  GLM_SWIZZLE_GEN_VEC2_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, A, B, C, D) \
+
717  GLM_SWIZZLE_GEN_VEC3_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC3_TYPE, A, B, C, D) \
+
718  GLM_SWIZZLE_GEN_VEC4_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC4_TYPE, A, B, C, D)
+
719 
+
720 #define GLM_SWIZZLE_GEN_VEC_FROM_VEC4(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE) \
+
721  GLM_SWIZZLE_GEN_VEC_FROM_VEC4_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, x, y, z, w) \
+
722  GLM_SWIZZLE_GEN_VEC_FROM_VEC4_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, r, g, b, a) \
+
723  GLM_SWIZZLE_GEN_VEC_FROM_VEC4_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, s, t, p, q)
+
724 
+
725 //GLM_SWIZZLE_GEN_VEC_FROM_VEC4(valType, detail::vec4, detail::vec2, detail::vec3, detail::vec4)
diff --git a/doc/api/a00006.html b/doc/api/a00006.html new file mode 100644 index 00000000..1a79daaa --- /dev/null +++ b/doc/api/a00006.html @@ -0,0 +1,73 @@ + + + + + + +0.9.6: _vectorize.hpp File Reference + + + + + + +
+
+ + + + + + + +
+
0.9.6 +
+
+
+ + + + + +
+
+
+
_vectorize.hpp File Reference
+
+
+ +

Go to the source code of this file.

+

Detailed Description

+

OpenGL Mathematics (glm.g-truc.net)

+

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+

GLM Core

+
Date
2011-10-14 / 2011-10-14
+
Author
Christophe Riccio
+ +

Definition in file _vectorize.hpp.

+
+ + + + diff --git a/doc/api/a00006_source.html b/doc/api/a00006_source.html index 9c1a9f75..8b047b21 100644 --- a/doc/api/a00006_source.html +++ b/doc/api/a00006_source.html @@ -3,8 +3,8 @@ - -GLM: _literals.hpp Source File + +0.9.6: _vectorize.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,44 +41,154 @@
-
_literals.hpp
+
_vectorize.hpp
-
1 
-
29 #ifndef glm_core_literals
-
30 #define glm_core_literals
-
31 
-
32 namespace glm
-
33 {
-
34 #define GLM_CXX11_USER_LITERALS
-
35 #ifdef GLM_CXX11_USER_LITERALS
-
36 /*
-
37  GLM_FUNC_QUALIFIER detail::half operator "" _h(long double const s)
-
38  {
-
39  return detail::half(s);
-
40  }
-
41 
-
42  GLM_FUNC_QUALIFIER float operator "" _f(long double const s)
-
43  {
-
44  return static_cast<float>(s);
-
45  }
-
46 */
-
47 #endif//GLM_CXX11_USER_LITERALS
-
48 
-
49 }//namespace glm
-
50 
-
51 #endif//glm_core_literals
+Go to the documentation of this file.
1 
+
33 #pragma once
+
34 
+
35 #include "type_vec1.hpp"
+
36 #include "type_vec2.hpp"
+
37 #include "type_vec3.hpp"
+
38 #include "type_vec4.hpp"
+
39 
+
40 namespace glm{
+
41 namespace detail
+
42 {
+
43  template <typename R, typename T, precision P, template <typename, precision> class vecType>
+
44  struct functor1{};
+
45 
+
46  template <typename R, typename T, precision P>
+
47  struct functor1<R, T, P, tvec1>
+
48  {
+
49  GLM_FUNC_QUALIFIER static tvec1<R, P> call(R (*Func) (T x), tvec1<T, P> const & v)
+
50  {
+
51  return tvec1<R, P>(Func(v.x));
+
52  }
+
53  };
+
54 
+
55  template <typename R, typename T, precision P>
+
56  struct functor1<R, T, P, tvec2>
+
57  {
+
58  GLM_FUNC_QUALIFIER static tvec2<R, P> call(R (*Func) (T x), tvec2<T, P> const & v)
+
59  {
+
60  return tvec2<R, P>(Func(v.x), Func(v.y));
+
61  }
+
62  };
+
63 
+
64  template <typename R, typename T, precision P>
+
65  struct functor1<R, T, P, tvec3>
+
66  {
+
67  GLM_FUNC_QUALIFIER static tvec3<R, P> call(R (*Func) (T x), tvec3<T, P> const & v)
+
68  {
+
69  return tvec3<R, P>(Func(v.x), Func(v.y), Func(v.z));
+
70  }
+
71  };
+
72 
+
73  template <typename R, typename T, precision P>
+
74  struct functor1<R, T, P, tvec4>
+
75  {
+
76  GLM_FUNC_QUALIFIER static tvec4<R, P> call(R (*Func) (T x), tvec4<T, P> const & v)
+
77  {
+
78  return tvec4<R, P>(Func(v.x), Func(v.y), Func(v.z), Func(v.w));
+
79  }
+
80  };
+
81 
+
82  template <typename T, precision P, template <typename, precision> class vecType>
+
83  struct functor2{};
+
84 
+
85  template <typename T, precision P>
+
86  struct functor2<T, P, tvec1>
+
87  {
+
88  GLM_FUNC_QUALIFIER static tvec1<T, P> call(T (*Func) (T x, T y), tvec1<T, P> const & a, tvec1<T, P> const & b)
+
89  {
+
90  return tvec1<T, P>(Func(a.x, b.x));
+
91  }
+
92  };
+
93 
+
94  template <typename T, precision P>
+
95  struct functor2<T, P, tvec2>
+
96  {
+
97  GLM_FUNC_QUALIFIER static tvec2<T, P> call(T (*Func) (T x, T y), tvec2<T, P> const & a, tvec2<T, P> const & b)
+
98  {
+
99  return tvec2<T, P>(Func(a.x, b.x), Func(a.y, b.y));
+
100  }
+
101  };
+
102 
+
103  template <typename T, precision P>
+
104  struct functor2<T, P, tvec3>
+
105  {
+
106  GLM_FUNC_QUALIFIER static tvec3<T, P> call(T (*Func) (T x, T y), tvec3<T, P> const & a, tvec3<T, P> const & b)
+
107  {
+
108  return tvec3<T, P>(Func(a.x, b.x), Func(a.y, b.y), Func(a.z, b.z));
+
109  }
+
110  };
+
111 
+
112  template <typename T, precision P>
+
113  struct functor2<T, P, tvec4>
+
114  {
+
115  GLM_FUNC_QUALIFIER static tvec4<T, P> call(T (*Func) (T x, T y), tvec4<T, P> const & a, tvec4<T, P> const & b)
+
116  {
+
117  return tvec4<T, P>(Func(a.x, b.x), Func(a.y, b.y), Func(a.z, b.z), Func(a.w, b.w));
+
118  }
+
119  };
+
120 
+
121  template <typename T, precision P, template <typename, precision> class vecType>
+
122  struct functor2_vec_sca{};
+
123 
+
124  template <typename T, precision P>
+
125  struct functor2_vec_sca<T, P, tvec1>
+
126  {
+
127  GLM_FUNC_QUALIFIER static tvec1<T, P> call(T (*Func) (T x, T y), tvec1<T, P> const & a, T b)
+
128  {
+
129  return tvec1<T, P>(Func(a.x, b));
+
130  }
+
131  };
+
132 
+
133  template <typename T, precision P>
+
134  struct functor2_vec_sca<T, P, tvec2>
+
135  {
+
136  GLM_FUNC_QUALIFIER static tvec2<T, P> call(T (*Func) (T x, T y), tvec2<T, P> const & a, T b)
+
137  {
+
138  return tvec2<T, P>(Func(a.x, b), Func(a.y, b));
+
139  }
+
140  };
+
141 
+
142  template <typename T, precision P>
+
143  struct functor2_vec_sca<T, P, tvec3>
+
144  {
+
145  GLM_FUNC_QUALIFIER static tvec3<T, P> call(T (*Func) (T x, T y), tvec3<T, P> const & a, T b)
+
146  {
+
147  return tvec3<T, P>(Func(a.x, b), Func(a.y, b), Func(a.z, b));
+
148  }
+
149  };
+
150 
+
151  template <typename T, precision P>
+
152  struct functor2_vec_sca<T, P, tvec4>
+
153  {
+
154  GLM_FUNC_QUALIFIER static tvec4<T, P> call(T (*Func) (T x, T y), tvec4<T, P> const & a, T b)
+
155  {
+
156  return tvec4<T, P>(Func(a.x, b), Func(a.y, b), Func(a.z, b), Func(a.w, b));
+
157  }
+
158  };
+
159 }//namespace detail
+
160 }//namespace glm
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
Definition: _noise.hpp:39
+
OpenGL Mathematics (glm.g-truc.net)
diff --git a/doc/api/a00007.html b/doc/api/a00007.html index 15593ac2..9225c73a 100644 --- a/doc/api/a00007.html +++ b/doc/api/a00007.html @@ -3,8 +3,8 @@ - -GLM: _noise.hpp File Reference + +0.9.6: associated_min_max.hpp File Reference @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,40 +41,108 @@
-Namespaces
+Functions
-
_noise.hpp File Reference
+
associated_min_max.hpp File Reference

Go to the source code of this file.

- - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

-Namespaces

 glm
 

+Functions

template<typename T , typename U >
GLM_FUNC_DECL U associatedMax (T x, U a, T y, U b)
 
template<typename T , typename U , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL tvec2< U, P > associatedMax (vecType< T, P > const &x, vecType< U, P > const &a, vecType< T, P > const &y, vecType< U, P > const &b)
 
template<typename T , typename U , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > associatedMax (T x, vecType< U, P > const &a, T y, vecType< U, P > const &b)
 
template<typename T , typename U , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< U, P > associatedMax (vecType< T, P > const &x, U a, vecType< T, P > const &y, U b)
 
template<typename T , typename U >
GLM_FUNC_DECL U associatedMax (T x, U a, T y, U b, T z, U c)
 
template<typename T , typename U , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< U, P > associatedMax (vecType< T, P > const &x, vecType< U, P > const &a, vecType< T, P > const &y, vecType< U, P > const &b, vecType< T, P > const &z, vecType< U, P > const &c)
 
template<typename T , typename U , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > associatedMax (T x, vecType< U, P > const &a, T y, vecType< U, P > const &b, T z, vecType< U, P > const &c)
 
template<typename T , typename U , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< U, P > associatedMax (vecType< T, P > const &x, U a, vecType< T, P > const &y, U b, vecType< T, P > const &z, U c)
 
template<typename T , typename U >
GLM_FUNC_DECL U associatedMax (T x, U a, T y, U b, T z, U c, T w, U d)
 
template<typename T , typename U , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< U, P > associatedMax (vecType< T, P > const &x, vecType< U, P > const &a, vecType< T, P > const &y, vecType< U, P > const &b, vecType< T, P > const &z, vecType< U, P > const &c, vecType< T, P > const &w, vecType< U, P > const &d)
 
template<typename T , typename U , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< U, P > associatedMax (T x, vecType< U, P > const &a, T y, vecType< U, P > const &b, T z, vecType< U, P > const &c, T w, vecType< U, P > const &d)
 
template<typename T , typename U , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< U, P > associatedMax (vecType< T, P > const &x, U a, vecType< T, P > const &y, U b, vecType< T, P > const &z, U c, vecType< T, P > const &w, U d)
 
template<typename T , typename U , precision P>
GLM_FUNC_DECL U associatedMin (T x, U a, T y, U b)
 
template<typename T , typename U , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL tvec2< U, P > associatedMin (vecType< T, P > const &x, vecType< U, P > const &a, vecType< T, P > const &y, vecType< U, P > const &b)
 
template<typename T , typename U , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< U, P > associatedMin (T x, const vecType< U, P > &a, T y, const vecType< U, P > &b)
 
template<typename T , typename U , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< U, P > associatedMin (vecType< T, P > const &x, U a, vecType< T, P > const &y, U b)
 
template<typename T , typename U >
GLM_FUNC_DECL U associatedMin (T x, U a, T y, U b, T z, U c)
 
template<typename T , typename U , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< U, P > associatedMin (vecType< T, P > const &x, vecType< U, P > const &a, vecType< T, P > const &y, vecType< U, P > const &b, vecType< T, P > const &z, vecType< U, P > const &c)
 
template<typename T , typename U >
GLM_FUNC_DECL U associatedMin (T x, U a, T y, U b, T z, U c, T w, U d)
 
template<typename T , typename U , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< U, P > associatedMin (vecType< T, P > const &x, vecType< U, P > const &a, vecType< T, P > const &y, vecType< U, P > const &b, vecType< T, P > const &z, vecType< U, P > const &c, vecType< T, P > const &w, vecType< U, P > const &d)
 
template<typename T , typename U , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< U, P > associatedMin (T x, vecType< U, P > const &a, T y, vecType< U, P > const &b, T z, vecType< U, P > const &c, T w, vecType< U, P > const &d)
 
template<typename T , typename U , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< U, P > associatedMin (vecType< T, P > const &x, U a, vecType< T, P > const &y, U b, vecType< T, P > const &z, U c, vecType< T, P > const &w, U d)
 

Detailed Description

OpenGL Mathematics (glm.g-truc.net)

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM Core

-
Date
2013-12-24 / 2013-12-24
-
Author
Christophe Riccio
+

GLM_GTX_associated_min_max

+
Date
2008-03-10 / 2014-10-11
+
Author
Christophe Riccio
+
See also
GLM Core (dependence)
+
+GLM_GTX_extented_min_max (dependence)
-

Definition in file _noise.hpp.

+

Definition in file associated_min_max.hpp.

diff --git a/doc/api/a00007_source.html b/doc/api/a00007_source.html index c5345751..1bbdfad9 100644 --- a/doc/api/a00007_source.html +++ b/doc/api/a00007_source.html @@ -3,8 +3,8 @@ - -GLM: _noise.hpp Source File + +0.9.6: associated_min_max.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,124 +41,167 @@
-
_noise.hpp
+
associated_min_max.hpp
Go to the documentation of this file.
1 
-
29 #ifndef GLM_DETAIL_NOISE_INCLUDED
-
30 #define GLM_DETAIL_NOISE_INCLUDED
-
31 
-
32 namespace glm{
-
33 namespace detail
-
34 {
-
35  template <typename T>
-
36  GLM_FUNC_QUALIFIER T mod289(T const & x)
-
37  {
-
38  return x - floor(x * static_cast<T>(1.0) / static_cast<T>(289.0)) * static_cast<T>(289.0);
-
39  }
-
40 
-
41  template <typename T>
-
42  GLM_FUNC_QUALIFIER T permute(T const & x)
-
43  {
-
44  return mod289(((x * static_cast<T>(34)) + static_cast<T>(1)) * x);
-
45  }
+
42 #pragma once
+
43 
+
44 // Dependency:
+
45 #include "../glm.hpp"
46 
-
47  template <typename T, precision P>
-
48  GLM_FUNC_QUALIFIER tvec2<T, P> permute(tvec2<T, P> const & x)
-
49  {
-
50  return mod289(((x * static_cast<T>(34)) + static_cast<T>(1)) * x);
-
51  }
-
52 
-
53  template <typename T, precision P>
-
54  GLM_FUNC_QUALIFIER tvec3<T, P> permute(tvec3<T, P> const & x)
-
55  {
-
56  return mod289(((x * static_cast<T>(34)) + static_cast<T>(1)) * x);
-
57  }
-
58 
-
59  template <typename T, precision P>
-
60  GLM_FUNC_QUALIFIER tvec4<T, P> permute(tvec4<T, P> const & x)
-
61  {
-
62  return mod289(((x * static_cast<T>(34)) + static_cast<T>(1)) * x);
-
63  }
-
64 /*
-
65  template <typename T, precision P, template<typename> class vecType>
-
66  GLM_FUNC_QUALIFIER vecType<T, P> permute(vecType<T, P> const & x)
-
67  {
-
68  return mod289(((x * T(34)) + T(1)) * x);
-
69  }
-
70 */
-
71  template <typename T>
-
72  GLM_FUNC_QUALIFIER T taylorInvSqrt(T const & r)
-
73  {
-
74  return T(1.79284291400159) - T(0.85373472095314) * r;
-
75  }
-
76 
-
77  template <typename T, precision P>
-
78  GLM_FUNC_QUALIFIER detail::tvec2<T, P> taylorInvSqrt(detail::tvec2<T, P> const & r)
-
79  {
-
80  return T(1.79284291400159) - T(0.85373472095314) * r;
-
81  }
-
82 
-
83  template <typename T, precision P>
-
84  GLM_FUNC_QUALIFIER detail::tvec3<T, P> taylorInvSqrt(detail::tvec3<T, P> const & r)
-
85  {
-
86  return T(1.79284291400159) - T(0.85373472095314) * r;
-
87  }
-
88 
-
89  template <typename T, precision P>
-
90  GLM_FUNC_QUALIFIER detail::tvec4<T, P> taylorInvSqrt(detail::tvec4<T, P> const & r)
-
91  {
-
92  return T(1.79284291400159) - T(0.85373472095314) * r;
-
93  }
-
94 /*
-
95  template <typename T, precision P, template<typename> class vecType>
-
96  GLM_FUNC_QUALIFIER vecType<T, P> taylorInvSqrt(vecType<T, P> const & r)
-
97  {
-
98  return T(1.79284291400159) - T(0.85373472095314) * r;
-
99  }
-
100 */
-
101 
-
102  template <typename T, precision P>
-
103  GLM_FUNC_QUALIFIER detail::tvec2<T, P> fade(detail::tvec2<T, P> const & t)
-
104  {
-
105  return (t * t * t) * (t * (t * T(6) - T(15)) + T(10));
-
106  }
-
107 
-
108  template <typename T, precision P>
-
109  GLM_FUNC_QUALIFIER detail::tvec3<T, P> fade(detail::tvec3<T, P> const & t)
-
110  {
-
111  return (t * t * t) * (t * (t * T(6) - T(15)) + T(10));
-
112  }
-
113 
-
114  template <typename T, precision P>
-
115  GLM_FUNC_QUALIFIER detail::tvec4<T, P> fade(detail::tvec4<T, P> const & t)
-
116  {
-
117  return (t * t * t) * (t * (t * T(6) - T(15)) + T(10));
-
118  }
-
119 /*
-
120  template <typename T, precision P, template <typename> class vecType>
-
121  GLM_FUNC_QUALIFIER vecType<T, P> fade(vecType<T, P> const & t)
-
122  {
-
123  return (t * t * t) * (t * (t * T(6) - T(15)) + T(10));
-
124  }
-
125 */
-
126 }//namespace detail
-
127 }//namespace glm
-
128 
-
129 #endif//GLM_DETAIL_NOISE_INCLUDED
-
130 
-
GLM_FUNC_DECL genType floor(genType const &x)
Returns a value equal to the nearest integer that is less then or equal to x.
+
47 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+
48 # pragma message("GLM: GLM_GTX_associated_min_max extension included")
+
49 #endif
+
50 
+
51 namespace glm
+
52 {
+
55 
+
58  template<typename T, typename U, precision P>
+
59  GLM_FUNC_DECL U associatedMin(T x, U a, T y, U b);
+
60 
+
63  template<typename T, typename U, precision P, template <typename, precision> class vecType>
+
64  GLM_FUNC_DECL tvec2<U, P> associatedMin(
+
65  vecType<T, P> const & x, vecType<U, P> const & a,
+
66  vecType<T, P> const & y, vecType<U, P> const & b);
+
67 
+
70  template<typename T, typename U, precision P, template <typename, precision> class vecType>
+
71  GLM_FUNC_DECL vecType<U, P> associatedMin(
+
72  T x, const vecType<U, P>& a,
+
73  T y, const vecType<U, P>& b);
+
74 
+
77  template<typename T, typename U, precision P, template <typename, precision> class vecType>
+
78  GLM_FUNC_DECL vecType<U, P> associatedMin(
+
79  vecType<T, P> const & x, U a,
+
80  vecType<T, P> const & y, U b);
+
81 
+
84  template<typename T, typename U>
+
85  GLM_FUNC_DECL U associatedMin(
+
86  T x, U a,
+
87  T y, U b,
+
88  T z, U c);
+
89 
+
92  template<typename T, typename U, precision P, template <typename, precision> class vecType>
+
93  GLM_FUNC_DECL vecType<U, P> associatedMin(
+
94  vecType<T, P> const & x, vecType<U, P> const & a,
+
95  vecType<T, P> const & y, vecType<U, P> const & b,
+
96  vecType<T, P> const & z, vecType<U, P> const & c);
+
97 
+
100  template<typename T, typename U>
+
101  GLM_FUNC_DECL U associatedMin(
+
102  T x, U a,
+
103  T y, U b,
+
104  T z, U c,
+
105  T w, U d);
+
106 
+
109  template<typename T, typename U, precision P, template <typename, precision> class vecType>
+
110  GLM_FUNC_DECL vecType<U, P> associatedMin(
+
111  vecType<T, P> const & x, vecType<U, P> const & a,
+
112  vecType<T, P> const & y, vecType<U, P> const & b,
+
113  vecType<T, P> const & z, vecType<U, P> const & c,
+
114  vecType<T, P> const & w, vecType<U, P> const & d);
+
115 
+
118  template<typename T, typename U, precision P, template <typename, precision> class vecType>
+
119  GLM_FUNC_DECL vecType<U, P> associatedMin(
+
120  T x, vecType<U, P> const & a,
+
121  T y, vecType<U, P> const & b,
+
122  T z, vecType<U, P> const & c,
+
123  T w, vecType<U, P> const & d);
+
124 
+
127  template<typename T, typename U, precision P, template <typename, precision> class vecType>
+
128  GLM_FUNC_DECL vecType<U, P> associatedMin(
+
129  vecType<T, P> const & x, U a,
+
130  vecType<T, P> const & y, U b,
+
131  vecType<T, P> const & z, U c,
+
132  vecType<T, P> const & w, U d);
+
133 
+
136  template<typename T, typename U>
+
137  GLM_FUNC_DECL U associatedMax(T x, U a, T y, U b);
+
138 
+
141  template<typename T, typename U, precision P, template <typename, precision> class vecType>
+
142  GLM_FUNC_DECL tvec2<U, P> associatedMax(
+
143  vecType<T, P> const & x, vecType<U, P> const & a,
+
144  vecType<T, P> const & y, vecType<U, P> const & b);
+
145 
+
148  template<typename T, typename U, precision P, template <typename, precision> class vecType>
+
149  GLM_FUNC_DECL vecType<T, P> associatedMax(
+
150  T x, vecType<U, P> const & a,
+
151  T y, vecType<U, P> const & b);
+
152 
+
155  template<typename T, typename U, precision P, template <typename, precision> class vecType>
+
156  GLM_FUNC_DECL vecType<U, P> associatedMax(
+
157  vecType<T, P> const & x, U a,
+
158  vecType<T, P> const & y, U b);
+
159 
+
162  template<typename T, typename U>
+
163  GLM_FUNC_DECL U associatedMax(
+
164  T x, U a,
+
165  T y, U b,
+
166  T z, U c);
+
167 
+
170  template<typename T, typename U, precision P, template <typename, precision> class vecType>
+
171  GLM_FUNC_DECL vecType<U, P> associatedMax(
+
172  vecType<T, P> const & x, vecType<U, P> const & a,
+
173  vecType<T, P> const & y, vecType<U, P> const & b,
+
174  vecType<T, P> const & z, vecType<U, P> const & c);
+
175 
+
178  template<typename T, typename U, precision P, template <typename, precision> class vecType>
+
179  GLM_FUNC_DECL vecType<T, P> associatedMax(
+
180  T x, vecType<U, P> const & a,
+
181  T y, vecType<U, P> const & b,
+
182  T z, vecType<U, P> const & c);
+
183 
+
186  template<typename T, typename U, precision P, template <typename, precision> class vecType>
+
187  GLM_FUNC_DECL vecType<U, P> associatedMax(
+
188  vecType<T, P> const & x, U a,
+
189  vecType<T, P> const & y, U b,
+
190  vecType<T, P> const & z, U c);
+
191 
+
194  template<typename T, typename U>
+
195  GLM_FUNC_DECL U associatedMax(
+
196  T x, U a,
+
197  T y, U b,
+
198  T z, U c,
+
199  T w, U d);
+
200 
+
203  template<typename T, typename U, precision P, template <typename, precision> class vecType>
+
204  GLM_FUNC_DECL vecType<U, P> associatedMax(
+
205  vecType<T, P> const & x, vecType<U, P> const & a,
+
206  vecType<T, P> const & y, vecType<U, P> const & b,
+
207  vecType<T, P> const & z, vecType<U, P> const & c,
+
208  vecType<T, P> const & w, vecType<U, P> const & d);
+
209 
+
212  template<typename T, typename U, precision P, template <typename, precision> class vecType>
+
213  GLM_FUNC_DECL vecType<U, P> associatedMax(
+
214  T x, vecType<U, P> const & a,
+
215  T y, vecType<U, P> const & b,
+
216  T z, vecType<U, P> const & c,
+
217  T w, vecType<U, P> const & d);
+
218 
+
221  template<typename T, typename U, precision P, template <typename, precision> class vecType>
+
222  GLM_FUNC_DECL vecType<U, P> associatedMax(
+
223  vecType<T, P> const & x, U a,
+
224  vecType<T, P> const & y, U b,
+
225  vecType<T, P> const & z, U c,
+
226  vecType<T, P> const & w, U d);
+
227 
+
229 } //namespace glm
+
230 
+
231 #include "associated_min_max.inl"
+
GLM_FUNC_DECL vecType< U, P > associatedMin(vecType< T, P > const &x, U a, vecType< T, P > const &y, U b, vecType< T, P > const &z, U c, vecType< T, P > const &w, U d)
Minimum comparison between 4 variables and returns 4 associated variable values.
+
Definition: _noise.hpp:39
+
GLM_FUNC_DECL vecType< U, P > associatedMax(vecType< T, P > const &x, U a, vecType< T, P > const &y, U b, vecType< T, P > const &z, U c, vecType< T, P > const &w, U d)
Maximum comparison between 4 variables and returns 4 associated variable values.
diff --git a/doc/api/a00008.html b/doc/api/a00008.html new file mode 100644 index 00000000..6a65be85 --- /dev/null +++ b/doc/api/a00008.html @@ -0,0 +1,112 @@ + + + + + + +0.9.6: bit.hpp File Reference + + + + + + +
+
+ + + + + + + +
+
0.9.6 +
+
+
+ + + + + +
+
+
+Functions
+
+
bit.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename genIUType >
GLM_FUNC_DECL genIUType highestBitValue (genIUType Value)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > highestBitValue (vecType< T, P > const &value)
 
template<typename genIUType >
GLM_DEPRECATED GLM_FUNC_DECL
+genIUType 
powerOfTwoAbove (genIUType Value)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_DEPRECATED GLM_FUNC_DECL
+vecType< T, P > 
powerOfTwoAbove (vecType< T, P > const &value)
 
template<typename genIUType >
GLM_DEPRECATED GLM_FUNC_DECL
+genIUType 
powerOfTwoBelow (genIUType Value)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_DEPRECATED GLM_FUNC_DECL
+vecType< T, P > 
powerOfTwoBelow (vecType< T, P > const &value)
 
template<typename genIUType >
GLM_DEPRECATED GLM_FUNC_DECL
+genIUType 
powerOfTwoNearest (genIUType Value)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_DEPRECATED GLM_FUNC_DECL
+vecType< T, P > 
powerOfTwoNearest (vecType< T, P > const &value)
 
+

Detailed Description

+

OpenGL Mathematics (glm.g-truc.net)

+

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+

GLM_GTX_bit

+
Date
2007-03-14 / 2011-06-07
+
Author
Christophe Riccio
+
See also
GLM Core (dependence)
+
+gtc_half_float (dependence)
+ +

Definition in file bit.hpp.

+
+ + + + diff --git a/doc/api/a00008_source.html b/doc/api/a00008_source.html index d11f3234..614bffcb 100644 --- a/doc/api/a00008_source.html +++ b/doc/api/a00008_source.html @@ -3,8 +3,8 @@ - -GLM: _swizzle.hpp Source File + +0.9.6: bit.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,834 +41,67 @@
-
_swizzle.hpp
+
bit.hpp
-
1 
-
29 #ifndef glm_core_swizzle
-
30 #define glm_core_swizzle
-
31 
-
32 namespace glm{
-
33 namespace detail
-
34 {
-
35  // Internal class for implementing swizzle operators
-
36  template <typename T, int N>
-
37  struct _swizzle_base0
-
38  {
-
39  typedef T value_type;
-
40 
-
41  protected:
-
42  GLM_FUNC_QUALIFIER value_type& elem (size_t i) { return (reinterpret_cast<value_type*>(_buffer))[i]; }
-
43  GLM_FUNC_QUALIFIER const value_type& elem (size_t i) const { return (reinterpret_cast<const value_type*>(_buffer))[i]; }
+Go to the documentation of this file.
1 
+
43 #pragma once
44 
-
45  // Use an opaque buffer to *ensure* the compiler doesn't call a constructor.
-
46  // The size 1 buffer is assumed to aligned to the actual members so that the
-
47  // elem()
-
48  char _buffer[1];
-
49  };
-
50 
-
51  template <typename T, precision P, typename V, int E0, int E1, int E2, int E3, int N>
-
52  struct _swizzle_base1 : public _swizzle_base0<T, N>
-
53  {
-
54  };
-
55 
-
56  template <typename T, precision P, typename V, int E0, int E1>
-
57  struct _swizzle_base1<T, P, V,E0,E1,-1,-2,2> : public _swizzle_base0<T, 2>
-
58  {
-
59  GLM_FUNC_QUALIFIER V operator ()() const { return V(this->elem(E0), this->elem(E1)); }
-
60  };
-
61 
-
62  template <typename T, precision P, typename V, int E0, int E1, int E2>
-
63  struct _swizzle_base1<T, P, V,E0,E1,E2,-1,3> : public _swizzle_base0<T, 3>
-
64  {
-
65  GLM_FUNC_QUALIFIER V operator ()() const { return V(this->elem(E0), this->elem(E1), this->elem(E2)); }
-
66  };
-
67 
-
68  template <typename T, precision P, typename V, int E0, int E1, int E2, int E3>
-
69  struct _swizzle_base1<T, P, V,E0,E1,E2,E3,4> : public _swizzle_base0<T, 4>
-
70  {
-
71  GLM_FUNC_QUALIFIER V operator ()() const { return V(this->elem(E0), this->elem(E1), this->elem(E2), this->elem(E3)); }
-
72  };
-
73 
-
74  // Internal class for implementing swizzle operators
-
75  /*
-
76  Template parameters:
-
77 
-
78  ValueType = type of scalar values (e.g. float, double)
-
79  VecType = class the swizzle is applies to (e.g. tvec3<float>)
-
80  N = number of components in the vector (e.g. 3)
-
81  E0...3 = what index the n-th element of this swizzle refers to in the unswizzled vec
-
82 
-
83  DUPLICATE_ELEMENTS = 1 if there is a repeated element, 0 otherwise (used to specialize swizzles
-
84  containing duplicate elements so that they cannot be used as r-values).
-
85  */
-
86  template <typename ValueType, precision P, typename VecType, int N, int E0, int E1, int E2, int E3, int DUPLICATE_ELEMENTS>
-
87  struct _swizzle_base2 : public _swizzle_base1<ValueType, P, VecType,E0,E1,E2,E3,N>
-
88  {
-
89  typedef VecType vec_type;
-
90  typedef ValueType value_type;
-
91 
-
92  GLM_FUNC_QUALIFIER _swizzle_base2& operator= (const ValueType& t)
-
93  {
-
94  for (int i = 0; i < N; ++i)
-
95  (*this)[i] = t;
-
96  return *this;
-
97  }
+
45 // Dependencies
+
46 #include "../gtc/bitfield.hpp"
+
47 
+
48 #if(defined(GLM_MESSAGES))
+
49 # pragma message("GLM: GLM_GTX_bit extension is deprecated, include GLM_GTC_bitfield and GLM_GTC_integer instead")
+
50 #endif
+
51 
+
52 namespace glm
+
53 {
+
56 
+
58  template <typename genIUType>
+
59  GLM_FUNC_DECL genIUType highestBitValue(genIUType Value);
+
60 
+
64  template <typename T, precision P, template <typename, precision> class vecType>
+
65  GLM_FUNC_DECL vecType<T, P> highestBitValue(vecType<T, P> const & value);
+
66 
+
72  template <typename genIUType>
+
73  GLM_DEPRECATED GLM_FUNC_DECL genIUType powerOfTwoAbove(genIUType Value);
+
74 
+
80  template <typename T, precision P, template <typename, precision> class vecType>
+
81  GLM_DEPRECATED GLM_FUNC_DECL vecType<T, P> powerOfTwoAbove(vecType<T, P> const & value);
+
82 
+
88  template <typename genIUType>
+
89  GLM_DEPRECATED GLM_FUNC_DECL genIUType powerOfTwoBelow(genIUType Value);
+
90 
+
96  template <typename T, precision P, template <typename, precision> class vecType>
+
97  GLM_DEPRECATED GLM_FUNC_DECL vecType<T, P> powerOfTwoBelow(vecType<T, P> const & value);
98 
-
99  GLM_FUNC_QUALIFIER _swizzle_base2& operator= (const VecType& that)
-
100  {
-
101  struct op {
-
102  GLM_FUNC_QUALIFIER void operator() (value_type& e, value_type& t) { e = t; }
-
103  };
-
104  _apply_op(that, op());
-
105  return *this;
-
106  }
-
107 
-
108  GLM_FUNC_QUALIFIER void operator -= (const VecType& that)
-
109  {
-
110  struct op {
-
111  GLM_FUNC_QUALIFIER void operator() (value_type& e, value_type& t) { e -= t; }
-
112  };
-
113  _apply_op(that, op());
-
114  }
-
115 
-
116  GLM_FUNC_QUALIFIER void operator += (const VecType& that)
-
117  {
-
118  struct op {
-
119  GLM_FUNC_QUALIFIER void operator() (value_type& e, value_type& t) { e += t; }
-
120  };
-
121  _apply_op(that, op());
-
122  }
-
123 
-
124  GLM_FUNC_QUALIFIER void operator *= (const VecType& that)
-
125  {
-
126  struct op {
-
127  GLM_FUNC_QUALIFIER void operator() (value_type& e, value_type& t) { e *= t; }
-
128  };
-
129  _apply_op(that, op());
-
130  }
-
131 
-
132  GLM_FUNC_QUALIFIER void operator /= (const VecType& that)
-
133  {
-
134  struct op {
-
135  GLM_FUNC_QUALIFIER void operator() (value_type& e, value_type& t) { e /= t; }
-
136  };
-
137  _apply_op(that, op());
-
138  }
-
139 
-
140  GLM_FUNC_QUALIFIER value_type& operator[] (size_t i)
-
141  {
-
142 #ifndef __CUDA_ARCH__
-
143  static
-
144 #endif
-
145  const int offset_dst[4] = { E0, E1, E2, E3 };
-
146  return this->elem(offset_dst[i]);
-
147  }
-
148  GLM_FUNC_QUALIFIER value_type operator[] (size_t i) const
-
149  {
-
150 #ifndef __CUDA_ARCH__
-
151  static
-
152 #endif
-
153  const int offset_dst[4] = { E0, E1, E2, E3 };
-
154  return this->elem(offset_dst[i]);
-
155  }
-
156  protected:
-
157  template <typename T>
-
158  GLM_FUNC_QUALIFIER void _apply_op(const VecType& that, T op)
-
159  {
-
160  // Make a copy of the data in this == &that.
-
161  // The copier should optimize out the copy in cases where the function is
-
162  // properly inlined and the copy is not necessary.
-
163  ValueType t[N];
-
164  for (int i = 0; i < N; ++i)
-
165  t[i] = that[i];
-
166  for (int i = 0; i < N; ++i)
-
167  op( (*this)[i], t[i] );
-
168  }
-
169  };
-
170 
-
171  // Specialization for swizzles containing duplicate elements. These cannot be modified.
-
172  template <typename ValueType, precision P, typename VecType, int N, int E0, int E1, int E2, int E3>
-
173  struct _swizzle_base2<ValueType, P, VecType,N,E0,E1,E2,E3,1> : public _swizzle_base1<ValueType, P, VecType,E0,E1,E2,E3,N>
-
174  {
-
175  typedef VecType vec_type;
-
176  typedef ValueType value_type;
-
177 
-
178  struct Stub {};
-
179  GLM_FUNC_QUALIFIER _swizzle_base2& operator= (Stub const &) { return *this; }
-
180 
-
181  GLM_FUNC_QUALIFIER value_type operator[] (size_t i) const
-
182  {
-
183 #ifndef __CUDA_ARCH__
-
184  static
-
185 #endif
-
186  const int offset_dst[4] = { E0, E1, E2, E3 };
-
187  return this->elem(offset_dst[i]);
-
188  }
-
189  };
-
190 
-
191  template <int N,typename ValueType, precision P, typename VecType, int E0,int E1,int E2,int E3>
-
192  struct _swizzle : public _swizzle_base2<ValueType, P, VecType, N,E0,E1,E2,E3,(E0==E1||E0==E2||E0==E3||E1==E2||E1==E3||E2==E3)>
-
193  {
-
194  typedef _swizzle_base2<ValueType, P, VecType,N,E0,E1,E2,E3,(E0==E1||E0==E2||E0==E3||E1==E2||E1==E3||E2==E3)> base_type;
-
195 
-
196  using base_type::operator=;
-
197 
-
198  GLM_FUNC_QUALIFIER operator VecType () const { return (*this)(); }
-
199  };
-
200 
-
201 //
-
202 // To prevent the C++ syntax from getting entirely overwhelming, define some alias macros
-
203 //
-
204 #define _GLM_SWIZZLE_TEMPLATE1 template <int N, typename T, precision P, typename V, int E0, int E1, int E2, int E3>
-
205 #define _GLM_SWIZZLE_TEMPLATE2 template <int N, typename T, precision P, typename V, int E0, int E1, int E2, int E3, int F0, int F1, int F2, int F3>
-
206 #define _GLM_SWIZZLE_TYPE1 _swizzle<N, T, P, V, E0, E1, E2, E3>
-
207 #define _GLM_SWIZZLE_TYPE2 _swizzle<N, T, P, V, F0, F1, F2, F3>
-
208 
-
209 //
-
210 // Wrapper for a binary operator (e.g. u.yy + v.zy)
-
211 //
-
212 #define _GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(OPERAND) \
-
213  _GLM_SWIZZLE_TEMPLATE2 \
-
214  GLM_FUNC_QUALIFIER V operator OPERAND ( const _GLM_SWIZZLE_TYPE1& a, const _GLM_SWIZZLE_TYPE2& b) \
-
215  { \
-
216  return a() OPERAND b(); \
-
217  } \
-
218  _GLM_SWIZZLE_TEMPLATE1 \
-
219  GLM_FUNC_QUALIFIER V operator OPERAND ( const _GLM_SWIZZLE_TYPE1& a, const V& b) \
-
220  { \
-
221  return a() OPERAND b; \
-
222  } \
-
223  _GLM_SWIZZLE_TEMPLATE1 \
-
224  GLM_FUNC_QUALIFIER V operator OPERAND ( const V& a, const _GLM_SWIZZLE_TYPE1& b) \
-
225  { \
-
226  return a OPERAND b(); \
-
227  }
-
228 
-
229 //
-
230 // Wrapper for a operand between a swizzle and a binary (e.g. 1.0f - u.xyz)
-
231 //
-
232 #define _GLM_SWIZZLE_SCALAR_BINARY_OPERATOR_IMPLEMENTATION(OPERAND) \
-
233  _GLM_SWIZZLE_TEMPLATE1 \
-
234  GLM_FUNC_QUALIFIER V operator OPERAND ( const _GLM_SWIZZLE_TYPE1& a, const T& b) \
-
235  { \
-
236  return a() OPERAND b; \
-
237  } \
-
238  _GLM_SWIZZLE_TEMPLATE1 \
-
239  GLM_FUNC_QUALIFIER V operator OPERAND ( const T& a, const _GLM_SWIZZLE_TYPE1& b) \
-
240  { \
-
241  return a OPERAND b(); \
-
242  }
-
243 
-
244 //
-
245 // Macro for wrapping a function taking one argument (e.g. abs())
-
246 //
-
247 #define _GLM_SWIZZLE_FUNCTION_1_ARGS(RETURN_TYPE,FUNCTION) \
-
248  _GLM_SWIZZLE_TEMPLATE1 \
-
249  GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1& a) \
-
250  { \
-
251  return FUNCTION(a()); \
-
252  }
-
253 
-
254 //
-
255 // Macro for wrapping a function taking two vector arguments (e.g. dot()).
-
256 //
-
257 #define _GLM_SWIZZLE_FUNCTION_2_ARGS(RETURN_TYPE,FUNCTION) \
-
258  _GLM_SWIZZLE_TEMPLATE2 \
-
259  GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1& a, const _GLM_SWIZZLE_TYPE2& b) \
-
260  { \
-
261  return FUNCTION(a(), b()); \
-
262  } \
-
263  _GLM_SWIZZLE_TEMPLATE1 \
-
264  GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1& a, const _GLM_SWIZZLE_TYPE1& b) \
-
265  { \
-
266  return FUNCTION(a(), b()); \
-
267  } \
-
268  _GLM_SWIZZLE_TEMPLATE1 \
-
269  GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1& a, const typename V& b) \
-
270  { \
-
271  return FUNCTION(a(), b); \
-
272  } \
-
273  _GLM_SWIZZLE_TEMPLATE1 \
-
274  GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const V& a, const _GLM_SWIZZLE_TYPE1& b) \
-
275  { \
-
276  return FUNCTION(a, b()); \
-
277  }
-
278 
-
279 //
-
280 // Macro for wrapping a function take 2 vec arguments followed by a scalar (e.g. mix()).
-
281 //
-
282 #define _GLM_SWIZZLE_FUNCTION_2_ARGS_SCALAR(RETURN_TYPE,FUNCTION) \
-
283  _GLM_SWIZZLE_TEMPLATE2 \
-
284  GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1& a, const _GLM_SWIZZLE_TYPE2& b, const T& c) \
-
285  { \
-
286  return FUNCTION(a(), b(), c); \
-
287  } \
-
288  _GLM_SWIZZLE_TEMPLATE1 \
-
289  GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1& a, const _GLM_SWIZZLE_TYPE1& b, const T& c) \
-
290  { \
-
291  return FUNCTION(a(), b(), c); \
-
292  } \
-
293  _GLM_SWIZZLE_TEMPLATE1 \
-
294  GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1& a, const typename S0::vec_type& b, const T& c)\
-
295  { \
-
296  return FUNCTION(a(), b, c); \
-
297  } \
-
298  _GLM_SWIZZLE_TEMPLATE1 \
-
299  GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const typename V& a, const _GLM_SWIZZLE_TYPE1& b, const T& c) \
-
300  { \
-
301  return FUNCTION(a, b(), c); \
-
302  }
-
303 
-
304 }//namespace detail
-
305 }//namespace glm
-
306 
-
307 namespace glm
-
308 {
-
309  namespace detail
-
310  {
-
311  _GLM_SWIZZLE_SCALAR_BINARY_OPERATOR_IMPLEMENTATION(-)
-
312  _GLM_SWIZZLE_SCALAR_BINARY_OPERATOR_IMPLEMENTATION(*)
-
313  _GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(+)
-
314  _GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(-)
-
315  _GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(*)
-
316  _GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(/)
-
317  }
-
318 
-
319  //
-
320  // Swizzles are distinct types from the unswizzled type. The below macros will
-
321  // provide template specializations for the swizzle types for the given functions
-
322  // so that the compiler does not have any ambiguity to choosing how to handle
-
323  // the function.
-
324  //
-
325  // The alternative is to use the operator()() when calling the function in order
-
326  // to explicitly convert the swizzled type to the unswizzled type.
-
327  //
-
328 
-
329  //_GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type, abs);
-
330  //_GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type, acos);
-
331  //_GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type, acosh);
-
332  //_GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type, all);
-
333  //_GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type, any);
-
334 
-
335  //_GLM_SWIZZLE_FUNCTION_2_ARGS(value_type, dot);
-
336  //_GLM_SWIZZLE_FUNCTION_2_ARGS(vec_type, cross);
-
337  //_GLM_SWIZZLE_FUNCTION_2_ARGS(vec_type, step);
-
338  //_GLM_SWIZZLE_FUNCTION_2_ARGS_SCALAR(vec_type, mix);
-
339 }
-
340 
-
341 #define _GLM_SWIZZLE2_2_MEMBERS(T, P, V, E0,E1) \
-
342  struct { _swizzle<2, T, P, V<T, P>, 0,0,-1,-2> E0 ## E0; }; \
-
343  struct { _swizzle<2, T, P, V<T, P>, 0,1,-1,-2> E0 ## E1; }; \
-
344  struct { _swizzle<2, T, P, V<T, P>, 1,0,-1,-2> E1 ## E0; }; \
-
345  struct { _swizzle<2, T, P, V<T, P>, 1,1,-1,-2> E1 ## E1; };
-
346 
-
347 #define _GLM_SWIZZLE2_3_MEMBERS(T, P, V, E0,E1) \
-
348  struct { _swizzle<3,T, P, V<T, P>, 0,0,0,-1> E0 ## E0 ## E0; }; \
-
349  struct { _swizzle<3,T, P, V<T, P>, 0,0,1,-1> E0 ## E0 ## E1; }; \
-
350  struct { _swizzle<3,T, P, V<T, P>, 0,1,0,-1> E0 ## E1 ## E0; }; \
-
351  struct { _swizzle<3,T, P, V<T, P>, 0,1,1,-1> E0 ## E1 ## E1; }; \
-
352  struct { _swizzle<3,T, P, V<T, P>, 1,0,0,-1> E1 ## E0 ## E0; }; \
-
353  struct { _swizzle<3,T, P, V<T, P>, 1,0,1,-1> E1 ## E0 ## E1; }; \
-
354  struct { _swizzle<3,T, P, V<T, P>, 1,1,0,-1> E1 ## E1 ## E0; }; \
-
355  struct { _swizzle<3,T, P, V<T, P>, 1,1,1,-1> E1 ## E1 ## E1; };
-
356 
-
357 #define _GLM_SWIZZLE2_4_MEMBERS(T, P, V, E0,E1) \
-
358  struct { _swizzle<4,T, P, V<T, P>, 0,0,0,0> E0 ## E0 ## E0 ## E0; }; \
-
359  struct { _swizzle<4,T, P, V<T, P>, 0,0,0,1> E0 ## E0 ## E0 ## E1; }; \
-
360  struct { _swizzle<4,T, P, V<T, P>, 0,0,1,0> E0 ## E0 ## E1 ## E0; }; \
-
361  struct { _swizzle<4,T, P, V<T, P>, 0,0,1,1> E0 ## E0 ## E1 ## E1; }; \
-
362  struct { _swizzle<4,T, P, V<T, P>, 0,1,0,0> E0 ## E1 ## E0 ## E0; }; \
-
363  struct { _swizzle<4,T, P, V<T, P>, 0,1,0,1> E0 ## E1 ## E0 ## E1; }; \
-
364  struct { _swizzle<4,T, P, V<T, P>, 0,1,1,0> E0 ## E1 ## E1 ## E0; }; \
-
365  struct { _swizzle<4,T, P, V<T, P>, 0,1,1,1> E0 ## E1 ## E1 ## E1; }; \
-
366  struct { _swizzle<4,T, P, V<T, P>, 1,0,0,0> E1 ## E0 ## E0 ## E0; }; \
-
367  struct { _swizzle<4,T, P, V<T, P>, 1,0,0,1> E1 ## E0 ## E0 ## E1; }; \
-
368  struct { _swizzle<4,T, P, V<T, P>, 1,0,1,0> E1 ## E0 ## E1 ## E0; }; \
-
369  struct { _swizzle<4,T, P, V<T, P>, 1,0,1,1> E1 ## E0 ## E1 ## E1; }; \
-
370  struct { _swizzle<4,T, P, V<T, P>, 1,1,0,0> E1 ## E1 ## E0 ## E0; }; \
-
371  struct { _swizzle<4,T, P, V<T, P>, 1,1,0,1> E1 ## E1 ## E0 ## E1; }; \
-
372  struct { _swizzle<4,T, P, V<T, P>, 1,1,1,0> E1 ## E1 ## E1 ## E0; }; \
-
373  struct { _swizzle<4,T, P, V<T, P>, 1,1,1,1> E1 ## E1 ## E1 ## E1; };
-
374 
-
375 #define _GLM_SWIZZLE3_2_MEMBERS(T, P, V, E0,E1,E2) \
-
376  struct { _swizzle<2,T, P, V<T, P>, 0,0,-1,-2> E0 ## E0; }; \
-
377  struct { _swizzle<2,T, P, V<T, P>, 0,1,-1,-2> E0 ## E1; }; \
-
378  struct { _swizzle<2,T, P, V<T, P>, 0,2,-1,-2> E0 ## E2; }; \
-
379  struct { _swizzle<2,T, P, V<T, P>, 1,0,-1,-2> E1 ## E0; }; \
-
380  struct { _swizzle<2,T, P, V<T, P>, 1,1,-1,-2> E1 ## E1; }; \
-
381  struct { _swizzle<2,T, P, V<T, P>, 1,2,-1,-2> E1 ## E2; }; \
-
382  struct { _swizzle<2,T, P, V<T, P>, 2,0,-1,-2> E2 ## E0; }; \
-
383  struct { _swizzle<2,T, P, V<T, P>, 2,1,-1,-2> E2 ## E1; }; \
-
384  struct { _swizzle<2,T, P, V<T, P>, 2,2,-1,-2> E2 ## E2; };
-
385 
-
386 #define _GLM_SWIZZLE3_3_MEMBERS(T, P, V ,E0,E1,E2) \
-
387  struct { _swizzle<3,T,P, V<T, P>, 0,0,0,-1> E0 ## E0 ## E0; }; \
-
388  struct { _swizzle<3,T,P, V<T, P>, 0,0,1,-1> E0 ## E0 ## E1; }; \
-
389  struct { _swizzle<3,T,P, V<T, P>, 0,0,2,-1> E0 ## E0 ## E2; }; \
-
390  struct { _swizzle<3,T,P, V<T, P>, 0,1,0,-1> E0 ## E1 ## E0; }; \
-
391  struct { _swizzle<3,T,P, V<T, P>, 0,1,1,-1> E0 ## E1 ## E1; }; \
-
392  struct { _swizzle<3,T,P, V<T, P>, 0,1,2,-1> E0 ## E1 ## E2; }; \
-
393  struct { _swizzle<3,T,P, V<T, P>, 0,2,0,-1> E0 ## E2 ## E0; }; \
-
394  struct { _swizzle<3,T,P, V<T, P>, 0,2,1,-1> E0 ## E2 ## E1; }; \
-
395  struct { _swizzle<3,T,P, V<T, P>, 0,2,2,-1> E0 ## E2 ## E2; }; \
-
396  struct { _swizzle<3,T,P, V<T, P>, 1,0,0,-1> E1 ## E0 ## E0; }; \
-
397  struct { _swizzle<3,T,P, V<T, P>, 1,0,1,-1> E1 ## E0 ## E1; }; \
-
398  struct { _swizzle<3,T,P, V<T, P>, 1,0,2,-1> E1 ## E0 ## E2; }; \
-
399  struct { _swizzle<3,T,P, V<T, P>, 1,1,0,-1> E1 ## E1 ## E0; }; \
-
400  struct { _swizzle<3,T,P, V<T, P>, 1,1,1,-1> E1 ## E1 ## E1; }; \
-
401  struct { _swizzle<3,T,P, V<T, P>, 1,1,2,-1> E1 ## E1 ## E2; }; \
-
402  struct { _swizzle<3,T,P, V<T, P>, 1,2,0,-1> E1 ## E2 ## E0; }; \
-
403  struct { _swizzle<3,T,P, V<T, P>, 1,2,1,-1> E1 ## E2 ## E1; }; \
-
404  struct { _swizzle<3,T,P, V<T, P>, 1,2,2,-1> E1 ## E2 ## E2; }; \
-
405  struct { _swizzle<3,T,P, V<T, P>, 2,0,0,-1> E2 ## E0 ## E0; }; \
-
406  struct { _swizzle<3,T,P, V<T, P>, 2,0,1,-1> E2 ## E0 ## E1; }; \
-
407  struct { _swizzle<3,T,P, V<T, P>, 2,0,2,-1> E2 ## E0 ## E2; }; \
-
408  struct { _swizzle<3,T,P, V<T, P>, 2,1,0,-1> E2 ## E1 ## E0; }; \
-
409  struct { _swizzle<3,T,P, V<T, P>, 2,1,1,-1> E2 ## E1 ## E1; }; \
-
410  struct { _swizzle<3,T,P, V<T, P>, 2,1,2,-1> E2 ## E1 ## E2; }; \
-
411  struct { _swizzle<3,T,P, V<T, P>, 2,2,0,-1> E2 ## E2 ## E0; }; \
-
412  struct { _swizzle<3,T,P, V<T, P>, 2,2,1,-1> E2 ## E2 ## E1; }; \
-
413  struct { _swizzle<3,T,P, V<T, P>, 2,2,2,-1> E2 ## E2 ## E2; };
-
414 
-
415 #define _GLM_SWIZZLE3_4_MEMBERS(T, P, V, E0,E1,E2) \
-
416  struct { _swizzle<4,T, P, V<T, P>, 0,0,0,0> E0 ## E0 ## E0 ## E0; }; \
-
417  struct { _swizzle<4,T, P, V<T, P>, 0,0,0,1> E0 ## E0 ## E0 ## E1; }; \
-
418  struct { _swizzle<4,T, P, V<T, P>, 0,0,0,2> E0 ## E0 ## E0 ## E2; }; \
-
419  struct { _swizzle<4,T, P, V<T, P>, 0,0,1,0> E0 ## E0 ## E1 ## E0; }; \
-
420  struct { _swizzle<4,T, P, V<T, P>, 0,0,1,1> E0 ## E0 ## E1 ## E1; }; \
-
421  struct { _swizzle<4,T, P, V<T, P>, 0,0,1,2> E0 ## E0 ## E1 ## E2; }; \
-
422  struct { _swizzle<4,T, P, V<T, P>, 0,0,2,0> E0 ## E0 ## E2 ## E0; }; \
-
423  struct { _swizzle<4,T, P, V<T, P>, 0,0,2,1> E0 ## E0 ## E2 ## E1; }; \
-
424  struct { _swizzle<4,T, P, V<T, P>, 0,0,2,2> E0 ## E0 ## E2 ## E2; }; \
-
425  struct { _swizzle<4,T, P, V<T, P>, 0,1,0,0> E0 ## E1 ## E0 ## E0; }; \
-
426  struct { _swizzle<4,T, P, V<T, P>, 0,1,0,1> E0 ## E1 ## E0 ## E1; }; \
-
427  struct { _swizzle<4,T, P, V<T, P>, 0,1,0,2> E0 ## E1 ## E0 ## E2; }; \
-
428  struct { _swizzle<4,T, P, V<T, P>, 0,1,1,0> E0 ## E1 ## E1 ## E0; }; \
-
429  struct { _swizzle<4,T, P, V<T, P>, 0,1,1,1> E0 ## E1 ## E1 ## E1; }; \
-
430  struct { _swizzle<4,T, P, V<T, P>, 0,1,1,2> E0 ## E1 ## E1 ## E2; }; \
-
431  struct { _swizzle<4,T, P, V<T, P>, 0,1,2,0> E0 ## E1 ## E2 ## E0; }; \
-
432  struct { _swizzle<4,T, P, V<T, P>, 0,1,2,1> E0 ## E1 ## E2 ## E1; }; \
-
433  struct { _swizzle<4,T, P, V<T, P>, 0,1,2,2> E0 ## E1 ## E2 ## E2; }; \
-
434  struct { _swizzle<4,T, P, V<T, P>, 0,2,0,0> E0 ## E2 ## E0 ## E0; }; \
-
435  struct { _swizzle<4,T, P, V<T, P>, 0,2,0,1> E0 ## E2 ## E0 ## E1; }; \
-
436  struct { _swizzle<4,T, P, V<T, P>, 0,2,0,2> E0 ## E2 ## E0 ## E2; }; \
-
437  struct { _swizzle<4,T, P, V<T, P>, 0,2,1,0> E0 ## E2 ## E1 ## E0; }; \
-
438  struct { _swizzle<4,T, P, V<T, P>, 0,2,1,1> E0 ## E2 ## E1 ## E1; }; \
-
439  struct { _swizzle<4,T, P, V<T, P>, 0,2,1,2> E0 ## E2 ## E1 ## E2; }; \
-
440  struct { _swizzle<4,T, P, V<T, P>, 0,2,2,0> E0 ## E2 ## E2 ## E0; }; \
-
441  struct { _swizzle<4,T, P, V<T, P>, 0,2,2,1> E0 ## E2 ## E2 ## E1; }; \
-
442  struct { _swizzle<4,T, P, V<T, P>, 0,2,2,2> E0 ## E2 ## E2 ## E2; }; \
-
443  struct { _swizzle<4,T, P, V<T, P>, 1,0,0,0> E1 ## E0 ## E0 ## E0; }; \
-
444  struct { _swizzle<4,T, P, V<T, P>, 1,0,0,1> E1 ## E0 ## E0 ## E1; }; \
-
445  struct { _swizzle<4,T, P, V<T, P>, 1,0,0,2> E1 ## E0 ## E0 ## E2; }; \
-
446  struct { _swizzle<4,T, P, V<T, P>, 1,0,1,0> E1 ## E0 ## E1 ## E0; }; \
-
447  struct { _swizzle<4,T, P, V<T, P>, 1,0,1,1> E1 ## E0 ## E1 ## E1; }; \
-
448  struct { _swizzle<4,T, P, V<T, P>, 1,0,1,2> E1 ## E0 ## E1 ## E2; }; \
-
449  struct { _swizzle<4,T, P, V<T, P>, 1,0,2,0> E1 ## E0 ## E2 ## E0; }; \
-
450  struct { _swizzle<4,T, P, V<T, P>, 1,0,2,1> E1 ## E0 ## E2 ## E1; }; \
-
451  struct { _swizzle<4,T, P, V<T, P>, 1,0,2,2> E1 ## E0 ## E2 ## E2; }; \
-
452  struct { _swizzle<4,T, P, V<T, P>, 1,1,0,0> E1 ## E1 ## E0 ## E0; }; \
-
453  struct { _swizzle<4,T, P, V<T, P>, 1,1,0,1> E1 ## E1 ## E0 ## E1; }; \
-
454  struct { _swizzle<4,T, P, V<T, P>, 1,1,0,2> E1 ## E1 ## E0 ## E2; }; \
-
455  struct { _swizzle<4,T, P, V<T, P>, 1,1,1,0> E1 ## E1 ## E1 ## E0; }; \
-
456  struct { _swizzle<4,T, P, V<T, P>, 1,1,1,1> E1 ## E1 ## E1 ## E1; }; \
-
457  struct { _swizzle<4,T, P, V<T, P>, 1,1,1,2> E1 ## E1 ## E1 ## E2; }; \
-
458  struct { _swizzle<4,T, P, V<T, P>, 1,1,2,0> E1 ## E1 ## E2 ## E0; }; \
-
459  struct { _swizzle<4,T, P, V<T, P>, 1,1,2,1> E1 ## E1 ## E2 ## E1; }; \
-
460  struct { _swizzle<4,T, P, V<T, P>, 1,1,2,2> E1 ## E1 ## E2 ## E2; }; \
-
461  struct { _swizzle<4,T, P, V<T, P>, 1,2,0,0> E1 ## E2 ## E0 ## E0; }; \
-
462  struct { _swizzle<4,T, P, V<T, P>, 1,2,0,1> E1 ## E2 ## E0 ## E1; }; \
-
463  struct { _swizzle<4,T, P, V<T, P>, 1,2,0,2> E1 ## E2 ## E0 ## E2; }; \
-
464  struct { _swizzle<4,T, P, V<T, P>, 1,2,1,0> E1 ## E2 ## E1 ## E0; }; \
-
465  struct { _swizzle<4,T, P, V<T, P>, 1,2,1,1> E1 ## E2 ## E1 ## E1; }; \
-
466  struct { _swizzle<4,T, P, V<T, P>, 1,2,1,2> E1 ## E2 ## E1 ## E2; }; \
-
467  struct { _swizzle<4,T, P, V<T, P>, 1,2,2,0> E1 ## E2 ## E2 ## E0; }; \
-
468  struct { _swizzle<4,T, P, V<T, P>, 1,2,2,1> E1 ## E2 ## E2 ## E1; }; \
-
469  struct { _swizzle<4,T, P, V<T, P>, 1,2,2,2> E1 ## E2 ## E2 ## E2; }; \
-
470  struct { _swizzle<4,T, P, V<T, P>, 2,0,0,0> E2 ## E0 ## E0 ## E0; }; \
-
471  struct { _swizzle<4,T, P, V<T, P>, 2,0,0,1> E2 ## E0 ## E0 ## E1; }; \
-
472  struct { _swizzle<4,T, P, V<T, P>, 2,0,0,2> E2 ## E0 ## E0 ## E2; }; \
-
473  struct { _swizzle<4,T, P, V<T, P>, 2,0,1,0> E2 ## E0 ## E1 ## E0; }; \
-
474  struct { _swizzle<4,T, P, V<T, P>, 2,0,1,1> E2 ## E0 ## E1 ## E1; }; \
-
475  struct { _swizzle<4,T, P, V<T, P>, 2,0,1,2> E2 ## E0 ## E1 ## E2; }; \
-
476  struct { _swizzle<4,T, P, V<T, P>, 2,0,2,0> E2 ## E0 ## E2 ## E0; }; \
-
477  struct { _swizzle<4,T, P, V<T, P>, 2,0,2,1> E2 ## E0 ## E2 ## E1; }; \
-
478  struct { _swizzle<4,T, P, V<T, P>, 2,0,2,2> E2 ## E0 ## E2 ## E2; }; \
-
479  struct { _swizzle<4,T, P, V<T, P>, 2,1,0,0> E2 ## E1 ## E0 ## E0; }; \
-
480  struct { _swizzle<4,T, P, V<T, P>, 2,1,0,1> E2 ## E1 ## E0 ## E1; }; \
-
481  struct { _swizzle<4,T, P, V<T, P>, 2,1,0,2> E2 ## E1 ## E0 ## E2; }; \
-
482  struct { _swizzle<4,T, P, V<T, P>, 2,1,1,0> E2 ## E1 ## E1 ## E0; }; \
-
483  struct { _swizzle<4,T, P, V<T, P>, 2,1,1,1> E2 ## E1 ## E1 ## E1; }; \
-
484  struct { _swizzle<4,T, P, V<T, P>, 2,1,1,2> E2 ## E1 ## E1 ## E2; }; \
-
485  struct { _swizzle<4,T, P, V<T, P>, 2,1,2,0> E2 ## E1 ## E2 ## E0; }; \
-
486  struct { _swizzle<4,T, P, V<T, P>, 2,1,2,1> E2 ## E1 ## E2 ## E1; }; \
-
487  struct { _swizzle<4,T, P, V<T, P>, 2,1,2,2> E2 ## E1 ## E2 ## E2; }; \
-
488  struct { _swizzle<4,T, P, V<T, P>, 2,2,0,0> E2 ## E2 ## E0 ## E0; }; \
-
489  struct { _swizzle<4,T, P, V<T, P>, 2,2,0,1> E2 ## E2 ## E0 ## E1; }; \
-
490  struct { _swizzle<4,T, P, V<T, P>, 2,2,0,2> E2 ## E2 ## E0 ## E2; }; \
-
491  struct { _swizzle<4,T, P, V<T, P>, 2,2,1,0> E2 ## E2 ## E1 ## E0; }; \
-
492  struct { _swizzle<4,T, P, V<T, P>, 2,2,1,1> E2 ## E2 ## E1 ## E1; }; \
-
493  struct { _swizzle<4,T, P, V<T, P>, 2,2,1,2> E2 ## E2 ## E1 ## E2; }; \
-
494  struct { _swizzle<4,T, P, V<T, P>, 2,2,2,0> E2 ## E2 ## E2 ## E0; }; \
-
495  struct { _swizzle<4,T, P, V<T, P>, 2,2,2,1> E2 ## E2 ## E2 ## E1; }; \
-
496  struct { _swizzle<4,T, P, V<T, P>, 2,2,2,2> E2 ## E2 ## E2 ## E2; };
-
497 
-
498 #define _GLM_SWIZZLE4_2_MEMBERS(T, P, V, E0,E1,E2,E3) \
-
499  struct { _swizzle<2,T, P, V<T, P>, 0,0,-1,-2> E0 ## E0; }; \
-
500  struct { _swizzle<2,T, P, V<T, P>, 0,1,-1,-2> E0 ## E1; }; \
-
501  struct { _swizzle<2,T, P, V<T, P>, 0,2,-1,-2> E0 ## E2; }; \
-
502  struct { _swizzle<2,T, P, V<T, P>, 0,3,-1,-2> E0 ## E3; }; \
-
503  struct { _swizzle<2,T, P, V<T, P>, 1,0,-1,-2> E1 ## E0; }; \
-
504  struct { _swizzle<2,T, P, V<T, P>, 1,1,-1,-2> E1 ## E1; }; \
-
505  struct { _swizzle<2,T, P, V<T, P>, 1,2,-1,-2> E1 ## E2; }; \
-
506  struct { _swizzle<2,T, P, V<T, P>, 1,3,-1,-2> E1 ## E3; }; \
-
507  struct { _swizzle<2,T, P, V<T, P>, 2,0,-1,-2> E2 ## E0; }; \
-
508  struct { _swizzle<2,T, P, V<T, P>, 2,1,-1,-2> E2 ## E1; }; \
-
509  struct { _swizzle<2,T, P, V<T, P>, 2,2,-1,-2> E2 ## E2; }; \
-
510  struct { _swizzle<2,T, P, V<T, P>, 2,3,-1,-2> E2 ## E3; }; \
-
511  struct { _swizzle<2,T, P, V<T, P>, 3,0,-1,-2> E3 ## E0; }; \
-
512  struct { _swizzle<2,T, P, V<T, P>, 3,1,-1,-2> E3 ## E1; }; \
-
513  struct { _swizzle<2,T, P, V<T, P>, 3,2,-1,-2> E3 ## E2; }; \
-
514  struct { _swizzle<2,T, P, V<T, P>, 3,3,-1,-2> E3 ## E3; };
-
515 
-
516 #define _GLM_SWIZZLE4_3_MEMBERS(T,P, V, E0,E1,E2,E3) \
-
517  struct { _swizzle<3,T,P, V<T, P>, 0,0,0,-1> E0 ## E0 ## E0; }; \
-
518  struct { _swizzle<3,T,P, V<T, P>, 0,0,1,-1> E0 ## E0 ## E1; }; \
-
519  struct { _swizzle<3,T,P, V<T, P>, 0,0,2,-1> E0 ## E0 ## E2; }; \
-
520  struct { _swizzle<3,T,P, V<T, P>, 0,0,3,-1> E0 ## E0 ## E3; }; \
-
521  struct { _swizzle<3,T,P, V<T, P>, 0,1,0,-1> E0 ## E1 ## E0; }; \
-
522  struct { _swizzle<3,T,P, V<T, P>, 0,1,1,-1> E0 ## E1 ## E1; }; \
-
523  struct { _swizzle<3,T,P, V<T, P>, 0,1,2,-1> E0 ## E1 ## E2; }; \
-
524  struct { _swizzle<3,T,P, V<T, P>, 0,1,3,-1> E0 ## E1 ## E3; }; \
-
525  struct { _swizzle<3,T,P, V<T, P>, 0,2,0,-1> E0 ## E2 ## E0; }; \
-
526  struct { _swizzle<3,T,P, V<T, P>, 0,2,1,-1> E0 ## E2 ## E1; }; \
-
527  struct { _swizzle<3,T,P, V<T, P>, 0,2,2,-1> E0 ## E2 ## E2; }; \
-
528  struct { _swizzle<3,T,P, V<T, P>, 0,2,3,-1> E0 ## E2 ## E3; }; \
-
529  struct { _swizzle<3,T,P, V<T, P>, 0,3,0,-1> E0 ## E3 ## E0; }; \
-
530  struct { _swizzle<3,T,P, V<T, P>, 0,3,1,-1> E0 ## E3 ## E1; }; \
-
531  struct { _swizzle<3,T,P, V<T, P>, 0,3,2,-1> E0 ## E3 ## E2; }; \
-
532  struct { _swizzle<3,T,P, V<T, P>, 0,3,3,-1> E0 ## E3 ## E3; }; \
-
533  struct { _swizzle<3,T,P, V<T, P>, 1,0,0,-1> E1 ## E0 ## E0; }; \
-
534  struct { _swizzle<3,T,P, V<T, P>, 1,0,1,-1> E1 ## E0 ## E1; }; \
-
535  struct { _swizzle<3,T,P, V<T, P>, 1,0,2,-1> E1 ## E0 ## E2; }; \
-
536  struct { _swizzle<3,T,P, V<T, P>, 1,0,3,-1> E1 ## E0 ## E3; }; \
-
537  struct { _swizzle<3,T,P, V<T, P>, 1,1,0,-1> E1 ## E1 ## E0; }; \
-
538  struct { _swizzle<3,T,P, V<T, P>, 1,1,1,-1> E1 ## E1 ## E1; }; \
-
539  struct { _swizzle<3,T,P, V<T, P>, 1,1,2,-1> E1 ## E1 ## E2; }; \
-
540  struct { _swizzle<3,T,P, V<T, P>, 1,1,3,-1> E1 ## E1 ## E3; }; \
-
541  struct { _swizzle<3,T,P, V<T, P>, 1,2,0,-1> E1 ## E2 ## E0; }; \
-
542  struct { _swizzle<3,T,P, V<T, P>, 1,2,1,-1> E1 ## E2 ## E1; }; \
-
543  struct { _swizzle<3,T,P, V<T, P>, 1,2,2,-1> E1 ## E2 ## E2; }; \
-
544  struct { _swizzle<3,T,P, V<T, P>, 1,2,3,-1> E1 ## E2 ## E3; }; \
-
545  struct { _swizzle<3,T,P, V<T, P>, 1,3,0,-1> E1 ## E3 ## E0; }; \
-
546  struct { _swizzle<3,T,P, V<T, P>, 1,3,1,-1> E1 ## E3 ## E1; }; \
-
547  struct { _swizzle<3,T,P, V<T, P>, 1,3,2,-1> E1 ## E3 ## E2; }; \
-
548  struct { _swizzle<3,T,P, V<T, P>, 1,3,3,-1> E1 ## E3 ## E3; }; \
-
549  struct { _swizzle<3,T,P, V<T, P>, 2,0,0,-1> E2 ## E0 ## E0; }; \
-
550  struct { _swizzle<3,T,P, V<T, P>, 2,0,1,-1> E2 ## E0 ## E1; }; \
-
551  struct { _swizzle<3,T,P, V<T, P>, 2,0,2,-1> E2 ## E0 ## E2; }; \
-
552  struct { _swizzle<3,T,P, V<T, P>, 2,0,3,-1> E2 ## E0 ## E3; }; \
-
553  struct { _swizzle<3,T,P, V<T, P>, 2,1,0,-1> E2 ## E1 ## E0; }; \
-
554  struct { _swizzle<3,T,P, V<T, P>, 2,1,1,-1> E2 ## E1 ## E1; }; \
-
555  struct { _swizzle<3,T,P, V<T, P>, 2,1,2,-1> E2 ## E1 ## E2; }; \
-
556  struct { _swizzle<3,T,P, V<T, P>, 2,1,3,-1> E2 ## E1 ## E3; }; \
-
557  struct { _swizzle<3,T,P, V<T, P>, 2,2,0,-1> E2 ## E2 ## E0; }; \
-
558  struct { _swizzle<3,T,P, V<T, P>, 2,2,1,-1> E2 ## E2 ## E1; }; \
-
559  struct { _swizzle<3,T,P, V<T, P>, 2,2,2,-1> E2 ## E2 ## E2; }; \
-
560  struct { _swizzle<3,T,P, V<T, P>, 2,2,3,-1> E2 ## E2 ## E3; }; \
-
561  struct { _swizzle<3,T,P, V<T, P>, 2,3,0,-1> E2 ## E3 ## E0; }; \
-
562  struct { _swizzle<3,T,P, V<T, P>, 2,3,1,-1> E2 ## E3 ## E1; }; \
-
563  struct { _swizzle<3,T,P, V<T, P>, 2,3,2,-1> E2 ## E3 ## E2; }; \
-
564  struct { _swizzle<3,T,P, V<T, P>, 2,3,3,-1> E2 ## E3 ## E3; }; \
-
565  struct { _swizzle<3,T,P, V<T, P>, 3,0,0,-1> E3 ## E0 ## E0; }; \
-
566  struct { _swizzle<3,T,P, V<T, P>, 3,0,1,-1> E3 ## E0 ## E1; }; \
-
567  struct { _swizzle<3,T,P, V<T, P>, 3,0,2,-1> E3 ## E0 ## E2; }; \
-
568  struct { _swizzle<3,T,P, V<T, P>, 3,0,3,-1> E3 ## E0 ## E3; }; \
-
569  struct { _swizzle<3,T,P, V<T, P>, 3,1,0,-1> E3 ## E1 ## E0; }; \
-
570  struct { _swizzle<3,T,P, V<T, P>, 3,1,1,-1> E3 ## E1 ## E1; }; \
-
571  struct { _swizzle<3,T,P, V<T, P>, 3,1,2,-1> E3 ## E1 ## E2; }; \
-
572  struct { _swizzle<3,T,P, V<T, P>, 3,1,3,-1> E3 ## E1 ## E3; }; \
-
573  struct { _swizzle<3,T,P, V<T, P>, 3,2,0,-1> E3 ## E2 ## E0; }; \
-
574  struct { _swizzle<3,T,P, V<T, P>, 3,2,1,-1> E3 ## E2 ## E1; }; \
-
575  struct { _swizzle<3,T,P, V<T, P>, 3,2,2,-1> E3 ## E2 ## E2; }; \
-
576  struct { _swizzle<3,T,P, V<T, P>, 3,2,3,-1> E3 ## E2 ## E3; }; \
-
577  struct { _swizzle<3,T,P, V<T, P>, 3,3,0,-1> E3 ## E3 ## E0; }; \
-
578  struct { _swizzle<3,T,P, V<T, P>, 3,3,1,-1> E3 ## E3 ## E1; }; \
-
579  struct { _swizzle<3,T,P, V<T, P>, 3,3,2,-1> E3 ## E3 ## E2; }; \
-
580  struct { _swizzle<3,T,P, V<T, P>, 3,3,3,-1> E3 ## E3 ## E3; };
-
581 
-
582 #define _GLM_SWIZZLE4_4_MEMBERS(T, P, V, E0,E1,E2,E3) \
-
583  struct { _swizzle<4, T, P, V<T, P>, 0,0,0,0> E0 ## E0 ## E0 ## E0; }; \
-
584  struct { _swizzle<4, T, P, V<T, P>, 0,0,0,1> E0 ## E0 ## E0 ## E1; }; \
-
585  struct { _swizzle<4, T, P, V<T, P>, 0,0,0,2> E0 ## E0 ## E0 ## E2; }; \
-
586  struct { _swizzle<4, T, P, V<T, P>, 0,0,0,3> E0 ## E0 ## E0 ## E3; }; \
-
587  struct { _swizzle<4, T, P, V<T, P>, 0,0,1,0> E0 ## E0 ## E1 ## E0; }; \
-
588  struct { _swizzle<4, T, P, V<T, P>, 0,0,1,1> E0 ## E0 ## E1 ## E1; }; \
-
589  struct { _swizzle<4, T, P, V<T, P>, 0,0,1,2> E0 ## E0 ## E1 ## E2; }; \
-
590  struct { _swizzle<4, T, P, V<T, P>, 0,0,1,3> E0 ## E0 ## E1 ## E3; }; \
-
591  struct { _swizzle<4, T, P, V<T, P>, 0,0,2,0> E0 ## E0 ## E2 ## E0; }; \
-
592  struct { _swizzle<4, T, P, V<T, P>, 0,0,2,1> E0 ## E0 ## E2 ## E1; }; \
-
593  struct { _swizzle<4, T, P, V<T, P>, 0,0,2,2> E0 ## E0 ## E2 ## E2; }; \
-
594  struct { _swizzle<4, T, P, V<T, P>, 0,0,2,3> E0 ## E0 ## E2 ## E3; }; \
-
595  struct { _swizzle<4, T, P, V<T, P>, 0,0,3,0> E0 ## E0 ## E3 ## E0; }; \
-
596  struct { _swizzle<4, T, P, V<T, P>, 0,0,3,1> E0 ## E0 ## E3 ## E1; }; \
-
597  struct { _swizzle<4, T, P, V<T, P>, 0,0,3,2> E0 ## E0 ## E3 ## E2; }; \
-
598  struct { _swizzle<4, T, P, V<T, P>, 0,0,3,3> E0 ## E0 ## E3 ## E3; }; \
-
599  struct { _swizzle<4, T, P, V<T, P>, 0,1,0,0> E0 ## E1 ## E0 ## E0; }; \
-
600  struct { _swizzle<4, T, P, V<T, P>, 0,1,0,1> E0 ## E1 ## E0 ## E1; }; \
-
601  struct { _swizzle<4, T, P, V<T, P>, 0,1,0,2> E0 ## E1 ## E0 ## E2; }; \
-
602  struct { _swizzle<4, T, P, V<T, P>, 0,1,0,3> E0 ## E1 ## E0 ## E3; }; \
-
603  struct { _swizzle<4, T, P, V<T, P>, 0,1,1,0> E0 ## E1 ## E1 ## E0; }; \
-
604  struct { _swizzle<4, T, P, V<T, P>, 0,1,1,1> E0 ## E1 ## E1 ## E1; }; \
-
605  struct { _swizzle<4, T, P, V<T, P>, 0,1,1,2> E0 ## E1 ## E1 ## E2; }; \
-
606  struct { _swizzle<4, T, P, V<T, P>, 0,1,1,3> E0 ## E1 ## E1 ## E3; }; \
-
607  struct { _swizzle<4, T, P, V<T, P>, 0,1,2,0> E0 ## E1 ## E2 ## E0; }; \
-
608  struct { _swizzle<4, T, P, V<T, P>, 0,1,2,1> E0 ## E1 ## E2 ## E1; }; \
-
609  struct { _swizzle<4, T, P, V<T, P>, 0,1,2,2> E0 ## E1 ## E2 ## E2; }; \
-
610  struct { _swizzle<4, T, P, V<T, P>, 0,1,2,3> E0 ## E1 ## E2 ## E3; }; \
-
611  struct { _swizzle<4, T, P, V<T, P>, 0,1,3,0> E0 ## E1 ## E3 ## E0; }; \
-
612  struct { _swizzle<4, T, P, V<T, P>, 0,1,3,1> E0 ## E1 ## E3 ## E1; }; \
-
613  struct { _swizzle<4, T, P, V<T, P>, 0,1,3,2> E0 ## E1 ## E3 ## E2; }; \
-
614  struct { _swizzle<4, T, P, V<T, P>, 0,1,3,3> E0 ## E1 ## E3 ## E3; }; \
-
615  struct { _swizzle<4, T, P, V<T, P>, 0,2,0,0> E0 ## E2 ## E0 ## E0; }; \
-
616  struct { _swizzle<4, T, P, V<T, P>, 0,2,0,1> E0 ## E2 ## E0 ## E1; }; \
-
617  struct { _swizzle<4, T, P, V<T, P>, 0,2,0,2> E0 ## E2 ## E0 ## E2; }; \
-
618  struct { _swizzle<4, T, P, V<T, P>, 0,2,0,3> E0 ## E2 ## E0 ## E3; }; \
-
619  struct { _swizzle<4, T, P, V<T, P>, 0,2,1,0> E0 ## E2 ## E1 ## E0; }; \
-
620  struct { _swizzle<4, T, P, V<T, P>, 0,2,1,1> E0 ## E2 ## E1 ## E1; }; \
-
621  struct { _swizzle<4, T, P, V<T, P>, 0,2,1,2> E0 ## E2 ## E1 ## E2; }; \
-
622  struct { _swizzle<4, T, P, V<T, P>, 0,2,1,3> E0 ## E2 ## E1 ## E3; }; \
-
623  struct { _swizzle<4, T, P, V<T, P>, 0,2,2,0> E0 ## E2 ## E2 ## E0; }; \
-
624  struct { _swizzle<4, T, P, V<T, P>, 0,2,2,1> E0 ## E2 ## E2 ## E1; }; \
-
625  struct { _swizzle<4, T, P, V<T, P>, 0,2,2,2> E0 ## E2 ## E2 ## E2; }; \
-
626  struct { _swizzle<4, T, P, V<T, P>, 0,2,2,3> E0 ## E2 ## E2 ## E3; }; \
-
627  struct { _swizzle<4, T, P, V<T, P>, 0,2,3,0> E0 ## E2 ## E3 ## E0; }; \
-
628  struct { _swizzle<4, T, P, V<T, P>, 0,2,3,1> E0 ## E2 ## E3 ## E1; }; \
-
629  struct { _swizzle<4, T, P, V<T, P>, 0,2,3,2> E0 ## E2 ## E3 ## E2; }; \
-
630  struct { _swizzle<4, T, P, V<T, P>, 0,2,3,3> E0 ## E2 ## E3 ## E3; }; \
-
631  struct { _swizzle<4, T, P, V<T, P>, 0,3,0,0> E0 ## E3 ## E0 ## E0; }; \
-
632  struct { _swizzle<4, T, P, V<T, P>, 0,3,0,1> E0 ## E3 ## E0 ## E1; }; \
-
633  struct { _swizzle<4, T, P, V<T, P>, 0,3,0,2> E0 ## E3 ## E0 ## E2; }; \
-
634  struct { _swizzle<4, T, P, V<T, P>, 0,3,0,3> E0 ## E3 ## E0 ## E3; }; \
-
635  struct { _swizzle<4, T, P, V<T, P>, 0,3,1,0> E0 ## E3 ## E1 ## E0; }; \
-
636  struct { _swizzle<4, T, P, V<T, P>, 0,3,1,1> E0 ## E3 ## E1 ## E1; }; \
-
637  struct { _swizzle<4, T, P, V<T, P>, 0,3,1,2> E0 ## E3 ## E1 ## E2; }; \
-
638  struct { _swizzle<4, T, P, V<T, P>, 0,3,1,3> E0 ## E3 ## E1 ## E3; }; \
-
639  struct { _swizzle<4, T, P, V<T, P>, 0,3,2,0> E0 ## E3 ## E2 ## E0; }; \
-
640  struct { _swizzle<4, T, P, V<T, P>, 0,3,2,1> E0 ## E3 ## E2 ## E1; }; \
-
641  struct { _swizzle<4, T, P, V<T, P>, 0,3,2,2> E0 ## E3 ## E2 ## E2; }; \
-
642  struct { _swizzle<4, T, P, V<T, P>, 0,3,2,3> E0 ## E3 ## E2 ## E3; }; \
-
643  struct { _swizzle<4, T, P, V<T, P>, 0,3,3,0> E0 ## E3 ## E3 ## E0; }; \
-
644  struct { _swizzle<4, T, P, V<T, P>, 0,3,3,1> E0 ## E3 ## E3 ## E1; }; \
-
645  struct { _swizzle<4, T, P, V<T, P>, 0,3,3,2> E0 ## E3 ## E3 ## E2; }; \
-
646  struct { _swizzle<4, T, P, V<T, P>, 0,3,3,3> E0 ## E3 ## E3 ## E3; }; \
-
647  struct { _swizzle<4, T, P, V<T, P>, 1,0,0,0> E1 ## E0 ## E0 ## E0; }; \
-
648  struct { _swizzle<4, T, P, V<T, P>, 1,0,0,1> E1 ## E0 ## E0 ## E1; }; \
-
649  struct { _swizzle<4, T, P, V<T, P>, 1,0,0,2> E1 ## E0 ## E0 ## E2; }; \
-
650  struct { _swizzle<4, T, P, V<T, P>, 1,0,0,3> E1 ## E0 ## E0 ## E3; }; \
-
651  struct { _swizzle<4, T, P, V<T, P>, 1,0,1,0> E1 ## E0 ## E1 ## E0; }; \
-
652  struct { _swizzle<4, T, P, V<T, P>, 1,0,1,1> E1 ## E0 ## E1 ## E1; }; \
-
653  struct { _swizzle<4, T, P, V<T, P>, 1,0,1,2> E1 ## E0 ## E1 ## E2; }; \
-
654  struct { _swizzle<4, T, P, V<T, P>, 1,0,1,3> E1 ## E0 ## E1 ## E3; }; \
-
655  struct { _swizzle<4, T, P, V<T, P>, 1,0,2,0> E1 ## E0 ## E2 ## E0; }; \
-
656  struct { _swizzle<4, T, P, V<T, P>, 1,0,2,1> E1 ## E0 ## E2 ## E1; }; \
-
657  struct { _swizzle<4, T, P, V<T, P>, 1,0,2,2> E1 ## E0 ## E2 ## E2; }; \
-
658  struct { _swizzle<4, T, P, V<T, P>, 1,0,2,3> E1 ## E0 ## E2 ## E3; }; \
-
659  struct { _swizzle<4, T, P, V<T, P>, 1,0,3,0> E1 ## E0 ## E3 ## E0; }; \
-
660  struct { _swizzle<4, T, P, V<T, P>, 1,0,3,1> E1 ## E0 ## E3 ## E1; }; \
-
661  struct { _swizzle<4, T, P, V<T, P>, 1,0,3,2> E1 ## E0 ## E3 ## E2; }; \
-
662  struct { _swizzle<4, T, P, V<T, P>, 1,0,3,3> E1 ## E0 ## E3 ## E3; }; \
-
663  struct { _swizzle<4, T, P, V<T, P>, 1,1,0,0> E1 ## E1 ## E0 ## E0; }; \
-
664  struct { _swizzle<4, T, P, V<T, P>, 1,1,0,1> E1 ## E1 ## E0 ## E1; }; \
-
665  struct { _swizzle<4, T, P, V<T, P>, 1,1,0,2> E1 ## E1 ## E0 ## E2; }; \
-
666  struct { _swizzle<4, T, P, V<T, P>, 1,1,0,3> E1 ## E1 ## E0 ## E3; }; \
-
667  struct { _swizzle<4, T, P, V<T, P>, 1,1,1,0> E1 ## E1 ## E1 ## E0; }; \
-
668  struct { _swizzle<4, T, P, V<T, P>, 1,1,1,1> E1 ## E1 ## E1 ## E1; }; \
-
669  struct { _swizzle<4, T, P, V<T, P>, 1,1,1,2> E1 ## E1 ## E1 ## E2; }; \
-
670  struct { _swizzle<4, T, P, V<T, P>, 1,1,1,3> E1 ## E1 ## E1 ## E3; }; \
-
671  struct { _swizzle<4, T, P, V<T, P>, 1,1,2,0> E1 ## E1 ## E2 ## E0; }; \
-
672  struct { _swizzle<4, T, P, V<T, P>, 1,1,2,1> E1 ## E1 ## E2 ## E1; }; \
-
673  struct { _swizzle<4, T, P, V<T, P>, 1,1,2,2> E1 ## E1 ## E2 ## E2; }; \
-
674  struct { _swizzle<4, T, P, V<T, P>, 1,1,2,3> E1 ## E1 ## E2 ## E3; }; \
-
675  struct { _swizzle<4, T, P, V<T, P>, 1,1,3,0> E1 ## E1 ## E3 ## E0; }; \
-
676  struct { _swizzle<4, T, P, V<T, P>, 1,1,3,1> E1 ## E1 ## E3 ## E1; }; \
-
677  struct { _swizzle<4, T, P, V<T, P>, 1,1,3,2> E1 ## E1 ## E3 ## E2; }; \
-
678  struct { _swizzle<4, T, P, V<T, P>, 1,1,3,3> E1 ## E1 ## E3 ## E3; }; \
-
679  struct { _swizzle<4, T, P, V<T, P>, 1,2,0,0> E1 ## E2 ## E0 ## E0; }; \
-
680  struct { _swizzle<4, T, P, V<T, P>, 1,2,0,1> E1 ## E2 ## E0 ## E1; }; \
-
681  struct { _swizzle<4, T, P, V<T, P>, 1,2,0,2> E1 ## E2 ## E0 ## E2; }; \
-
682  struct { _swizzle<4, T, P, V<T, P>, 1,2,0,3> E1 ## E2 ## E0 ## E3; }; \
-
683  struct { _swizzle<4, T, P, V<T, P>, 1,2,1,0> E1 ## E2 ## E1 ## E0; }; \
-
684  struct { _swizzle<4, T, P, V<T, P>, 1,2,1,1> E1 ## E2 ## E1 ## E1; }; \
-
685  struct { _swizzle<4, T, P, V<T, P>, 1,2,1,2> E1 ## E2 ## E1 ## E2; }; \
-
686  struct { _swizzle<4, T, P, V<T, P>, 1,2,1,3> E1 ## E2 ## E1 ## E3; }; \
-
687  struct { _swizzle<4, T, P, V<T, P>, 1,2,2,0> E1 ## E2 ## E2 ## E0; }; \
-
688  struct { _swizzle<4, T, P, V<T, P>, 1,2,2,1> E1 ## E2 ## E2 ## E1; }; \
-
689  struct { _swizzle<4, T, P, V<T, P>, 1,2,2,2> E1 ## E2 ## E2 ## E2; }; \
-
690  struct { _swizzle<4, T, P, V<T, P>, 1,2,2,3> E1 ## E2 ## E2 ## E3; }; \
-
691  struct { _swizzle<4, T, P, V<T, P>, 1,2,3,0> E1 ## E2 ## E3 ## E0; }; \
-
692  struct { _swizzle<4, T, P, V<T, P>, 1,2,3,1> E1 ## E2 ## E3 ## E1; }; \
-
693  struct { _swizzle<4, T, P, V<T, P>, 1,2,3,2> E1 ## E2 ## E3 ## E2; }; \
-
694  struct { _swizzle<4, T, P, V<T, P>, 1,2,3,3> E1 ## E2 ## E3 ## E3; }; \
-
695  struct { _swizzle<4, T, P, V<T, P>, 1,3,0,0> E1 ## E3 ## E0 ## E0; }; \
-
696  struct { _swizzle<4, T, P, V<T, P>, 1,3,0,1> E1 ## E3 ## E0 ## E1; }; \
-
697  struct { _swizzle<4, T, P, V<T, P>, 1,3,0,2> E1 ## E3 ## E0 ## E2; }; \
-
698  struct { _swizzle<4, T, P, V<T, P>, 1,3,0,3> E1 ## E3 ## E0 ## E3; }; \
-
699  struct { _swizzle<4, T, P, V<T, P>, 1,3,1,0> E1 ## E3 ## E1 ## E0; }; \
-
700  struct { _swizzle<4, T, P, V<T, P>, 1,3,1,1> E1 ## E3 ## E1 ## E1; }; \
-
701  struct { _swizzle<4, T, P, V<T, P>, 1,3,1,2> E1 ## E3 ## E1 ## E2; }; \
-
702  struct { _swizzle<4, T, P, V<T, P>, 1,3,1,3> E1 ## E3 ## E1 ## E3; }; \
-
703  struct { _swizzle<4, T, P, V<T, P>, 1,3,2,0> E1 ## E3 ## E2 ## E0; }; \
-
704  struct { _swizzle<4, T, P, V<T, P>, 1,3,2,1> E1 ## E3 ## E2 ## E1; }; \
-
705  struct { _swizzle<4, T, P, V<T, P>, 1,3,2,2> E1 ## E3 ## E2 ## E2; }; \
-
706  struct { _swizzle<4, T, P, V<T, P>, 1,3,2,3> E1 ## E3 ## E2 ## E3; }; \
-
707  struct { _swizzle<4, T, P, V<T, P>, 1,3,3,0> E1 ## E3 ## E3 ## E0; }; \
-
708  struct { _swizzle<4, T, P, V<T, P>, 1,3,3,1> E1 ## E3 ## E3 ## E1; }; \
-
709  struct { _swizzle<4, T, P, V<T, P>, 1,3,3,2> E1 ## E3 ## E3 ## E2; }; \
-
710  struct { _swizzle<4, T, P, V<T, P>, 1,3,3,3> E1 ## E3 ## E3 ## E3; }; \
-
711  struct { _swizzle<4, T, P, V<T, P>, 2,0,0,0> E2 ## E0 ## E0 ## E0; }; \
-
712  struct { _swizzle<4, T, P, V<T, P>, 2,0,0,1> E2 ## E0 ## E0 ## E1; }; \
-
713  struct { _swizzle<4, T, P, V<T, P>, 2,0,0,2> E2 ## E0 ## E0 ## E2; }; \
-
714  struct { _swizzle<4, T, P, V<T, P>, 2,0,0,3> E2 ## E0 ## E0 ## E3; }; \
-
715  struct { _swizzle<4, T, P, V<T, P>, 2,0,1,0> E2 ## E0 ## E1 ## E0; }; \
-
716  struct { _swizzle<4, T, P, V<T, P>, 2,0,1,1> E2 ## E0 ## E1 ## E1; }; \
-
717  struct { _swizzle<4, T, P, V<T, P>, 2,0,1,2> E2 ## E0 ## E1 ## E2; }; \
-
718  struct { _swizzle<4, T, P, V<T, P>, 2,0,1,3> E2 ## E0 ## E1 ## E3; }; \
-
719  struct { _swizzle<4, T, P, V<T, P>, 2,0,2,0> E2 ## E0 ## E2 ## E0; }; \
-
720  struct { _swizzle<4, T, P, V<T, P>, 2,0,2,1> E2 ## E0 ## E2 ## E1; }; \
-
721  struct { _swizzle<4, T, P, V<T, P>, 2,0,2,2> E2 ## E0 ## E2 ## E2; }; \
-
722  struct { _swizzle<4, T, P, V<T, P>, 2,0,2,3> E2 ## E0 ## E2 ## E3; }; \
-
723  struct { _swizzle<4, T, P, V<T, P>, 2,0,3,0> E2 ## E0 ## E3 ## E0; }; \
-
724  struct { _swizzle<4, T, P, V<T, P>, 2,0,3,1> E2 ## E0 ## E3 ## E1; }; \
-
725  struct { _swizzle<4, T, P, V<T, P>, 2,0,3,2> E2 ## E0 ## E3 ## E2; }; \
-
726  struct { _swizzle<4, T, P, V<T, P>, 2,0,3,3> E2 ## E0 ## E3 ## E3; }; \
-
727  struct { _swizzle<4, T, P, V<T, P>, 2,1,0,0> E2 ## E1 ## E0 ## E0; }; \
-
728  struct { _swizzle<4, T, P, V<T, P>, 2,1,0,1> E2 ## E1 ## E0 ## E1; }; \
-
729  struct { _swizzle<4, T, P, V<T, P>, 2,1,0,2> E2 ## E1 ## E0 ## E2; }; \
-
730  struct { _swizzle<4, T, P, V<T, P>, 2,1,0,3> E2 ## E1 ## E0 ## E3; }; \
-
731  struct { _swizzle<4, T, P, V<T, P>, 2,1,1,0> E2 ## E1 ## E1 ## E0; }; \
-
732  struct { _swizzle<4, T, P, V<T, P>, 2,1,1,1> E2 ## E1 ## E1 ## E1; }; \
-
733  struct { _swizzle<4, T, P, V<T, P>, 2,1,1,2> E2 ## E1 ## E1 ## E2; }; \
-
734  struct { _swizzle<4, T, P, V<T, P>, 2,1,1,3> E2 ## E1 ## E1 ## E3; }; \
-
735  struct { _swizzle<4, T, P, V<T, P>, 2,1,2,0> E2 ## E1 ## E2 ## E0; }; \
-
736  struct { _swizzle<4, T, P, V<T, P>, 2,1,2,1> E2 ## E1 ## E2 ## E1; }; \
-
737  struct { _swizzle<4, T, P, V<T, P>, 2,1,2,2> E2 ## E1 ## E2 ## E2; }; \
-
738  struct { _swizzle<4, T, P, V<T, P>, 2,1,2,3> E2 ## E1 ## E2 ## E3; }; \
-
739  struct { _swizzle<4, T, P, V<T, P>, 2,1,3,0> E2 ## E1 ## E3 ## E0; }; \
-
740  struct { _swizzle<4, T, P, V<T, P>, 2,1,3,1> E2 ## E1 ## E3 ## E1; }; \
-
741  struct { _swizzle<4, T, P, V<T, P>, 2,1,3,2> E2 ## E1 ## E3 ## E2; }; \
-
742  struct { _swizzle<4, T, P, V<T, P>, 2,1,3,3> E2 ## E1 ## E3 ## E3; }; \
-
743  struct { _swizzle<4, T, P, V<T, P>, 2,2,0,0> E2 ## E2 ## E0 ## E0; }; \
-
744  struct { _swizzle<4, T, P, V<T, P>, 2,2,0,1> E2 ## E2 ## E0 ## E1; }; \
-
745  struct { _swizzle<4, T, P, V<T, P>, 2,2,0,2> E2 ## E2 ## E0 ## E2; }; \
-
746  struct { _swizzle<4, T, P, V<T, P>, 2,2,0,3> E2 ## E2 ## E0 ## E3; }; \
-
747  struct { _swizzle<4, T, P, V<T, P>, 2,2,1,0> E2 ## E2 ## E1 ## E0; }; \
-
748  struct { _swizzle<4, T, P, V<T, P>, 2,2,1,1> E2 ## E2 ## E1 ## E1; }; \
-
749  struct { _swizzle<4, T, P, V<T, P>, 2,2,1,2> E2 ## E2 ## E1 ## E2; }; \
-
750  struct { _swizzle<4, T, P, V<T, P>, 2,2,1,3> E2 ## E2 ## E1 ## E3; }; \
-
751  struct { _swizzle<4, T, P, V<T, P>, 2,2,2,0> E2 ## E2 ## E2 ## E0; }; \
-
752  struct { _swizzle<4, T, P, V<T, P>, 2,2,2,1> E2 ## E2 ## E2 ## E1; }; \
-
753  struct { _swizzle<4, T, P, V<T, P>, 2,2,2,2> E2 ## E2 ## E2 ## E2; }; \
-
754  struct { _swizzle<4, T, P, V<T, P>, 2,2,2,3> E2 ## E2 ## E2 ## E3; }; \
-
755  struct { _swizzle<4, T, P, V<T, P>, 2,2,3,0> E2 ## E2 ## E3 ## E0; }; \
-
756  struct { _swizzle<4, T, P, V<T, P>, 2,2,3,1> E2 ## E2 ## E3 ## E1; }; \
-
757  struct { _swizzle<4, T, P, V<T, P>, 2,2,3,2> E2 ## E2 ## E3 ## E2; }; \
-
758  struct { _swizzle<4, T, P, V<T, P>, 2,2,3,3> E2 ## E2 ## E3 ## E3; }; \
-
759  struct { _swizzle<4, T, P, V<T, P>, 2,3,0,0> E2 ## E3 ## E0 ## E0; }; \
-
760  struct { _swizzle<4, T, P, V<T, P>, 2,3,0,1> E2 ## E3 ## E0 ## E1; }; \
-
761  struct { _swizzle<4, T, P, V<T, P>, 2,3,0,2> E2 ## E3 ## E0 ## E2; }; \
-
762  struct { _swizzle<4, T, P, V<T, P>, 2,3,0,3> E2 ## E3 ## E0 ## E3; }; \
-
763  struct { _swizzle<4, T, P, V<T, P>, 2,3,1,0> E2 ## E3 ## E1 ## E0; }; \
-
764  struct { _swizzle<4, T, P, V<T, P>, 2,3,1,1> E2 ## E3 ## E1 ## E1; }; \
-
765  struct { _swizzle<4, T, P, V<T, P>, 2,3,1,2> E2 ## E3 ## E1 ## E2; }; \
-
766  struct { _swizzle<4, T, P, V<T, P>, 2,3,1,3> E2 ## E3 ## E1 ## E3; }; \
-
767  struct { _swizzle<4, T, P, V<T, P>, 2,3,2,0> E2 ## E3 ## E2 ## E0; }; \
-
768  struct { _swizzle<4, T, P, V<T, P>, 2,3,2,1> E2 ## E3 ## E2 ## E1; }; \
-
769  struct { _swizzle<4, T, P, V<T, P>, 2,3,2,2> E2 ## E3 ## E2 ## E2; }; \
-
770  struct { _swizzle<4, T, P, V<T, P>, 2,3,2,3> E2 ## E3 ## E2 ## E3; }; \
-
771  struct { _swizzle<4, T, P, V<T, P>, 2,3,3,0> E2 ## E3 ## E3 ## E0; }; \
-
772  struct { _swizzle<4, T, P, V<T, P>, 2,3,3,1> E2 ## E3 ## E3 ## E1; }; \
-
773  struct { _swizzle<4, T, P, V<T, P>, 2,3,3,2> E2 ## E3 ## E3 ## E2; }; \
-
774  struct { _swizzle<4, T, P, V<T, P>, 2,3,3,3> E2 ## E3 ## E3 ## E3; }; \
-
775  struct { _swizzle<4, T, P, V<T, P>, 3,0,0,0> E3 ## E0 ## E0 ## E0; }; \
-
776  struct { _swizzle<4, T, P, V<T, P>, 3,0,0,1> E3 ## E0 ## E0 ## E1; }; \
-
777  struct { _swizzle<4, T, P, V<T, P>, 3,0,0,2> E3 ## E0 ## E0 ## E2; }; \
-
778  struct { _swizzle<4, T, P, V<T, P>, 3,0,0,3> E3 ## E0 ## E0 ## E3; }; \
-
779  struct { _swizzle<4, T, P, V<T, P>, 3,0,1,0> E3 ## E0 ## E1 ## E0; }; \
-
780  struct { _swizzle<4, T, P, V<T, P>, 3,0,1,1> E3 ## E0 ## E1 ## E1; }; \
-
781  struct { _swizzle<4, T, P, V<T, P>, 3,0,1,2> E3 ## E0 ## E1 ## E2; }; \
-
782  struct { _swizzle<4, T, P, V<T, P>, 3,0,1,3> E3 ## E0 ## E1 ## E3; }; \
-
783  struct { _swizzle<4, T, P, V<T, P>, 3,0,2,0> E3 ## E0 ## E2 ## E0; }; \
-
784  struct { _swizzle<4, T, P, V<T, P>, 3,0,2,1> E3 ## E0 ## E2 ## E1; }; \
-
785  struct { _swizzle<4, T, P, V<T, P>, 3,0,2,2> E3 ## E0 ## E2 ## E2; }; \
-
786  struct { _swizzle<4, T, P, V<T, P>, 3,0,2,3> E3 ## E0 ## E2 ## E3; }; \
-
787  struct { _swizzle<4, T, P, V<T, P>, 3,0,3,0> E3 ## E0 ## E3 ## E0; }; \
-
788  struct { _swizzle<4, T, P, V<T, P>, 3,0,3,1> E3 ## E0 ## E3 ## E1; }; \
-
789  struct { _swizzle<4, T, P, V<T, P>, 3,0,3,2> E3 ## E0 ## E3 ## E2; }; \
-
790  struct { _swizzle<4, T, P, V<T, P>, 3,0,3,3> E3 ## E0 ## E3 ## E3; }; \
-
791  struct { _swizzle<4, T, P, V<T, P>, 3,1,0,0> E3 ## E1 ## E0 ## E0; }; \
-
792  struct { _swizzle<4, T, P, V<T, P>, 3,1,0,1> E3 ## E1 ## E0 ## E1; }; \
-
793  struct { _swizzle<4, T, P, V<T, P>, 3,1,0,2> E3 ## E1 ## E0 ## E2; }; \
-
794  struct { _swizzle<4, T, P, V<T, P>, 3,1,0,3> E3 ## E1 ## E0 ## E3; }; \
-
795  struct { _swizzle<4, T, P, V<T, P>, 3,1,1,0> E3 ## E1 ## E1 ## E0; }; \
-
796  struct { _swizzle<4, T, P, V<T, P>, 3,1,1,1> E3 ## E1 ## E1 ## E1; }; \
-
797  struct { _swizzle<4, T, P, V<T, P>, 3,1,1,2> E3 ## E1 ## E1 ## E2; }; \
-
798  struct { _swizzle<4, T, P, V<T, P>, 3,1,1,3> E3 ## E1 ## E1 ## E3; }; \
-
799  struct { _swizzle<4, T, P, V<T, P>, 3,1,2,0> E3 ## E1 ## E2 ## E0; }; \
-
800  struct { _swizzle<4, T, P, V<T, P>, 3,1,2,1> E3 ## E1 ## E2 ## E1; }; \
-
801  struct { _swizzle<4, T, P, V<T, P>, 3,1,2,2> E3 ## E1 ## E2 ## E2; }; \
-
802  struct { _swizzle<4, T, P, V<T, P>, 3,1,2,3> E3 ## E1 ## E2 ## E3; }; \
-
803  struct { _swizzle<4, T, P, V<T, P>, 3,1,3,0> E3 ## E1 ## E3 ## E0; }; \
-
804  struct { _swizzle<4, T, P, V<T, P>, 3,1,3,1> E3 ## E1 ## E3 ## E1; }; \
-
805  struct { _swizzle<4, T, P, V<T, P>, 3,1,3,2> E3 ## E1 ## E3 ## E2; }; \
-
806  struct { _swizzle<4, T, P, V<T, P>, 3,1,3,3> E3 ## E1 ## E3 ## E3; }; \
-
807  struct { _swizzle<4, T, P, V<T, P>, 3,2,0,0> E3 ## E2 ## E0 ## E0; }; \
-
808  struct { _swizzle<4, T, P, V<T, P>, 3,2,0,1> E3 ## E2 ## E0 ## E1; }; \
-
809  struct { _swizzle<4, T, P, V<T, P>, 3,2,0,2> E3 ## E2 ## E0 ## E2; }; \
-
810  struct { _swizzle<4, T, P, V<T, P>, 3,2,0,3> E3 ## E2 ## E0 ## E3; }; \
-
811  struct { _swizzle<4, T, P, V<T, P>, 3,2,1,0> E3 ## E2 ## E1 ## E0; }; \
-
812  struct { _swizzle<4, T, P, V<T, P>, 3,2,1,1> E3 ## E2 ## E1 ## E1; }; \
-
813  struct { _swizzle<4, T, P, V<T, P>, 3,2,1,2> E3 ## E2 ## E1 ## E2; }; \
-
814  struct { _swizzle<4, T, P, V<T, P>, 3,2,1,3> E3 ## E2 ## E1 ## E3; }; \
-
815  struct { _swizzle<4, T, P, V<T, P>, 3,2,2,0> E3 ## E2 ## E2 ## E0; }; \
-
816  struct { _swizzle<4, T, P, V<T, P>, 3,2,2,1> E3 ## E2 ## E2 ## E1; }; \
-
817  struct { _swizzle<4, T, P, V<T, P>, 3,2,2,2> E3 ## E2 ## E2 ## E2; }; \
-
818  struct { _swizzle<4, T, P, V<T, P>, 3,2,2,3> E3 ## E2 ## E2 ## E3; }; \
-
819  struct { _swizzle<4, T, P, V<T, P>, 3,2,3,0> E3 ## E2 ## E3 ## E0; }; \
-
820  struct { _swizzle<4, T, P, V<T, P>, 3,2,3,1> E3 ## E2 ## E3 ## E1; }; \
-
821  struct { _swizzle<4, T, P, V<T, P>, 3,2,3,2> E3 ## E2 ## E3 ## E2; }; \
-
822  struct { _swizzle<4, T, P, V<T, P>, 3,2,3,3> E3 ## E2 ## E3 ## E3; }; \
-
823  struct { _swizzle<4, T, P, V<T, P>, 3,3,0,0> E3 ## E3 ## E0 ## E0; }; \
-
824  struct { _swizzle<4, T, P, V<T, P>, 3,3,0,1> E3 ## E3 ## E0 ## E1; }; \
-
825  struct { _swizzle<4, T, P, V<T, P>, 3,3,0,2> E3 ## E3 ## E0 ## E2; }; \
-
826  struct { _swizzle<4, T, P, V<T, P>, 3,3,0,3> E3 ## E3 ## E0 ## E3; }; \
-
827  struct { _swizzle<4, T, P, V<T, P>, 3,3,1,0> E3 ## E3 ## E1 ## E0; }; \
-
828  struct { _swizzle<4, T, P, V<T, P>, 3,3,1,1> E3 ## E3 ## E1 ## E1; }; \
-
829  struct { _swizzle<4, T, P, V<T, P>, 3,3,1,2> E3 ## E3 ## E1 ## E2; }; \
-
830  struct { _swizzle<4, T, P, V<T, P>, 3,3,1,3> E3 ## E3 ## E1 ## E3; }; \
-
831  struct { _swizzle<4, T, P, V<T, P>, 3,3,2,0> E3 ## E3 ## E2 ## E0; }; \
-
832  struct { _swizzle<4, T, P, V<T, P>, 3,3,2,1> E3 ## E3 ## E2 ## E1; }; \
-
833  struct { _swizzle<4, T, P, V<T, P>, 3,3,2,2> E3 ## E3 ## E2 ## E2; }; \
-
834  struct { _swizzle<4, T, P, V<T, P>, 3,3,2,3> E3 ## E3 ## E2 ## E3; }; \
-
835  struct { _swizzle<4, T, P, V<T, P>, 3,3,3,0> E3 ## E3 ## E3 ## E0; }; \
-
836  struct { _swizzle<4, T, P, V<T, P>, 3,3,3,1> E3 ## E3 ## E3 ## E1; }; \
-
837  struct { _swizzle<4, T, P, V<T, P>, 3,3,3,2> E3 ## E3 ## E3 ## E2; }; \
-
838  struct { _swizzle<4, T, P, V<T, P>, 3,3,3,3> E3 ## E3 ## E3 ## E3; };
-
839 
-
840 #endif//glm_core_swizzle
-
GLM_FUNC_DECL genType e()
Return e constant.
+
104  template <typename genIUType>
+
105  GLM_DEPRECATED GLM_FUNC_DECL genIUType powerOfTwoNearest(genIUType Value);
+
106 
+
112  template <typename T, precision P, template <typename, precision> class vecType>
+
113  GLM_DEPRECATED GLM_FUNC_DECL vecType<T, P> powerOfTwoNearest(vecType<T, P> const & value);
+
114 
+
116 } //namespace glm
+
117 
+
118 
+
119 #include "bit.inl"
+
120 
+
GLM_DEPRECATED GLM_FUNC_DECL vecType< T, P > powerOfTwoNearest(vecType< T, P > const &value)
Return the power of two number which value is the closet to the input value.
+
Definition: _noise.hpp:39
+
GLM_FUNC_DECL vecType< T, P > highestBitValue(vecType< T, P > const &value)
Find the highest bit set to 1 in a integer variable and return its value.
+
GLM_DEPRECATED GLM_FUNC_DECL vecType< T, P > powerOfTwoAbove(vecType< T, P > const &value)
Return the power of two number which value is just higher the input value.
+
GLM_DEPRECATED GLM_FUNC_DECL vecType< T, P > powerOfTwoBelow(vecType< T, P > const &value)
Return the power of two number which value is just lower the input value.
diff --git a/doc/api/a00009.html b/doc/api/a00009.html new file mode 100644 index 00000000..cc5e7a33 --- /dev/null +++ b/doc/api/a00009.html @@ -0,0 +1,144 @@ + + + + + + +0.9.6: bitfield.hpp File Reference + + + + + + +
+
+ + + + + + + +
+
0.9.6 +
+
+
+ + + + + +
+
+ +
+
bitfield.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename genIUType >
GLM_FUNC_DECL genIUType bitfieldFillOne (genIUType Value, int FirstBit, int BitCount)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > bitfieldFillOne (vecType< T, P > const &Value, int FirstBit, int BitCount)
 
template<typename genIUType >
GLM_FUNC_DECL genIUType bitfieldFillZero (genIUType Value, int FirstBit, int BitCount)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > bitfieldFillZero (vecType< T, P > const &Value, int FirstBit, int BitCount)
 
GLM_FUNC_DECL int16 bitfieldInterleave (int8 x, int8 y)
 
GLM_FUNC_DECL uint16 bitfieldInterleave (uint8 x, uint8 y)
 
GLM_FUNC_DECL int32 bitfieldInterleave (int16 x, int16 y)
 
GLM_FUNC_DECL uint32 bitfieldInterleave (uint16 x, uint16 y)
 
GLM_FUNC_DECL int64 bitfieldInterleave (int32 x, int32 y)
 
GLM_FUNC_DECL uint64 bitfieldInterleave (uint32 x, uint32 y)
 
GLM_FUNC_DECL int32 bitfieldInterleave (int8 x, int8 y, int8 z)
 
GLM_FUNC_DECL uint32 bitfieldInterleave (uint8 x, uint8 y, uint8 z)
 
GLM_FUNC_DECL int64 bitfieldInterleave (int16 x, int16 y, int16 z)
 
GLM_FUNC_DECL uint64 bitfieldInterleave (uint16 x, uint16 y, uint16 z)
 
GLM_FUNC_DECL int64 bitfieldInterleave (int32 x, int32 y, int32 z)
 
GLM_FUNC_DECL uint64 bitfieldInterleave (uint32 x, uint32 y, uint32 z)
 
GLM_FUNC_DECL int32 bitfieldInterleave (int8 x, int8 y, int8 z, int8 w)
 
GLM_FUNC_DECL uint32 bitfieldInterleave (uint8 x, uint8 y, uint8 z, uint8 w)
 
GLM_FUNC_DECL int64 bitfieldInterleave (int16 x, int16 y, int16 z, int16 w)
 
GLM_FUNC_DECL uint64 bitfieldInterleave (uint16 x, uint16 y, uint16 z, uint16 w)
 
template<typename genIUType >
GLM_FUNC_DECL genIUType bitfieldRotateLeft (genIUType In, int Shift)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > bitfieldRotateLeft (vecType< T, P > const &In, int Shift)
 
template<typename genIUType >
GLM_FUNC_DECL genIUType bitfieldRotateRight (genIUType In, int Shift)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > bitfieldRotateRight (vecType< T, P > const &In, int Shift)
 
template<typename genIUType >
GLM_FUNC_DECL genIUType mask (genIUType Bits)
 
template<typename T , precision P, template< typename, precision > class vecIUType>
GLM_FUNC_DECL vecIUType< T, P > mask (vecIUType< T, P > const &v)
 
+

Detailed Description

+

OpenGL Mathematics (glm.g-truc.net)

+

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+

GLM_GTC_bitfield

+
Date
2014-10-25 / 2014-10-25
+
Author
Christophe Riccio
+
See also
GLM Core (dependence)
+
+GLM_GTC_bitfield (dependence)
+ +

Definition in file bitfield.hpp.

+
+ + + + diff --git a/doc/api/a00009_source.html b/doc/api/a00009_source.html index 6f7e5dd4..edf31be0 100644 --- a/doc/api/a00009_source.html +++ b/doc/api/a00009_source.html @@ -3,8 +3,8 @@ - -GLM: _swizzle_func.hpp Source File + +0.9.6: bitfield.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,717 +41,109 @@
-
_swizzle_func.hpp
+
bitfield.hpp
-
1 
-
29 #ifndef glm_core_swizzle_func
-
30 #define glm_core_swizzle_func
-
31 
-
32 #define GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, CONST, A, B) \
-
33  SWIZZLED_TYPE<TMPL_TYPE, PRECISION> A ## B() CONST \
-
34  { \
-
35  return SWIZZLED_TYPE<TMPL_TYPE, PRECISION>(this->A, this->B); \
-
36  }
-
37 
-
38 #define GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, CONST, A, B, C) \
-
39  SWIZZLED_TYPE<TMPL_TYPE, PRECISION> A ## B ## C() CONST \
-
40  { \
-
41  return SWIZZLED_TYPE<TMPL_TYPE, PRECISION>(this->A, this->B, this->C); \
-
42  }
-
43 
-
44 #define GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, CONST, A, B, C, D) \
-
45  SWIZZLED_TYPE<TMPL_TYPE, PRECISION> A ## B ## C ## D() CONST \
-
46  { \
-
47  return SWIZZLED_TYPE<TMPL_TYPE, PRECISION>(this->A, this->B, this->C, this->D); \
-
48  }
-
49 
-
50 #define GLM_SWIZZLE_GEN_VEC2_ENTRY_DEF(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, CONST, A, B) \
-
51  template <typename TMPL_TYPE> \
-
52  SWIZZLED_TYPE<TMPL_TYPE> CLASS_TYPE<TMPL_TYPE, PRECISION>::A ## B() CONST \
-
53  { \
-
54  return SWIZZLED_TYPE<TMPL_TYPE, PRECISION>(this->A, this->B); \
-
55  }
-
56 
-
57 #define GLM_SWIZZLE_GEN_VEC3_ENTRY_DEF(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, CONST, A, B, C) \
-
58  template <typename TMPL_TYPE> \
-
59  SWIZZLED_TYPE<TMPL_TYPE> CLASS_TYPE<TMPL_TYPE, PRECISION>::A ## B ## C() CONST \
-
60  { \
-
61  return SWIZZLED_TYPE<TMPL_TYPE, PRECISION>(this->A, this->B, this->C); \
-
62  }
-
63 
-
64 #define GLM_SWIZZLE_GEN_VEC4_ENTRY_DEF(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, CONST, A, B, C, D) \
-
65  template <typename TMPL_TYPE> \
-
66  SWIZZLED_TYPE<TMPL_TYPE> CLASS_TYPE<TMPL_TYPE, PRECISION>::A ## B ## C ## D() CONST \
-
67  { \
-
68  return SWIZZLED_TYPE<TMPL_TYPE, PRECISION>(this->A, this->B, this->C, this->D); \
-
69  }
-
70 
-
71 #define GLM_MUTABLE
-
72 
-
73 #define GLM_SWIZZLE_GEN_REF2_FROM_VEC2_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B) \
-
74  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, B) \
-
75  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, A)
-
76 
-
77 #define GLM_SWIZZLE_GEN_REF_FROM_VEC2(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE) \
-
78  GLM_SWIZZLE_GEN_REF2_FROM_VEC2_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, x, y) \
-
79  GLM_SWIZZLE_GEN_REF2_FROM_VEC2_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, r, g) \
-
80  GLM_SWIZZLE_GEN_REF2_FROM_VEC2_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, s, t)
-
81 
-
82 //GLM_SWIZZLE_GEN_REF_FROM_VEC2(valType, detail::vec2, detail::ref2)
-
83 
-
84 #define GLM_SWIZZLE_GEN_REF2_FROM_VEC3_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C) \
-
85  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, B) \
-
86  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, C) \
-
87  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, A) \
-
88  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, C) \
-
89  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, C, A) \
-
90  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, C, B)
-
91 
-
92 #define GLM_SWIZZLE_GEN_REF3_FROM_VEC3_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C) \
-
93  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, B, C) \
-
94  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, C, B) \
-
95  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, A, C) \
-
96  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, C, A) \
-
97  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, C, A, B) \
-
98  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, C, B, A)
-
99 
-
100 #define GLM_SWIZZLE_GEN_REF_FROM_VEC3_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, A, B, C) \
-
101  GLM_SWIZZLE_GEN_REF3_FROM_VEC3_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC3_TYPE, A, B, C) \
-
102  GLM_SWIZZLE_GEN_REF2_FROM_VEC3_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, A, B, C)
-
103 
-
104 #define GLM_SWIZZLE_GEN_REF_FROM_VEC3(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE) \
-
105  GLM_SWIZZLE_GEN_REF_FROM_VEC3_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, x, y, z) \
-
106  GLM_SWIZZLE_GEN_REF_FROM_VEC3_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, r, g, b) \
-
107  GLM_SWIZZLE_GEN_REF_FROM_VEC3_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, s, t, p)
-
108 
-
109 //GLM_SWIZZLE_GEN_REF_FROM_VEC3(valType, detail::vec3, detail::ref2, detail::ref3)
-
110 
-
111 #define GLM_SWIZZLE_GEN_REF2_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C, D) \
-
112  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, B) \
-
113  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, C) \
-
114  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, D) \
-
115  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, A) \
-
116  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, C) \
-
117  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, D) \
-
118  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, C, A) \
-
119  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, C, B) \
-
120  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, C, D) \
-
121  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, D, A) \
-
122  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, D, B) \
-
123  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, D, C)
-
124 
-
125 #define GLM_SWIZZLE_GEN_REF3_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C, D) \
-
126  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, B, C) \
-
127  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, B, D) \
-
128  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, C, B) \
-
129  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, C, D) \
-
130  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, D, B) \
-
131  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, D, C) \
-
132  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, A, C) \
-
133  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, A, D) \
-
134  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, C, A) \
-
135  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, C, D) \
-
136  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, D, A) \
-
137  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, D, C) \
-
138  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, A, B) \
-
139  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, A, D) \
-
140  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, B, A) \
-
141  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, B, D) \
-
142  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, D, A) \
-
143  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, D, B) \
-
144  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, A, B) \
-
145  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, A, C) \
-
146  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, B, A) \
-
147  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, B, C) \
-
148  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, C, A) \
-
149  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, C, B)
-
150 
-
151 #define GLM_SWIZZLE_GEN_REF4_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C, D) \
-
152  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, C, B, D) \
-
153  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, C, D, B) \
-
154  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, D, B, C) \
-
155  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, D, C, B) \
-
156  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, B, D, C) \
-
157  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, B, C, D) \
-
158  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, C, A, D) \
-
159  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, C, D, A) \
-
160  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, D, A, C) \
-
161  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, D, C, A) \
-
162  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, A, D, C) \
-
163  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, A, C, D) \
-
164  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, B, A, D) \
-
165  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, B, D, A) \
-
166  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, D, A, B) \
-
167  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, D, B, A) \
-
168  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, A, D, B) \
-
169  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, A, B, D) \
-
170  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, C, B, A) \
-
171  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, C, A, B) \
-
172  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, A, B, C) \
-
173  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, A, C, B) \
-
174  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, B, A, C) \
-
175  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, B, C, A)
-
176 
-
177 #define GLM_SWIZZLE_GEN_REF_FROM_VEC4_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, A, B, C, D) \
-
178  GLM_SWIZZLE_GEN_REF2_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, A, B, C, D) \
-
179  GLM_SWIZZLE_GEN_REF3_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC3_TYPE, A, B, C, D) \
-
180  GLM_SWIZZLE_GEN_REF4_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC4_TYPE, A, B, C, D)
-
181 
-
182 #define GLM_SWIZZLE_GEN_REF_FROM_VEC4(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE) \
-
183  GLM_SWIZZLE_GEN_REF_FROM_VEC4_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, x, y, z, w) \
-
184  GLM_SWIZZLE_GEN_REF_FROM_VEC4_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, r, g, b, a) \
-
185  GLM_SWIZZLE_GEN_REF_FROM_VEC4_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, s, t, p, q)
-
186 
-
187 //GLM_SWIZZLE_GEN_REF_FROM_VEC4(valType, detail::vec4, detail::ref2, detail::ref3, detail::ref4)
-
188 
-
189 #define GLM_SWIZZLE_GEN_VEC2_FROM_VEC2_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B) \
-
190  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A) \
-
191  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B) \
-
192  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A) \
-
193  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B)
-
194 
-
195 #define GLM_SWIZZLE_GEN_VEC3_FROM_VEC2_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B) \
-
196  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A) \
-
197  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B) \
-
198  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A) \
-
199  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B) \
-
200  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A) \
-
201  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B) \
-
202  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A) \
-
203  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B)
-
204 
-
205 #define GLM_SWIZZLE_GEN_VEC4_FROM_VEC2_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B) \
-
206  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, A) \
-
207  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, B) \
-
208  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, A) \
-
209  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, B) \
-
210  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, A) \
-
211  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, B) \
-
212  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, A) \
-
213  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, B) \
-
214  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, A) \
-
215  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, B) \
-
216  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, A) \
-
217  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, B) \
-
218  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, A) \
-
219  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, B) \
-
220  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, A) \
-
221  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, B)
-
222 
-
223 #define GLM_SWIZZLE_GEN_VEC_FROM_VEC2_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, A, B) \
-
224  GLM_SWIZZLE_GEN_VEC2_FROM_VEC2_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, A, B) \
-
225  GLM_SWIZZLE_GEN_VEC3_FROM_VEC2_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC3_TYPE, A, B) \
-
226  GLM_SWIZZLE_GEN_VEC4_FROM_VEC2_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC4_TYPE, A, B)
-
227 
-
228 #define GLM_SWIZZLE_GEN_VEC_FROM_VEC2(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE) \
-
229  GLM_SWIZZLE_GEN_VEC_FROM_VEC2_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, x, y) \
-
230  GLM_SWIZZLE_GEN_VEC_FROM_VEC2_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, r, g) \
-
231  GLM_SWIZZLE_GEN_VEC_FROM_VEC2_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, s, t)
-
232 
-
233 //GLM_SWIZZLE_GEN_VEC_FROM_VEC2(valType, detail::vec2, detail::vec2, detail::vec3, detail::vec4)
-
234 
-
235 #define GLM_SWIZZLE_GEN_VEC2_FROM_VEC3_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C) \
-
236  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A) \
-
237  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B) \
-
238  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C) \
-
239  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A) \
-
240  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B) \
-
241  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C) \
-
242  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A) \
-
243  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B) \
-
244  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C)
-
245 
-
246 #define GLM_SWIZZLE_GEN_VEC3_FROM_VEC3_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C) \
-
247  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A) \
-
248  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B) \
-
249  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C) \
-
250  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A) \
-
251  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B) \
-
252  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C) \
-
253  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A) \
-
254  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B) \
-
255  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C) \
-
256  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A) \
-
257  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B) \
-
258  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C) \
-
259  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A) \
-
260  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B) \
-
261  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C) \
-
262  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A) \
-
263  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B) \
-
264  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C) \
-
265  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A) \
-
266  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B) \
-
267  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C) \
-
268  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A) \
-
269  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B) \
-
270  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C) \
-
271  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A) \
-
272  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B) \
-
273  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C)
-
274 
-
275 #define GLM_SWIZZLE_GEN_VEC4_FROM_VEC3_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C) \
-
276  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, A) \
-
277  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, B) \
-
278  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, C) \
-
279  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, A) \
-
280  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, B) \
-
281  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, C) \
-
282  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, A) \
-
283  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, B) \
-
284  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, C) \
-
285  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, A) \
-
286  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, B) \
-
287  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, C) \
-
288  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, A) \
-
289  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, B) \
-
290  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, C) \
-
291  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, A) \
-
292  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, B) \
-
293  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, C) \
-
294  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, A) \
-
295  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, B) \
-
296  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, C) \
-
297  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, A) \
-
298  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, B) \
-
299  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, C) \
-
300  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, A) \
-
301  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, B) \
-
302  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, C) \
-
303  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, A) \
-
304  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, B) \
-
305  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, C) \
-
306  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, A) \
-
307  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, B) \
-
308  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, C) \
-
309  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, A) \
-
310  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, B) \
-
311  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, C) \
-
312  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, A) \
-
313  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, B) \
-
314  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, C) \
-
315  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, A) \
-
316  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, B) \
-
317  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, C) \
-
318  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, A) \
-
319  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, B) \
-
320  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, C) \
-
321  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, A) \
-
322  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, B) \
-
323  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, C) \
-
324  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, A) \
-
325  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, B) \
-
326  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, C) \
-
327  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, A) \
-
328  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, B) \
-
329  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, C) \
-
330  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, A) \
-
331  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, B) \
-
332  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, C) \
-
333  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, A) \
-
334  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, B) \
-
335  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, C) \
-
336  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, A) \
-
337  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, B) \
-
338  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, C) \
-
339  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, A) \
-
340  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, B) \
-
341  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, C) \
-
342  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, A) \
-
343  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, B) \
-
344  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, C) \
-
345  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, A) \
-
346  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, B) \
-
347  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, C) \
-
348  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, A) \
-
349  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, B) \
-
350  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, C) \
-
351  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, A) \
-
352  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, B) \
-
353  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, C) \
-
354  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, A) \
-
355  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, B) \
-
356  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, C)
-
357 
-
358 #define GLM_SWIZZLE_GEN_VEC_FROM_VEC3_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, A, B, C) \
-
359  GLM_SWIZZLE_GEN_VEC2_FROM_VEC3_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, A, B, C) \
-
360  GLM_SWIZZLE_GEN_VEC3_FROM_VEC3_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC3_TYPE, A, B, C) \
-
361  GLM_SWIZZLE_GEN_VEC4_FROM_VEC3_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC4_TYPE, A, B, C)
-
362 
-
363 #define GLM_SWIZZLE_GEN_VEC_FROM_VEC3(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE) \
-
364  GLM_SWIZZLE_GEN_VEC_FROM_VEC3_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, x, y, z) \
-
365  GLM_SWIZZLE_GEN_VEC_FROM_VEC3_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, r, g, b) \
-
366  GLM_SWIZZLE_GEN_VEC_FROM_VEC3_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, s, t, p)
-
367 
-
368 //GLM_SWIZZLE_GEN_VEC_FROM_VEC3(valType, detail::vec3, detail::vec2, detail::vec3, detail::vec4)
-
369 
-
370 #define GLM_SWIZZLE_GEN_VEC2_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C, D) \
-
371  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A) \
-
372  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B) \
-
373  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C) \
-
374  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D) \
-
375  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A) \
-
376  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B) \
-
377  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C) \
-
378  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D) \
-
379  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A) \
-
380  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B) \
-
381  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C) \
-
382  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D) \
-
383  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A) \
-
384  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B) \
-
385  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C) \
-
386  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D)
-
387 
-
388 #define GLM_SWIZZLE_GEN_VEC3_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C, D) \
-
389  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A) \
-
390  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B) \
-
391  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C) \
-
392  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, D) \
-
393  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A) \
-
394  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B) \
-
395  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C) \
-
396  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, D) \
-
397  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A) \
-
398  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B) \
-
399  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C) \
-
400  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, D) \
-
401  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, A) \
-
402  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, B) \
-
403  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, C) \
-
404  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, D) \
-
405  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A) \
-
406  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B) \
-
407  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C) \
-
408  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, D) \
-
409  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A) \
-
410  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B) \
-
411  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C) \
-
412  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, D) \
-
413  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A) \
-
414  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B) \
-
415  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C) \
-
416  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, D) \
-
417  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, A) \
-
418  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, B) \
-
419  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, C) \
-
420  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, D) \
-
421  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A) \
-
422  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B) \
-
423  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C) \
-
424  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, D) \
-
425  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A) \
-
426  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B) \
-
427  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C) \
-
428  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, D) \
-
429  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A) \
-
430  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B) \
-
431  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C) \
-
432  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, D) \
-
433  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, A) \
-
434  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, B) \
-
435  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, C) \
-
436  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, D) \
-
437  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, A) \
-
438  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, B) \
-
439  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, C) \
-
440  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, D) \
-
441  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, A) \
-
442  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, B) \
-
443  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, C) \
-
444  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, D) \
-
445  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, A) \
-
446  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, B) \
-
447  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, C) \
-
448  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, D) \
-
449  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, A) \
-
450  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, B) \
-
451  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, C) \
-
452  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, D)
-
453 
-
454 #define GLM_SWIZZLE_GEN_VEC4_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C, D) \
-
455  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, A) \
-
456  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, B) \
-
457  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, C) \
-
458  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, D) \
-
459  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, A) \
-
460  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, B) \
-
461  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, C) \
-
462  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, D) \
-
463  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, A) \
-
464  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, B) \
-
465  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, C) \
-
466  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, D) \
-
467  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, D, A) \
-
468  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, D, B) \
-
469  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, D, C) \
-
470  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, D, D) \
-
471  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, A) \
-
472  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, B) \
-
473  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, C) \
-
474  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, D) \
-
475  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, A) \
-
476  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, B) \
-
477  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, C) \
-
478  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, D) \
-
479  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, A) \
-
480  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, B) \
-
481  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, C) \
-
482  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, D) \
-
483  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, D, A) \
-
484  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, D, B) \
-
485  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, D, C) \
-
486  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, D, D) \
-
487  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, A) \
-
488  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, B) \
-
489  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, C) \
-
490  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, D) \
-
491  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, A) \
-
492  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, B) \
-
493  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, C) \
-
494  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, D) \
-
495  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, A) \
-
496  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, B) \
-
497  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, C) \
-
498  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, D) \
-
499  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, D, A) \
-
500  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, D, B) \
-
501  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, D, C) \
-
502  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, D, D) \
-
503  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, A, A) \
-
504  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, A, B) \
-
505  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, A, C) \
-
506  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, A, D) \
-
507  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, B, A) \
-
508  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, B, B) \
-
509  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, B, C) \
-
510  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, B, D) \
-
511  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, C, A) \
-
512  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, C, B) \
-
513  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, C, C) \
-
514  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, C, D) \
-
515  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, D, A) \
-
516  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, D, B) \
-
517  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, D, C) \
-
518  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, D, D) \
-
519  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, A) \
-
520  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, B) \
-
521  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, C) \
-
522  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, D) \
-
523  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, A) \
-
524  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, B) \
-
525  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, C) \
-
526  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, D) \
-
527  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, A) \
-
528  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, B) \
-
529  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, C) \
-
530  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, D) \
-
531  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, D, A) \
-
532  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, D, B) \
-
533  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, D, C) \
-
534  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, D, D) \
-
535  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, A) \
-
536  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, B) \
-
537  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, C) \
-
538  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, D) \
-
539  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, A) \
-
540  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, B) \
-
541  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, C) \
-
542  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, D) \
-
543  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, A) \
-
544  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, B) \
-
545  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, C) \
-
546  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, D) \
-
547  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, D, A) \
-
548  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, D, B) \
-
549  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, D, C) \
-
550  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, D, D) \
-
551  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, A) \
-
552  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, B) \
-
553  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, C) \
-
554  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, D) \
-
555  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, A) \
-
556  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, B) \
-
557  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, C) \
-
558  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, D) \
-
559  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, A) \
-
560  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, B) \
-
561  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, C) \
-
562  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, D) \
-
563  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, D, A) \
-
564  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, D, B) \
-
565  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, D, C) \
-
566  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, D, D) \
-
567  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, A, A) \
-
568  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, A, B) \
-
569  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, A, C) \
-
570  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, A, D) \
-
571  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, B, A) \
-
572  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, B, B) \
-
573  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, B, C) \
-
574  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, B, D) \
-
575  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, C, A) \
-
576  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, C, B) \
-
577  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, C, C) \
-
578  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, C, D) \
-
579  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, D, A) \
-
580  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, D, B) \
-
581  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, D, C) \
-
582  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, D, D) \
-
583  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, A) \
-
584  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, B) \
-
585  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, C) \
-
586  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, D) \
-
587  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, A) \
-
588  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, B) \
-
589  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, C) \
-
590  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, D) \
-
591  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, A) \
-
592  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, B) \
-
593  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, C) \
-
594  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, D) \
-
595  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, D, A) \
-
596  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, D, B) \
-
597  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, D, C) \
-
598  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, D, D) \
-
599  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, A) \
-
600  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, B) \
-
601  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, C) \
-
602  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, D) \
-
603  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, A) \
-
604  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, B) \
-
605  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, C) \
-
606  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, D) \
-
607  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, A) \
-
608  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, B) \
-
609  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, C) \
-
610  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, D) \
-
611  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, D, A) \
-
612  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, D, B) \
-
613  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, D, C) \
-
614  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, D, D) \
-
615  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, A) \
-
616  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, B) \
-
617  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, C) \
-
618  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, D) \
-
619  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, A) \
-
620  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, B) \
-
621  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, C) \
-
622  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, D) \
-
623  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, A) \
-
624  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, B) \
-
625  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, C) \
-
626  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, D) \
-
627  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, D, A) \
-
628  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, D, B) \
-
629  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, D, C) \
-
630  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, D, D) \
-
631  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, A, A) \
-
632  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, A, B) \
-
633  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, A, C) \
-
634  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, A, D) \
-
635  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, B, A) \
-
636  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, B, B) \
-
637  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, B, C) \
-
638  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, B, D) \
-
639  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, C, A) \
-
640  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, C, B) \
-
641  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, C, C) \
-
642  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, C, D) \
-
643  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, D, A) \
-
644  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, D, B) \
-
645  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, D, C) \
-
646  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, D, D) \
-
647  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, A, A) \
-
648  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, A, B) \
-
649  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, A, C) \
-
650  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, A, D) \
-
651  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, B, A) \
-
652  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, B, B) \
-
653  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, B, C) \
-
654  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, B, D) \
-
655  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, C, A) \
-
656  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, C, B) \
-
657  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, C, C) \
-
658  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, C, D) \
-
659  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, D, A) \
-
660  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, D, B) \
-
661  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, D, C) \
-
662  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, D, D) \
-
663  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, A, A) \
-
664  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, A, B) \
-
665  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, A, C) \
-
666  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, A, D) \
-
667  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, B, A) \
-
668  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, B, B) \
-
669  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, B, C) \
-
670  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, B, D) \
-
671  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, C, A) \
-
672  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, C, B) \
-
673  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, C, C) \
-
674  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, C, D) \
-
675  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, D, A) \
-
676  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, D, B) \
-
677  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, D, C) \
-
678  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, D, D) \
-
679  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, A, A) \
-
680  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, A, B) \
-
681  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, A, C) \
-
682  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, A, D) \
-
683  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, B, A) \
-
684  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, B, B) \
-
685  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, B, C) \
-
686  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, B, D) \
-
687  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, C, A) \
-
688  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, C, B) \
-
689  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, C, C) \
-
690  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, C, D) \
-
691  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, D, A) \
-
692  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, D, B) \
-
693  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, D, C) \
-
694  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, D, D) \
-
695  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, A, A) \
-
696  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, A, B) \
-
697  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, A, C) \
-
698  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, A, D) \
-
699  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, B, A) \
-
700  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, B, B) \
-
701  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, B, C) \
-
702  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, B, D) \
-
703  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, C, A) \
-
704  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, C, B) \
-
705  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, C, C) \
-
706  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, C, D) \
-
707  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, D, A) \
-
708  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, D, B) \
-
709  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, D, C) \
-
710  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, D, D)
-
711 
-
712 #define GLM_SWIZZLE_GEN_VEC_FROM_VEC4_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, A, B, C, D) \
-
713  GLM_SWIZZLE_GEN_VEC2_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, A, B, C, D) \
-
714  GLM_SWIZZLE_GEN_VEC3_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC3_TYPE, A, B, C, D) \
-
715  GLM_SWIZZLE_GEN_VEC4_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC4_TYPE, A, B, C, D)
-
716 
-
717 #define GLM_SWIZZLE_GEN_VEC_FROM_VEC4(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE) \
-
718  GLM_SWIZZLE_GEN_VEC_FROM_VEC4_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, x, y, z, w) \
-
719  GLM_SWIZZLE_GEN_VEC_FROM_VEC4_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, r, g, b, a) \
-
720  GLM_SWIZZLE_GEN_VEC_FROM_VEC4_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, s, t, p, q)
-
721 
-
722 //GLM_SWIZZLE_GEN_VEC_FROM_VEC4(valType, detail::vec4, detail::vec2, detail::vec3, detail::vec4)
-
723 
-
724 #endif//glm_core_swizzle_func
+Go to the documentation of this file.
1 
+
43 #pragma once
+
44 
+
45 // Dependencies
+
46 #include "../detail/setup.hpp"
+
47 #include "../detail/precision.hpp"
+
48 #include "../detail/type_int.hpp"
+
49 #include "../detail/_vectorize.hpp"
+
50 #include <limits>
+
51 
+
52 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+
53 # pragma message("GLM: GLM_GTC_bitfield extension included")
+
54 #endif
+
55 
+
56 namespace glm
+
57 {
+
60 
+
64  template <typename genIUType>
+
65  GLM_FUNC_DECL genIUType mask(genIUType Bits);
+
66 
+
70  template <typename T, precision P, template <typename, precision> class vecIUType>
+
71  GLM_FUNC_DECL vecIUType<T, P> mask(vecIUType<T, P> const & v);
+
72 
+
76  template <typename genIUType>
+
77  GLM_FUNC_DECL genIUType bitfieldRotateRight(genIUType In, int Shift);
+
78 
+
82  template <typename T, precision P, template <typename, precision> class vecType>
+
83  GLM_FUNC_DECL vecType<T, P> bitfieldRotateRight(vecType<T, P> const & In, int Shift);
+
84 
+
88  template <typename genIUType>
+
89  GLM_FUNC_DECL genIUType bitfieldRotateLeft(genIUType In, int Shift);
+
90 
+
94  template <typename T, precision P, template <typename, precision> class vecType>
+
95  GLM_FUNC_DECL vecType<T, P> bitfieldRotateLeft(vecType<T, P> const & In, int Shift);
+
96 
+
100  template <typename genIUType>
+
101  GLM_FUNC_DECL genIUType bitfieldFillOne(genIUType Value, int FirstBit, int BitCount);
+
102 
+
106  template <typename T, precision P, template <typename, precision> class vecType>
+
107  GLM_FUNC_DECL vecType<T, P> bitfieldFillOne(vecType<T, P> const & Value, int FirstBit, int BitCount);
+
108 
+
112  template <typename genIUType>
+
113  GLM_FUNC_DECL genIUType bitfieldFillZero(genIUType Value, int FirstBit, int BitCount);
+
114 
+
118  template <typename T, precision P, template <typename, precision> class vecType>
+
119  GLM_FUNC_DECL vecType<T, P> bitfieldFillZero(vecType<T, P> const & Value, int FirstBit, int BitCount);
+
120 
+
126  GLM_FUNC_DECL int16 bitfieldInterleave(int8 x, int8 y);
+
127 
+
133  GLM_FUNC_DECL uint16 bitfieldInterleave(uint8 x, uint8 y);
+
134 
+
140  GLM_FUNC_DECL int32 bitfieldInterleave(int16 x, int16 y);
+
141 
+
147  GLM_FUNC_DECL uint32 bitfieldInterleave(uint16 x, uint16 y);
+
148 
+
154  GLM_FUNC_DECL int64 bitfieldInterleave(int32 x, int32 y);
+
155 
+
161  GLM_FUNC_DECL uint64 bitfieldInterleave(uint32 x, uint32 y);
+
162 
+
168  GLM_FUNC_DECL int32 bitfieldInterleave(int8 x, int8 y, int8 z);
+
169 
+
175  GLM_FUNC_DECL uint32 bitfieldInterleave(uint8 x, uint8 y, uint8 z);
+
176 
+
182  GLM_FUNC_DECL int64 bitfieldInterleave(int16 x, int16 y, int16 z);
+
183 
+
189  GLM_FUNC_DECL uint64 bitfieldInterleave(uint16 x, uint16 y, uint16 z);
+
190 
+
196  GLM_FUNC_DECL int64 bitfieldInterleave(int32 x, int32 y, int32 z);
+
197 
+
203  GLM_FUNC_DECL uint64 bitfieldInterleave(uint32 x, uint32 y, uint32 z);
+
204 
+
210  GLM_FUNC_DECL int32 bitfieldInterleave(int8 x, int8 y, int8 z, int8 w);
+
211 
+
217  GLM_FUNC_DECL uint32 bitfieldInterleave(uint8 x, uint8 y, uint8 z, uint8 w);
+
218 
+
224  GLM_FUNC_DECL int64 bitfieldInterleave(int16 x, int16 y, int16 z, int16 w);
+
225 
+
231  GLM_FUNC_DECL uint64 bitfieldInterleave(uint16 x, uint16 y, uint16 z, uint16 w);
+
232 
+
234 } //namespace glm
+
235 
+
236 #include "bitfield.inl"
+
GLM_FUNC_DECL vecType< T, P > bitfieldRotateLeft(vecType< T, P > const &In, int Shift)
Rotate all bits to the left.
+
GLM_FUNC_DECL uint64 bitfieldInterleave(uint16 x, uint16 y, uint16 z, uint16 w)
Interleaves the bits of x, y, z and w.
+
GLM_FUNC_DECL vecIUType< T, P > mask(vecIUType< T, P > const &v)
Build a mask of 'count' bits.
+
GLM_FUNC_DECL vecType< T, P > bitfieldRotateRight(vecType< T, P > const &In, int Shift)
Rotate all bits to the right.
+
GLM_FUNC_DECL vecType< T, P > bitfieldFillZero(vecType< T, P > const &Value, int FirstBit, int BitCount)
Set to 0 a range of bits.
+
Definition: _noise.hpp:39
+
GLM_FUNC_DECL vecType< T, P > bitfieldFillOne(vecType< T, P > const &Value, int FirstBit, int BitCount)
Set to 1 a range of bits.
diff --git a/doc/api/a00010.html b/doc/api/a00010.html new file mode 100644 index 00000000..c757ccbf --- /dev/null +++ b/doc/api/a00010.html @@ -0,0 +1,87 @@ + + + + + + +0.9.6: closest_point.hpp File Reference + + + + + + +
+
+ + + + + + + +
+
0.9.6 +
+
+
+ + + + + +
+
+ +
+
closest_point.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + +

+Functions

template<typename T , precision P>
GLM_FUNC_DECL tvec3< T, P > closestPointOnLine (tvec3< T, P > const &point, tvec3< T, P > const &a, tvec3< T, P > const &b)
 
+template<typename T , precision P>
GLM_FUNC_DECL tvec2< T, P > closestPointOnLine (tvec2< T, P > const &point, tvec2< T, P > const &a, tvec2< T, P > const &b)
 
+

Detailed Description

+

OpenGL Mathematics (glm.g-truc.net)

+

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+

GLM_GTX_closest_point

+
Date
2005-12-30 / 2011-06-07
+
Author
Christophe Riccio
+
See also
GLM Core (dependence)
+ +

Definition in file closest_point.hpp.

+
+ + + + diff --git a/doc/api/a00010_source.html b/doc/api/a00010_source.html index a6d2c8a6..601acac9 100644 --- a/doc/api/a00010_source.html +++ b/doc/api/a00010_source.html @@ -3,8 +3,8 @@ - -GLM: _vectorize.hpp Source File + +0.9.6: closest_point.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,186 +41,50 @@
-
_vectorize.hpp
+
closest_point.hpp
-
1 
-
29 #ifndef GLM_CORE_DETAIL_INCLUDED
-
30 #define GLM_CORE_DETAIL_INCLUDED
-
31 
-
32 #include "type_vec2.hpp"
-
33 #include "type_vec3.hpp"
-
34 #include "type_vec4.hpp"
-
35 
-
36 #define VECTORIZE2_VEC(func) \
-
37  template <typename T, precision P> \
-
38  GLM_FUNC_QUALIFIER detail::tvec2<T, P> func( \
-
39  detail::tvec2<T, P> const & v) \
-
40  { \
-
41  return detail::tvec2<T, P>( \
-
42  func(v.x), \
-
43  func(v.y)); \
-
44  }
-
45 
-
46 #define VECTORIZE3_VEC(func) \
-
47  template <typename T, precision P> \
-
48  GLM_FUNC_QUALIFIER detail::tvec3<T, P> func( \
-
49  detail::tvec3<T, P> const & v) \
-
50  { \
-
51  return detail::tvec3<T, P>( \
-
52  func(v.x), \
-
53  func(v.y), \
-
54  func(v.z)); \
-
55  }
-
56 
-
57 #define VECTORIZE4_VEC(func) \
-
58  template <typename T, precision P> \
-
59  GLM_FUNC_QUALIFIER detail::tvec4<T, P> func( \
-
60  detail::tvec4<T, P> const & v) \
-
61  { \
-
62  return detail::tvec4<T, P>( \
-
63  func(v.x), \
-
64  func(v.y), \
-
65  func(v.z), \
-
66  func(v.w)); \
-
67  }
-
68 
-
69 #define VECTORIZE_VEC(func) \
-
70  VECTORIZE2_VEC(func) \
-
71  VECTORIZE3_VEC(func) \
-
72  VECTORIZE4_VEC(func)
-
73 
-
74 #define VECTORIZE2_VEC_SCA(func) \
-
75  template <typename T, precision P> \
-
76  GLM_FUNC_QUALIFIER detail::tvec2<T, P> func \
-
77  ( \
-
78  detail::tvec2<T, P> const & x, \
-
79  T const & y \
-
80  ) \
-
81  { \
-
82  return detail::tvec2<T, P>( \
-
83  func(x.x, y), \
-
84  func(x.y, y)); \
-
85  }
-
86 
-
87 #define VECTORIZE3_VEC_SCA(func) \
-
88  template <typename T, precision P> \
-
89  GLM_FUNC_QUALIFIER detail::tvec3<T, P> func \
-
90  ( \
-
91  detail::tvec3<T, P> const & x, \
-
92  T const & y \
-
93  ) \
-
94  { \
-
95  return detail::tvec3<T, P>( \
-
96  func(x.x, y), \
-
97  func(x.y, y), \
-
98  func(x.z, y)); \
-
99  }
-
100 
-
101 #define VECTORIZE4_VEC_SCA(func) \
-
102  template <typename T, precision P> \
-
103  GLM_FUNC_QUALIFIER detail::tvec4<T, P> func \
-
104  ( \
-
105  detail::tvec4<T, P> const & x, \
-
106  T const & y \
-
107  ) \
-
108  { \
-
109  return detail::tvec4<T, P>( \
-
110  func(x.x, y), \
-
111  func(x.y, y), \
-
112  func(x.z, y), \
-
113  func(x.w, y)); \
-
114  }
-
115 
-
116 #define VECTORIZE_VEC_SCA(func) \
-
117  VECTORIZE2_VEC_SCA(func) \
-
118  VECTORIZE3_VEC_SCA(func) \
-
119  VECTORIZE4_VEC_SCA(func)
-
120 
-
121 #define VECTORIZE2_VEC_VEC(func) \
-
122  template <typename T, precision P> \
-
123  GLM_FUNC_QUALIFIER detail::tvec2<T, P> func \
-
124  ( \
-
125  detail::tvec2<T, P> const & x, \
-
126  detail::tvec2<T, P> const & y \
-
127  ) \
-
128  { \
-
129  return detail::tvec2<T, P>( \
-
130  func(x.x, y.x), \
-
131  func(x.y, y.y)); \
-
132  }
-
133 
-
134 #define VECTORIZE3_VEC_VEC(func) \
-
135  template <typename T, precision P> \
-
136  GLM_FUNC_QUALIFIER detail::tvec3<T, P> func \
-
137  ( \
-
138  detail::tvec3<T, P> const & x, \
-
139  detail::tvec3<T, P> const & y \
-
140  ) \
-
141  { \
-
142  return detail::tvec3<T, P>( \
-
143  func(x.x, y.x), \
-
144  func(x.y, y.y), \
-
145  func(x.z, y.z)); \
-
146  }
-
147 
-
148 #define VECTORIZE4_VEC_VEC(func) \
-
149  template <typename T, precision P> \
-
150  GLM_FUNC_QUALIFIER detail::tvec4<T, P> func \
-
151  ( \
-
152  detail::tvec4<T, P> const & x, \
-
153  detail::tvec4<T, P> const & y \
-
154  ) \
-
155  { \
-
156  return detail::tvec4<T, P>( \
-
157  func(x.x, y.x), \
-
158  func(x.y, y.y), \
-
159  func(x.z, y.z), \
-
160  func(x.w, y.w)); \
-
161  }
-
162 
-
163 #define VECTORIZE_VEC_VEC(func) \
-
164  VECTORIZE2_VEC_VEC(func) \
-
165  VECTORIZE3_VEC_VEC(func) \
-
166  VECTORIZE4_VEC_VEC(func)
-
167 
-
168 namespace glm{
-
169 namespace detail
-
170 {
-
171  template<bool C>
-
172  struct If
-
173  {
-
174  template<typename F, typename T>
-
175  static GLM_FUNC_QUALIFIER T apply(F functor, const T& val)
-
176  {
-
177  return functor(val);
-
178  }
-
179  };
-
180 
-
181  template<>
-
182  struct If<false>
-
183  {
-
184  template<typename F, typename T>
-
185  static GLM_FUNC_QUALIFIER T apply(F, const T& val)
-
186  {
-
187  return val;
-
188  }
-
189  };
-
190 }//namespace detail
-
191 }//namespace glm
-
192 
-
193 #endif//GLM_CORE_DETAIL_INCLUDED
+Go to the documentation of this file.
1 
+
42 #pragma once
+
43 
+
44 // Dependency:
+
45 #include "../glm.hpp"
+
46 
+
47 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+
48 # pragma message("GLM: GLM_GTX_closest_point extension included")
+
49 #endif
+
50 
+
51 namespace glm
+
52 {
+
55 
+
58  template <typename T, precision P>
+
59  GLM_FUNC_DECL tvec3<T, P> closestPointOnLine(
+
60  tvec3<T, P> const & point,
+
61  tvec3<T, P> const & a,
+
62  tvec3<T, P> const & b);
+
63 
+
65  template <typename T, precision P>
+
66  GLM_FUNC_DECL tvec2<T, P> closestPointOnLine(
+
67  tvec2<T, P> const & point,
+
68  tvec2<T, P> const & a,
+
69  tvec2<T, P> const & b);
+
70 
+
72 }// namespace glm
+
73 
+
74 #include "closest_point.inl"
+
GLM_FUNC_DECL tvec2< T, P > closestPointOnLine(tvec2< T, P > const &point, tvec2< T, P > const &a, tvec2< T, P > const &b)
2d lines work as well
+
Definition: _noise.hpp:39
diff --git a/doc/api/a00011.html b/doc/api/a00011.html index c3eadf0d..a226a918 100644 --- a/doc/api/a00011.html +++ b/doc/api/a00011.html @@ -3,8 +3,8 @@ - -GLM: associated_min_max.hpp File Reference + +0.9.6: color_space.hpp File Reference @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,65 +41,59 @@
-Namespaces | Functions
-
associated_min_max.hpp File Reference
+
color_space.hpp File Reference

Go to the source code of this file.

- - - -

-Namespaces

 glm
 
- - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + +

Functions

template<typename genTypeT , typename genTypeU >
genTypeU associatedMax (const genTypeT &x, const genTypeU &a, const genTypeT &y, const genTypeU &b)
 
template<typename genTypeT , typename genTypeU >
genTypeU associatedMax (const genTypeT &x, const genTypeU &a, const genTypeT &y, const genTypeU &b, const genTypeT &z, const genTypeU &c)
 
template<typename genTypeT , typename genTypeU >
genTypeU associatedMax (const genTypeT &x, const genTypeU &a, const genTypeT &y, const genTypeU &b, const genTypeT &z, const genTypeU &c, const genTypeT &w, const genTypeU &d)
 
template<typename genTypeT , typename genTypeU >
genTypeU associatedMin (const genTypeT &x, const genTypeU &a, const genTypeT &y, const genTypeU &b)
 
template<typename genTypeT , typename genTypeU >
genTypeU associatedMin (const genTypeT &x, const genTypeU &a, const genTypeT &y, const genTypeU &b, const genTypeT &z, const genTypeU &c)
 
template<typename genTypeT , typename genTypeU >
genTypeU associatedMin (const genTypeT &x, const genTypeU &a, const genTypeT &y, const genTypeU &b, const genTypeT &z, const genTypeU &c, const genTypeT &w, const genTypeU &d)
 
template<typename T , precision P>
GLM_FUNC_DECL tvec3< T, P > hsvColor (tvec3< T, P > const &rgbValue)
 
template<typename T , precision P>
GLM_FUNC_DECL T luminosity (tvec3< T, P > const &color)
 
template<typename T , precision P>
GLM_FUNC_DECL tvec3< T, P > rgbColor (tvec3< T, P > const &hsvValue)
 
template<typename T >
GLM_FUNC_DECL tmat4x4< T,
+defaultp > 
saturation (T const s)
 
template<typename T , precision P>
GLM_FUNC_DECL tvec3< T, P > saturation (T const s, tvec3< T, P > const &color)
 
template<typename T , precision P>
GLM_FUNC_DECL tvec4< T, P > saturation (T const s, tvec4< T, P > const &color)
 

Detailed Description

OpenGL Mathematics (glm.g-truc.net)

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_associated_min_max

-
Date
2008-03-10 / 2011-06-07
+

GLM_GTX_color_space

+
Date
2005-12-21 / 2011-06-07
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
-
-GLM_GTX_extented_min_max (dependence)
+
See also
GLM Core (dependence)
-

Definition in file associated_min_max.hpp.

+

Definition in file color_space.hpp.

diff --git a/doc/api/a00011_source.html b/doc/api/a00011_source.html index 4e04a7bf..07a0abdd 100644 --- a/doc/api/a00011_source.html +++ b/doc/api/a00011_source.html @@ -3,8 +3,8 @@ - -GLM: associated_min_max.hpp Source File + +0.9.6: color_space.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,77 +41,67 @@
-
associated_min_max.hpp
+
color_space.hpp
Go to the documentation of this file.
1 
-
38 #ifndef GLM_GTX_associated_min_max
-
39 #define GLM_GTX_associated_min_max
-
40 
-
41 // Dependency:
-
42 #include "../glm.hpp"
+
42 #pragma once
43 
-
44 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
45 # pragma message("GLM: GLM_GTX_associated_min_max extension included")
-
46 #endif
-
47 
-
48 namespace glm
-
49 {
-
52 
-
55  template<typename genTypeT, typename genTypeU>
-
56  genTypeU associatedMin(
-
57  const genTypeT& x, const genTypeU& a,
-
58  const genTypeT& y, const genTypeU& b);
-
59 
-
62  template<typename genTypeT, typename genTypeU>
-
63  genTypeU associatedMin(
-
64  const genTypeT& x, const genTypeU& a,
-
65  const genTypeT& y, const genTypeU& b,
-
66  const genTypeT& z, const genTypeU& c);
-
67 
-
70  template<typename genTypeT, typename genTypeU>
-
71  genTypeU associatedMin(
-
72  const genTypeT& x, const genTypeU& a,
-
73  const genTypeT& y, const genTypeU& b,
-
74  const genTypeT& z, const genTypeU& c,
-
75  const genTypeT& w, const genTypeU& d);
-
76 
-
79  template<typename genTypeT, typename genTypeU>
-
80  genTypeU associatedMax(
-
81  const genTypeT& x, const genTypeU& a,
-
82  const genTypeT& y, const genTypeU& b);
-
83 
-
86  template<typename genTypeT, typename genTypeU>
-
87  genTypeU associatedMax(
-
88  const genTypeT& x, const genTypeU& a,
-
89  const genTypeT& y, const genTypeU& b,
-
90  const genTypeT& z, const genTypeU& c);
-
91 
-
94  template<typename genTypeT, typename genTypeU>
-
95  genTypeU associatedMax(
-
96  const genTypeT& x, const genTypeU& a,
-
97  const genTypeT& y, const genTypeU& b,
-
98  const genTypeT& z, const genTypeU& c,
-
99  const genTypeT& w, const genTypeU& d);
-
100 
-
102 } //namespace glm
-
103 
-
104 #include "associated_min_max.inl"
-
105 
-
106 #endif//GLM_GTX_associated_min_max
-
genTypeU associatedMax(const genTypeT &x, const genTypeU &a, const genTypeT &y, const genTypeU &b)
Max comparison between 2 variables.
-
genTypeU associatedMin(const genTypeT &x, const genTypeU &a, const genTypeT &y, const genTypeU &b)
Min comparison between 2 variables.
+
44 // Dependency:
+
45 #include "../glm.hpp"
+
46 
+
47 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+
48 # pragma message("GLM: GLM_GTX_color_space extension included")
+
49 #endif
+
50 
+
51 namespace glm
+
52 {
+
55 
+
58  template <typename T, precision P>
+
59  GLM_FUNC_DECL tvec3<T, P> rgbColor(
+
60  tvec3<T, P> const & hsvValue);
+
61 
+
64  template <typename T, precision P>
+
65  GLM_FUNC_DECL tvec3<T, P> hsvColor(
+
66  tvec3<T, P> const & rgbValue);
+
67 
+
70  template <typename T>
+
71  GLM_FUNC_DECL tmat4x4<T, defaultp> saturation(
+
72  T const s);
+
73 
+
76  template <typename T, precision P>
+
77  GLM_FUNC_DECL tvec3<T, P> saturation(
+
78  T const s,
+
79  tvec3<T, P> const & color);
+
80 
+
83  template <typename T, precision P>
+
84  GLM_FUNC_DECL tvec4<T, P> saturation(
+
85  T const s,
+
86  tvec4<T, P> const & color);
+
87 
+
90  template <typename T, precision P>
+
91  GLM_FUNC_DECL T luminosity(
+
92  tvec3<T, P> const & color);
+
93 
+
95 }//namespace glm
+
96 
+
97 #include "color_space.inl"
+
GLM_FUNC_DECL T luminosity(tvec3< T, P > const &color)
Compute color luminosity associating ratios (0.33, 0.59, 0.11) to RGB canals.
+
GLM_FUNC_DECL tvec3< T, P > hsvColor(tvec3< T, P > const &rgbValue)
Converts a color from RGB color space to its color in HSV color space.
+
GLM_FUNC_DECL tvec3< T, P > rgbColor(tvec3< T, P > const &hsvValue)
Converts a color from HSV color space to its color in RGB color space.
+
GLM_FUNC_DECL tvec4< T, P > saturation(T const s, tvec4< T, P > const &color)
Modify the saturation of a color.
+
Definition: _noise.hpp:39
diff --git a/doc/api/a00012.html b/doc/api/a00012.html index 93b2943b..fccf7148 100644 --- a/doc/api/a00012.html +++ b/doc/api/a00012.html @@ -3,8 +3,8 @@ - -GLM: bit.hpp File Reference + +0.9.6: color_space_YCoCg.hpp File Reference @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,120 +41,52 @@
-Namespaces | Functions
-
bit.hpp File Reference
+
color_space_YCoCg.hpp File Reference

Go to the source code of this file.

- - - -

-Namespaces

 glm
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + +

Functions

GLM_FUNC_DECL int16 bitfieldInterleave (int8 x, int8 y)
 
GLM_FUNC_DECL uint16 bitfieldInterleave (uint8 x, uint8 y)
 
GLM_FUNC_DECL int32 bitfieldInterleave (int16 x, int16 y)
 
GLM_FUNC_DECL uint32 bitfieldInterleave (uint16 x, uint16 y)
 
GLM_FUNC_DECL int64 bitfieldInterleave (int32 x, int32 y)
 
GLM_FUNC_DECL uint64 bitfieldInterleave (uint32 x, uint32 y)
 
GLM_FUNC_DECL int32 bitfieldInterleave (int8 x, int8 y, int8 z)
 
GLM_FUNC_DECL uint32 bitfieldInterleave (uint8 x, uint8 y, uint8 z)
 
GLM_FUNC_DECL int64 bitfieldInterleave (int16 x, int16 y, int16 z)
 
GLM_FUNC_DECL uint64 bitfieldInterleave (uint16 x, uint16 y, uint16 z)
 
GLM_FUNC_DECL int64 bitfieldInterleave (int32 x, int32 y, int32 z)
 
GLM_FUNC_DECL uint64 bitfieldInterleave (uint32 x, uint32 y, uint32 z)
 
GLM_FUNC_DECL int32 bitfieldInterleave (int8 x, int8 y, int8 z, int8 w)
 
GLM_FUNC_DECL uint32 bitfieldInterleave (uint8 x, uint8 y, uint8 z, uint8 w)
 
GLM_FUNC_DECL int64 bitfieldInterleave (int16 x, int16 y, int16 z, int16 w)
 
GLM_FUNC_DECL uint64 bitfieldInterleave (uint16 x, uint16 y, uint16 z, uint16 w)
 
template<typename genType >
GLM_DEPRECATED GLM_FUNC_DECL
-genType 
bitRevert (genType const &value)
 
template<typename genType >
GLM_FUNC_DECL genType bitRotateLeft (genType const &In, std::size_t Shift)
 
template<typename genType >
GLM_FUNC_DECL genType bitRotateRight (genType const &In, std::size_t Shift)
 
template<typename genIUType >
GLM_FUNC_DECL genIUType fillBitfieldWithOne (genIUType const &Value, int const &FromBit, int const &ToBit)
 
template<typename genIUType >
GLM_FUNC_DECL genIUType fillBitfieldWithZero (genIUType const &Value, int const &FromBit, int const &ToBit)
 
template<typename genType >
GLM_FUNC_DECL genType highestBitValue (genType const &value)
 
template<typename genType >
GLM_FUNC_DECL bool isPowerOfTwo (genType const &value)
 
template<typename genIType >
GLM_FUNC_DECL genIType mask (genIType const &count)
 
template<typename genType >
GLM_FUNC_DECL genType powerOfTwoAbove (genType const &value)
 
template<typename genType >
GLM_FUNC_DECL genType powerOfTwoBelow (genType const &value)
 
template<typename genType >
GLM_FUNC_DECL genType powerOfTwoNearest (genType const &value)
 
template<typename T , precision P>
GLM_FUNC_DECL tvec3< T, P > rgb2YCoCg (tvec3< T, P > const &rgbColor)
 
template<typename T , precision P>
GLM_FUNC_DECL tvec3< T, P > rgb2YCoCgR (tvec3< T, P > const &rgbColor)
 
template<typename T , precision P>
GLM_FUNC_DECL tvec3< T, P > YCoCg2rgb (tvec3< T, P > const &YCoCgColor)
 
template<typename T , precision P>
GLM_FUNC_DECL tvec3< T, P > YCoCgR2rgb (tvec3< T, P > const &YCoCgColor)
 

Detailed Description

OpenGL Mathematics (glm.g-truc.net)

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_bit

-
Date
2007-03-14 / 2011-06-07
+

GLM_GTX_color_space_YCoCg

+
Date
2008-10-28 / 2011-06-07
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
-
-gtc_half_float (dependence)
-

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_bit

-
Date
2005-12-30 / 2011-06-07
-
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
+
See also
GLM Core (dependence)
-

Definition in file bit.hpp.

+

Definition in file color_space_YCoCg.hpp.

diff --git a/doc/api/a00012_source.html b/doc/api/a00012_source.html index bb4748de..88dfa035 100644 --- a/doc/api/a00012_source.html +++ b/doc/api/a00012_source.html @@ -3,8 +3,8 @@ - -GLM: bit.hpp Source File + +0.9.6: color_space_YCoCg.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,132 +41,58 @@
-
bit.hpp
+
color_space_YCoCg.hpp
Go to the documentation of this file.
1 
-
39 #ifndef GLM_GTX_bit
-
40 #define GLM_GTX_bit
-
41 
-
42 // Dependencies
-
43 #include "../detail/type_int.hpp"
-
44 #include "../detail/setup.hpp"
-
45 #include <cstddef>
+
42 #pragma once
+
43 
+
44 // Dependency:
+
45 #include "../glm.hpp"
46 
47 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
48 # pragma message("GLM: GLM_GTX_bit extension included")
-
49 #endif
-
50 
-
51 namespace glm
+
48 # pragma message("GLM: GLM_GTX_color_space_YCoCg extension included")
+
49 #endif
+
50 
+
51 namespace glm
52 {
55 
-
58  template <typename genIType>
-
59  GLM_FUNC_DECL genIType mask(genIType const & count);
-
60 
-
63  template <typename genType>
-
64  GLM_FUNC_DECL genType highestBitValue(genType const & value);
-
65 
-
68  template <typename genType>
-
69  GLM_FUNC_DECL bool isPowerOfTwo(genType const & value);
-
70 
-
73  template <typename genType>
-
74  GLM_FUNC_DECL genType powerOfTwoAbove(genType const & value);
-
75 
-
78  template <typename genType>
-
79  GLM_FUNC_DECL genType powerOfTwoBelow(genType const & value);
-
80 
-
83  template <typename genType>
-
84  GLM_FUNC_DECL genType powerOfTwoNearest(genType const & value);
-
85 
-
88  template <typename genType>
-
89  GLM_DEPRECATED GLM_FUNC_DECL genType bitRevert(genType const & value);
-
90 
-
93  template <typename genType>
-
94  GLM_FUNC_DECL genType bitRotateRight(genType const & In, std::size_t Shift);
-
95 
-
98  template <typename genType>
-
99  GLM_FUNC_DECL genType bitRotateLeft(genType const & In, std::size_t Shift);
-
100 
-
103  template <typename genIUType>
-
104  GLM_FUNC_DECL genIUType fillBitfieldWithOne(
-
105  genIUType const & Value,
-
106  int const & FromBit,
-
107  int const & ToBit);
-
108 
-
111  template <typename genIUType>
-
112  GLM_FUNC_DECL genIUType fillBitfieldWithZero(
-
113  genIUType const & Value,
-
114  int const & FromBit,
-
115  int const & ToBit);
-
116 
-
122  GLM_FUNC_DECL int16 bitfieldInterleave(int8 x, int8 y);
-
123 
-
129  GLM_FUNC_DECL uint16 bitfieldInterleave(uint8 x, uint8 y);
-
130 
-
136  GLM_FUNC_DECL int32 bitfieldInterleave(int16 x, int16 y);
-
137 
-
143  GLM_FUNC_DECL uint32 bitfieldInterleave(uint16 x, uint16 y);
-
144 
-
150  GLM_FUNC_DECL int64 bitfieldInterleave(int32 x, int32 y);
-
151 
-
157  GLM_FUNC_DECL uint64 bitfieldInterleave(uint32 x, uint32 y);
-
158 
-
164  GLM_FUNC_DECL int32 bitfieldInterleave(int8 x, int8 y, int8 z);
-
165 
-
171  GLM_FUNC_DECL uint32 bitfieldInterleave(uint8 x, uint8 y, uint8 z);
-
172 
-
178  GLM_FUNC_DECL int64 bitfieldInterleave(int16 x, int16 y, int16 z);
-
179 
-
185  GLM_FUNC_DECL uint64 bitfieldInterleave(uint16 x, uint16 y, uint16 z);
-
186 
-
192  GLM_FUNC_DECL int64 bitfieldInterleave(int32 x, int32 y, int32 z);
-
193 
-
199  GLM_FUNC_DECL uint64 bitfieldInterleave(uint32 x, uint32 y, uint32 z);
-
200 
-
206  GLM_FUNC_DECL int32 bitfieldInterleave(int8 x, int8 y, int8 z, int8 w);
-
207 
-
213  GLM_FUNC_DECL uint32 bitfieldInterleave(uint8 x, uint8 y, uint8 z, uint8 w);
-
214 
-
220  GLM_FUNC_DECL int64 bitfieldInterleave(int16 x, int16 y, int16 z, int16 w);
-
221 
-
227  GLM_FUNC_DECL uint64 bitfieldInterleave(uint16 x, uint16 y, uint16 z, uint16 w);
-
228 
-
230 } //namespace glm
-
231 
-
232 #include "bit.inl"
-
233 
-
234 #endif//GLM_GTX_bit
-
GLM_FUNC_DECL genType highestBitValue(genType const &value)
Find the highest bit set to 1 in a integer variable and return its value.
-
detail::int8 int8
8 bit signed integer type.
Definition: type_int.hpp:89
-
detail::uint32 uint32
32 bit unsigned integer type.
Definition: type_int.hpp:96
-
detail::int16 int16
16 bit signed integer type.
Definition: type_int.hpp:90
-
detail::int64 int64
64 bit signed integer type.
Definition: type_int.hpp:92
-
GLM_FUNC_DECL genType powerOfTwoNearest(genType const &value)
Return the power of two number which value is the closet to the input value.
-
GLM_FUNC_DECL genType bitRotateLeft(genType const &In, std::size_t Shift)
Rotate all bits to the left.
-
GLM_FUNC_DECL genIType mask(genIType const &count)
Build a mask of &#39;count&#39; bits.
-
detail::uint64 uint64
64 bit unsigned integer type.
Definition: type_int.hpp:97
-
detail::int32 int32
32 bit signed integer type.
Definition: type_int.hpp:91
-
GLM_FUNC_DECL genIUType fillBitfieldWithOne(genIUType const &Value, int const &FromBit, int const &ToBit)
Set to 1 a range of bits.
-
GLM_FUNC_DECL genType bitRotateRight(genType const &In, std::size_t Shift)
Rotate all bits to the right.
-
detail::uint8 uint8
8 bit unsigned integer type.
Definition: type_int.hpp:94
-
GLM_FUNC_DECL bool isPowerOfTwo(genType const &value)
Return true if the value is a power of two number.
-
GLM_DEPRECATED GLM_FUNC_DECL genType bitRevert(genType const &value)
Revert all bits of any integer based type.
-
GLM_FUNC_DECL genType powerOfTwoBelow(genType const &value)
Return the power of two number which value is just lower the input value.
-
detail::uint16 uint16
16 bit unsigned integer type.
Definition: type_int.hpp:95
-
GLM_FUNC_DECL genIUType fillBitfieldWithZero(genIUType const &Value, int const &FromBit, int const &ToBit)
Set to 0 a range of bits.
-
GLM_FUNC_DECL int16 bitfieldInterleave(int8 x, int8 y)
Interleaves the bits of x and y.
-
GLM_FUNC_DECL genType powerOfTwoAbove(genType const &value)
Return the power of two number which value is just higher the input value.
+
58  template <typename T, precision P>
+
59  GLM_FUNC_DECL tvec3<T, P> rgb2YCoCg(
+
60  tvec3<T, P> const & rgbColor);
+
61 
+
64  template <typename T, precision P>
+
65  GLM_FUNC_DECL tvec3<T, P> YCoCg2rgb(
+
66  tvec3<T, P> const & YCoCgColor);
+
67 
+
71  template <typename T, precision P>
+
72  GLM_FUNC_DECL tvec3<T, P> rgb2YCoCgR(
+
73  tvec3<T, P> const & rgbColor);
+
74 
+
78  template <typename T, precision P>
+
79  GLM_FUNC_DECL tvec3<T, P> YCoCgR2rgb(
+
80  tvec3<T, P> const & YCoCgColor);
+
81 
+
83 }//namespace glm
+
84 
+
85 #include "color_space_YCoCg.inl"
+
GLM_FUNC_DECL tvec3< T, P > rgb2YCoCg(tvec3< T, P > const &rgbColor)
Convert a color from RGB color space to YCoCg color space.
+
GLM_FUNC_DECL tvec3< T, P > YCoCgR2rgb(tvec3< T, P > const &YCoCgColor)
Convert a color from YCoCgR color space to RGB color space.
+
GLM_FUNC_DECL tvec3< T, P > rgbColor(tvec3< T, P > const &hsvValue)
Converts a color from HSV color space to its color in RGB color space.
+
Definition: _noise.hpp:39
+
GLM_FUNC_DECL tvec3< T, P > rgb2YCoCgR(tvec3< T, P > const &rgbColor)
Convert a color from RGB color space to YCoCgR color space.
+
GLM_FUNC_DECL tvec3< T, P > YCoCg2rgb(tvec3< T, P > const &YCoCgColor)
Convert a color from YCoCg color space to RGB color space.
diff --git a/doc/api/a00148.html b/doc/api/a00013.html similarity index 71% rename from doc/api/a00148.html rename to doc/api/a00013.html index 02fd0229..20c8d7fb 100644 --- a/doc/api/a00148.html +++ b/doc/api/a00013.html @@ -3,8 +3,8 @@ - -GLM: vector_relational.hpp File Reference + +0.9.6: common.hpp File Reference @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,32 +41,33 @@
-
vector_relational.hpp File Reference
+
common.hpp File Reference
-

Go to the source code of this file.

+

Go to the source code of this file.

Detailed Description

OpenGL Mathematics (glm.g-truc.net)

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM Core

+

GLM Core

Date
2013-12-24 / 2013-12-24
Author
Christophe Riccio
-

Definition in file vector_relational.hpp.

+

Definition in file common.hpp.

diff --git a/doc/api/a00013_source.html b/doc/api/a00013_source.html index bb6f6cfa..6ba88b02 100644 --- a/doc/api/a00013_source.html +++ b/doc/api/a00013_source.html @@ -3,8 +3,8 @@ - -GLM: closest_point.hpp Source File + +0.9.6: common.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,46 +41,25 @@
-
closest_point.hpp
+
common.hpp
-
1 
-
38 #ifndef GLM_GTX_closest_point
-
39 #define GLM_GTX_closest_point
-
40 
-
41 // Dependency:
-
42 #include "../glm.hpp"
-
43 
-
44 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
45 # pragma message("GLM: GLM_GTX_closest_point extension included")
-
46 #endif
-
47 
-
48 namespace glm
-
49 {
-
52 
-
55  template <typename T, precision P>
-
56  detail::tvec3<T, P> closestPointOnLine(
-
57  detail::tvec3<T, P> const & point,
-
58  detail::tvec3<T, P> const & a,
-
59  detail::tvec3<T, P> const & b);
-
60 
-
62 }// namespace glm
-
63 
-
64 #include "closest_point.inl"
-
65 
-
66 #endif//GLM_GTX_closest_point
-
detail::tvec3< T, P > closestPointOnLine(detail::tvec3< T, P > const &point, detail::tvec3< T, P > const &a, detail::tvec3< T, P > const &b)
Find the point on a straight line which is the closet of a point.
+Go to the documentation of this file.
1 
+
33 #pragma once
+
34 
+
35 #include "detail/func_common.hpp"
+
OpenGL Mathematics (glm.g-truc.net)
diff --git a/doc/api/a00014.html b/doc/api/a00014.html index cf94ef3f..d4019c09 100644 --- a/doc/api/a00014.html +++ b/doc/api/a00014.html @@ -3,8 +3,8 @@ - -GLM: color_space.hpp File Reference + +0.9.6: common.hpp File Reference @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,63 +41,45 @@
-Namespaces | Functions
-
color_space.hpp File Reference
+
gtx/common.hpp File Reference

Go to the source code of this file.

- - - -

-Namespaces

 glm
 
- - - - - - - - - - - - - - - - - - + + +

Functions

template<typename T , precision P>
detail::tvec3< T, P > hsvColor (detail::tvec3< T, P > const &rgbValue)
 
template<typename T , precision P>
luminosity (detail::tvec3< T, P > const &color)
 
template<typename T , precision P>
detail::tvec3< T, P > rgbColor (detail::tvec3< T, P > const &hsvValue)
 
template<typename T , precision P>
detail::tmat4x4< T, P > saturation (T const s)
 
template<typename T , precision P>
detail::tvec3< T, P > saturation (T const s, detail::tvec3< T, P > const &color)
 
template<typename T , precision P>
detail::tvec4< T, P > saturation (T const s, detail::tvec4< T, P > const &color)
 
template<typename genType >
GLM_FUNC_DECL genType::bool_type isdenormal (genType const &x)
 

Detailed Description

OpenGL Mathematics (glm.g-truc.net)

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_color_space

-
Date
2005-12-21 / 2011-06-07
+

GLM_GTX_common

+
Date
2014-09-08 / 2014-09-08
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
+
See also
GLM Core (dependence)
+
+gtc_half_float (dependence)
-

Definition in file color_space.hpp.

+

Definition in file gtx/common.hpp.

diff --git a/doc/api/a00014_source.html b/doc/api/a00014_source.html index 64bb198f..335b842a 100644 --- a/doc/api/a00014_source.html +++ b/doc/api/a00014_source.html @@ -3,8 +3,8 @@ - -GLM: color_space.hpp Source File + +0.9.6: common.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,69 +41,44 @@
-
color_space.hpp
+
gtx/common.hpp
Go to the documentation of this file.
1 
-
38 #ifndef GLM_GTX_color_space
-
39 #define GLM_GTX_color_space
-
40 
-
41 // Dependency:
-
42 #include "../glm.hpp"
-
43 
-
44 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
45 # pragma message("GLM: GLM_GTX_color_space extension included")
-
46 #endif
-
47 
-
48 namespace glm
-
49 {
-
52 
-
55  template <typename T, precision P>
-
56  detail::tvec3<T, P> rgbColor(
-
57  detail::tvec3<T, P> const & hsvValue);
-
58 
-
61  template <typename T, precision P>
-
62  detail::tvec3<T, P> hsvColor(
-
63  detail::tvec3<T, P> const & rgbValue);
-
64 
-
67  template <typename T, precision P>
-
68  detail::tmat4x4<T, P> saturation(
-
69  T const s);
+
43 #pragma once
+
44 
+
45 // Dependencies:
+
46 #include "../vec2.hpp"
+
47 #include "../vec3.hpp"
+
48 #include "../vec4.hpp"
+
49 #include "../gtc/vec1.hpp"
+
50 
+
51 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+
52 # pragma message("GLM: GLM_GTX_common extension included")
+
53 #endif
+
54 
+
55 namespace glm
+
56 {
+
59 
+
68  template <typename genType>
+
69  GLM_FUNC_DECL typename genType::bool_type isdenormal(genType const & x);
70 
-
73  template <typename T, precision P>
-
74  detail::tvec3<T, P> saturation(
-
75  T const s,
-
76  detail::tvec3<T, P> const & color);
-
77 
-
80  template <typename T, precision P>
-
81  detail::tvec4<T, P> saturation(
-
82  T const s,
-
83  detail::tvec4<T, P> const & color);
-
84 
-
87  template <typename T, precision P>
-
88  T luminosity(
-
89  detail::tvec3<T, P> const & color);
-
90 
-
92 }//namespace glm
-
93 
-
94 #include "color_space.inl"
-
95 
-
96 #endif//GLM_GTX_color_space
-
detail::tvec3< T, P > hsvColor(detail::tvec3< T, P > const &rgbValue)
Converts a color from RGB color space to its color in HSV color space.
-
detail::tmat4x4< T, P > saturation(T const s)
Build a saturation matrix.
-
detail::tvec3< T, P > rgbColor(detail::tvec3< T, P > const &hsvValue)
Converts a color from HSV color space to its color in RGB color space.
-
T luminosity(detail::tvec3< T, P > const &color)
Compute color luminosity associating ratios (0.33, 0.59, 0.11) to RGB canals.
+
72 }//namespace glm
+
73 
+
74 #include "common.inl"
+
Definition: _noise.hpp:39
+
GLM_FUNC_DECL genType::bool_type isdenormal(genType const &x)
Returns true if x is a denormalized number Numbers whose absolute value is too small to be represente...
diff --git a/doc/api/a00015.html b/doc/api/a00015.html index dc643867..505abd00 100644 --- a/doc/api/a00015.html +++ b/doc/api/a00015.html @@ -3,8 +3,8 @@ - -GLM: color_space_YCoCg.hpp File Reference + +0.9.6: compatibility.hpp File Reference @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,57 +41,293 @@
-Namespaces | +Typedefs | Functions
-
color_space_YCoCg.hpp File Reference
+
compatibility.hpp File Reference

Go to the source code of this file.

- - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

-Namespaces

 glm
 

+Typedefs

+typedef bool bool1
 
+typedef bool bool1x1
 
+typedef tvec2< bool, highp > bool2
 
+typedef tmat2x2< bool, highp > bool2x2
 
+typedef tmat2x3< bool, highp > bool2x3
 
+typedef tmat2x4< bool, highp > bool2x4
 
+typedef tvec3< bool, highp > bool3
 
+typedef tmat3x2< bool, highp > bool3x2
 
+typedef tmat3x3< bool, highp > bool3x3
 
+typedef tmat3x4< bool, highp > bool3x4
 
+typedef tvec4< bool, highp > bool4
 
+typedef tmat4x2< bool, highp > bool4x2
 
+typedef tmat4x3< bool, highp > bool4x3
 
+typedef tmat4x4< bool, highp > bool4x4
 
+typedef double double1
 
+typedef double double1x1
 
+typedef tvec2< double, highp > double2
 
+typedef tmat2x2< double, highp > double2x2
 
+typedef tmat2x3< double, highp > double2x3
 
+typedef tmat2x4< double, highp > double2x4
 
+typedef tvec3< double, highp > double3
 
+typedef tmat3x2< double, highp > double3x2
 
+typedef tmat3x3< double, highp > double3x3
 
+typedef tmat3x4< double, highp > double3x4
 
+typedef tvec4< double, highp > double4
 
+typedef tmat4x2< double, highp > double4x2
 
+typedef tmat4x3< double, highp > double4x3
 
+typedef tmat4x4< double, highp > double4x4
 
+typedef float float1
 
+typedef float float1x1
 
+typedef tvec2< float, highp > float2
 
+typedef tmat2x2< float, highp > float2x2
 
+typedef tmat2x3< float, highp > float2x3
 
+typedef tmat2x4< float, highp > float2x4
 
+typedef tvec3< float, highp > float3
 
+typedef tmat3x2< float, highp > float3x2
 
+typedef tmat3x3< float, highp > float3x3
 
+typedef tmat3x4< float, highp > float3x4
 
+typedef tvec4< float, highp > float4
 
+typedef tmat4x2< float, highp > float4x2
 
+typedef tmat4x3< float, highp > float4x3
 
+typedef tmat4x4< float, highp > float4x4
 
+typedef int int1
 
+typedef int int1x1
 
+typedef tvec2< int, highp > int2
 
+typedef tmat2x2< int, highp > int2x2
 
+typedef tmat2x3< int, highp > int2x3
 
+typedef tmat2x4< int, highp > int2x4
 
+typedef tvec3< int, highp > int3
 
+typedef tmat3x2< int, highp > int3x2
 
+typedef tmat3x3< int, highp > int3x3
 
+typedef tmat3x4< int, highp > int3x4
 
+typedef tvec4< int, highp > int4
 
+typedef tmat4x2< int, highp > int4x2
 
+typedef tmat4x3< int, highp > int4x3
 
+typedef tmat4x4< int, highp > int4x4
 
- - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Functions

template<typename T , precision P>
detail::tvec3< T, P > rgb2YCoCg (detail::tvec3< T, P > const &rgbColor)
 
template<typename T , precision P>
detail::tvec3< T, P > rgb2YCoCgR (detail::tvec3< T, P > const &rgbColor)
 
template<typename T , precision P>
detail::tvec3< T, P > YCoCg2rgb (detail::tvec3< T, P > const &YCoCgColor)
 
template<typename T , precision P>
detail::tvec3< T, P > YCoCgR2rgb (detail::tvec3< T, P > const &YCoCgColor)
 
+template<typename T , precision P>
GLM_FUNC_QUALIFIER T atan2 (T x, T y)
 
+template<typename T , precision P>
GLM_FUNC_QUALIFIER tvec2< T, P > atan2 (const tvec2< T, P > &x, const tvec2< T, P > &y)
 
+template<typename T , precision P>
GLM_FUNC_QUALIFIER tvec3< T, P > atan2 (const tvec3< T, P > &x, const tvec3< T, P > &y)
 
+template<typename T , precision P>
GLM_FUNC_QUALIFIER tvec4< T, P > atan2 (const tvec4< T, P > &x, const tvec4< T, P > &y)
 
+template<typename genType >
GLM_FUNC_DECL bool isfinite (genType const &x)
 
+template<typename T , precision P>
GLM_FUNC_DECL tvec2< bool, P > isfinite (const tvec2< T, P > &x)
 
+template<typename T , precision P>
GLM_FUNC_DECL tvec3< bool, P > isfinite (const tvec3< T, P > &x)
 
+template<typename T , precision P>
GLM_FUNC_DECL tvec4< bool, P > isfinite (const tvec4< T, P > &x)
 
+template<typename T >
GLM_FUNC_QUALIFIER T lerp (T x, T y, T a)
 
+template<typename T , precision P>
GLM_FUNC_QUALIFIER tvec2< T, P > lerp (const tvec2< T, P > &x, const tvec2< T, P > &y, T a)
 
+template<typename T , precision P>
GLM_FUNC_QUALIFIER tvec3< T, P > lerp (const tvec3< T, P > &x, const tvec3< T, P > &y, T a)
 
+template<typename T , precision P>
GLM_FUNC_QUALIFIER tvec4< T, P > lerp (const tvec4< T, P > &x, const tvec4< T, P > &y, T a)
 
+template<typename T , precision P>
GLM_FUNC_QUALIFIER tvec2< T, P > lerp (const tvec2< T, P > &x, const tvec2< T, P > &y, const tvec2< T, P > &a)
 
+template<typename T , precision P>
GLM_FUNC_QUALIFIER tvec3< T, P > lerp (const tvec3< T, P > &x, const tvec3< T, P > &y, const tvec3< T, P > &a)
 
+template<typename T , precision P>
GLM_FUNC_QUALIFIER tvec4< T, P > lerp (const tvec4< T, P > &x, const tvec4< T, P > &y, const tvec4< T, P > &a)
 
+template<typename T , precision P>
GLM_FUNC_QUALIFIER T saturate (T x)
 
+template<typename T , precision P>
GLM_FUNC_QUALIFIER tvec2< T, P > saturate (const tvec2< T, P > &x)
 
+template<typename T , precision P>
GLM_FUNC_QUALIFIER tvec3< T, P > saturate (const tvec3< T, P > &x)
 
+template<typename T , precision P>
GLM_FUNC_QUALIFIER tvec4< T, P > saturate (const tvec4< T, P > &x)
 
template<typename T , precision P>
GLM_FUNC_QUALIFIER T slerp (tquat< T, P > const &x, tquat< T, P > const &y, T const &a)
 

Detailed Description

OpenGL Mathematics (glm.g-truc.net)

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_color_space_YCoCg

-
Date
2008-10-28 / 2011-06-07
+

GLM_GTX_compatibility

+
Date
2007-01-24 / 2011-06-07
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
+
See also
GLM Core (dependence)
+
+gtc_half_float (dependence)
-

Definition in file color_space_YCoCg.hpp.

+

Definition in file compatibility.hpp.

diff --git a/doc/api/a00015_source.html b/doc/api/a00015_source.html index 97caed4f..e4e04486 100644 --- a/doc/api/a00015_source.html +++ b/doc/api/a00015_source.html @@ -3,8 +3,8 @@ - -GLM: color_space_YCoCg.hpp Source File + +0.9.6: compatibility.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,60 +41,201 @@
-
color_space_YCoCg.hpp
+
compatibility.hpp
Go to the documentation of this file.
1 
-
38 #ifndef glm_gtx_color_space_YCoCg
-
39 #define glm_gtx_color_space_YCoCg
-
40 
-
41 // Dependency:
-
42 #include "../glm.hpp"
-
43 
-
44 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
45 # pragma message("GLM: GLM_GTX_color_space_YCoCg extension included")
-
46 #endif
-
47 
-
48 namespace glm
-
49 {
+
43 #pragma once
+
44 
+
45 // Dependency:
+
46 #include "../glm.hpp"
+
47 #include "../gtc/quaternion.hpp"
+
48 
+
49 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+
50 # pragma message("GLM: GLM_GTX_compatibility extension included")
+
51 #endif
52 
-
55  template <typename T, precision P>
-
56  detail::tvec3<T, P> rgb2YCoCg(
-
57  detail::tvec3<T, P> const & rgbColor);
-
58 
-
61  template <typename T, precision P>
-
62  detail::tvec3<T, P> YCoCg2rgb(
-
63  detail::tvec3<T, P> const & YCoCgColor);
-
64 
-
68  template <typename T, precision P>
-
69  detail::tvec3<T, P> rgb2YCoCgR(
-
70  detail::tvec3<T, P> const & rgbColor);
-
71 
-
75  template <typename T, precision P>
-
76  detail::tvec3<T, P> YCoCgR2rgb(
-
77  detail::tvec3<T, P> const & YCoCgColor);
-
78 
-
80 }//namespace glm
-
81 
-
82 #include "color_space_YCoCg.inl"
-
83 
-
84 #endif//glm_gtx_color_space_YCoCg
-
detail::tvec3< T, P > YCoCgR2rgb(detail::tvec3< T, P > const &YCoCgColor)
Convert a color from YCoCgR color space to RGB color space.
-
detail::tvec3< T, P > rgb2YCoCgR(detail::tvec3< T, P > const &rgbColor)
Convert a color from RGB color space to YCoCgR color space.
-
detail::tvec3< T, P > YCoCg2rgb(detail::tvec3< T, P > const &YCoCgColor)
Convert a color from YCoCg color space to RGB color space.
-
detail::tvec3< T, P > rgbColor(detail::tvec3< T, P > const &hsvValue)
Converts a color from HSV color space to its color in RGB color space.
-
detail::tvec3< T, P > rgb2YCoCg(detail::tvec3< T, P > const &rgbColor)
Convert a color from RGB color space to YCoCg color space.
+
53 #if(GLM_COMPILER & GLM_COMPILER_VC)
+
54 # include <cfloat>
+
55 #elif(GLM_COMPILER & GLM_COMPILER_GCC)
+
56 # include <cmath>
+
57 # if(GLM_PLATFORM & GLM_PLATFORM_ANDROID)
+
58 # undef isfinite
+
59 # endif
+
60 #endif//GLM_COMPILER
+
61 
+
62 namespace glm
+
63 {
+
66 
+
67  template <typename T> GLM_FUNC_QUALIFIER T lerp(T x, T y, T a){return mix(x, y, a);}
+
68  template <typename T, precision P> GLM_FUNC_QUALIFIER tvec2<T, P> lerp(const tvec2<T, P>& x, const tvec2<T, P>& y, T a){return mix(x, y, a);}
+
69 
+
70  template <typename T, precision P> GLM_FUNC_QUALIFIER tvec3<T, P> lerp(const tvec3<T, P>& x, const tvec3<T, P>& y, T a){return mix(x, y, a);}
+
71  template <typename T, precision P> GLM_FUNC_QUALIFIER tvec4<T, P> lerp(const tvec4<T, P>& x, const tvec4<T, P>& y, T a){return mix(x, y, a);}
+
72  template <typename T, precision P> GLM_FUNC_QUALIFIER tvec2<T, P> lerp(const tvec2<T, P>& x, const tvec2<T, P>& y, const tvec2<T, P>& a){return mix(x, y, a);}
+
73  template <typename T, precision P> GLM_FUNC_QUALIFIER tvec3<T, P> lerp(const tvec3<T, P>& x, const tvec3<T, P>& y, const tvec3<T, P>& a){return mix(x, y, a);}
+
74  template <typename T, precision P> GLM_FUNC_QUALIFIER tvec4<T, P> lerp(const tvec4<T, P>& x, const tvec4<T, P>& y, const tvec4<T, P>& a){return mix(x, y, a);}
+
75 
+
76  template <typename T, precision P> GLM_FUNC_QUALIFIER T slerp(tquat<T, P> const & x, tquat<T, P> const & y, T const & a){return mix(x, y, a);}
+
77 
+
78  template <typename T, precision P> GLM_FUNC_QUALIFIER T saturate(T x){return clamp(x, T(0), T(1));}
+
79  template <typename T, precision P> GLM_FUNC_QUALIFIER tvec2<T, P> saturate(const tvec2<T, P>& x){return clamp(x, T(0), T(1));}
+
80  template <typename T, precision P> GLM_FUNC_QUALIFIER tvec3<T, P> saturate(const tvec3<T, P>& x){return clamp(x, T(0), T(1));}
+
81  template <typename T, precision P> GLM_FUNC_QUALIFIER tvec4<T, P> saturate(const tvec4<T, P>& x){return clamp(x, T(0), T(1));}
+
82 
+
83  template <typename T, precision P> GLM_FUNC_QUALIFIER T atan2(T x, T y){return atan(x, y);}
+
84  template <typename T, precision P> GLM_FUNC_QUALIFIER tvec2<T, P> atan2(const tvec2<T, P>& x, const tvec2<T, P>& y){return atan(x, y);}
+
85  template <typename T, precision P> GLM_FUNC_QUALIFIER tvec3<T, P> atan2(const tvec3<T, P>& x, const tvec3<T, P>& y){return atan(x, y);}
+
86  template <typename T, precision P> GLM_FUNC_QUALIFIER tvec4<T, P> atan2(const tvec4<T, P>& x, const tvec4<T, P>& y){return atan(x, y);}
+
87 
+
88  template <typename genType> GLM_FUNC_DECL bool isfinite(genType const & x);
+
89  template <typename T, precision P> GLM_FUNC_DECL tvec2<bool, P> isfinite(const tvec2<T, P>& x);
+
90  template <typename T, precision P> GLM_FUNC_DECL tvec3<bool, P> isfinite(const tvec3<T, P>& x);
+
91  template <typename T, precision P> GLM_FUNC_DECL tvec4<bool, P> isfinite(const tvec4<T, P>& x);
+
92 
+
93  typedef bool bool1;
+
94  typedef tvec2<bool, highp> bool2;
+
95  typedef tvec3<bool, highp> bool3;
+
96  typedef tvec4<bool, highp> bool4;
+
97 
+
98  typedef bool bool1x1;
+
99  typedef tmat2x2<bool, highp> bool2x2;
+
100  typedef tmat2x3<bool, highp> bool2x3;
+
101  typedef tmat2x4<bool, highp> bool2x4;
+
102  typedef tmat3x2<bool, highp> bool3x2;
+
103  typedef tmat3x3<bool, highp> bool3x3;
+
104  typedef tmat3x4<bool, highp> bool3x4;
+
105  typedef tmat4x2<bool, highp> bool4x2;
+
106  typedef tmat4x3<bool, highp> bool4x3;
+
107  typedef tmat4x4<bool, highp> bool4x4;
+
108 
+
109  typedef int int1;
+
110  typedef tvec2<int, highp> int2;
+
111  typedef tvec3<int, highp> int3;
+
112  typedef tvec4<int, highp> int4;
+
113 
+
114  typedef int int1x1;
+
115  typedef tmat2x2<int, highp> int2x2;
+
116  typedef tmat2x3<int, highp> int2x3;
+
117  typedef tmat2x4<int, highp> int2x4;
+
118  typedef tmat3x2<int, highp> int3x2;
+
119  typedef tmat3x3<int, highp> int3x3;
+
120  typedef tmat3x4<int, highp> int3x4;
+
121  typedef tmat4x2<int, highp> int4x2;
+
122  typedef tmat4x3<int, highp> int4x3;
+
123  typedef tmat4x4<int, highp> int4x4;
+
124 
+
125  typedef float float1;
+
126  typedef tvec2<float, highp> float2;
+
127  typedef tvec3<float, highp> float3;
+
128  typedef tvec4<float, highp> float4;
+
129 
+
130  typedef float float1x1;
+
131  typedef tmat2x2<float, highp> float2x2;
+
132  typedef tmat2x3<float, highp> float2x3;
+
133  typedef tmat2x4<float, highp> float2x4;
+
134  typedef tmat3x2<float, highp> float3x2;
+
135  typedef tmat3x3<float, highp> float3x3;
+
136  typedef tmat3x4<float, highp> float3x4;
+
137  typedef tmat4x2<float, highp> float4x2;
+
138  typedef tmat4x3<float, highp> float4x3;
+
139  typedef tmat4x4<float, highp> float4x4;
+
140 
+
141  typedef double double1;
+
142  typedef tvec2<double, highp> double2;
+
143  typedef tvec3<double, highp> double3;
+
144  typedef tvec4<double, highp> double4;
+
145 
+
146  typedef double double1x1;
+
147  typedef tmat2x2<double, highp> double2x2;
+
148  typedef tmat2x3<double, highp> double2x3;
+
149  typedef tmat2x4<double, highp> double2x4;
+
150  typedef tmat3x2<double, highp> double3x2;
+
151  typedef tmat3x3<double, highp> double3x3;
+
152  typedef tmat3x4<double, highp> double3x4;
+
153  typedef tmat4x2<double, highp> double4x2;
+
154  typedef tmat4x3<double, highp> double4x3;
+
155  typedef tmat4x4<double, highp> double4x4;
+
156 
+
158 }//namespace glm
+
159 
+
160 #include "compatibility.inl"
+
tvec3< bool, highp > bool3
boolean type with 3 components. (From GLM_GTX_compatibility extension)
+
tmat4x2< double, highp > double4x2
double-precision floating-point matrix with 4 x 2 components. (From GLM_GTX_compatibility extension) ...
+
tmat3x2< double, highp > double3x2
double-precision floating-point matrix with 3 x 2 components. (From GLM_GTX_compatibility extension) ...
+
tmat4x4< bool, highp > bool4x4
boolean matrix with 4 x 4 components. (From GLM_GTX_compatibility extension)
+
tmat3x2< int, highp > int3x2
integer matrix with 3 x 2 components. (From GLM_GTX_compatibility extension)
+
tmat4x2< float, highp > float4x2
single-precision floating-point matrix with 4 x 2 components. (From GLM_GTX_compatibility extension) ...
+
tmat3x3< bool, highp > bool3x3
boolean matrix with 3 x 3 components. (From GLM_GTX_compatibility extension)
+
tmat4x4< double, highp > double4x4
double-precision floating-point matrix with 4 x 4 components. (From GLM_GTX_compatibility extension) ...
+
tmat2x4< int, highp > int2x4
integer matrix with 2 x 4 components. (From GLM_GTX_compatibility extension)
+
tvec2< double, highp > double2
double-precision floating-point vector with 2 components. (From GLM_GTX_compatibility extension) ...
+
tvec4< bool, highp > bool4
boolean type with 4 components. (From GLM_GTX_compatibility extension)
+
tmat2x2< double, highp > double2x2
double-precision floating-point matrix with 2 x 2 components. (From GLM_GTX_compatibility extension) ...
+
GLM_FUNC_DECL genType clamp(genType x, genType minVal, genType maxVal)
Returns min(max(x, minVal), maxVal) for each component in x using the floating-point values minVal an...
+
GLM_FUNC_QUALIFIER T slerp(tquat< T, P > const &x, tquat< T, P > const &y, T const &a)
Returns the slurp interpolation between two quaternions.
+
GLM_FUNC_QUALIFIER tvec4< T, P > atan2(const tvec4< T, P > &x, const tvec4< T, P > &y)
Arc tangent. Returns an angle whose tangent is y/x. The signs of x and y are used to determine what q...
+
tmat2x3< bool, highp > bool2x3
boolean matrix with 2 x 3 components. (From GLM_GTX_compatibility extension)
+
tmat3x4< float, highp > float3x4
single-precision floating-point matrix with 3 x 4 components. (From GLM_GTX_compatibility extension) ...
+
tmat4x2< bool, highp > bool4x2
boolean matrix with 4 x 2 components. (From GLM_GTX_compatibility extension)
+
int int1
integer vector with 1 component. (From GLM_GTX_compatibility extension)
+
tvec3< int, highp > int3
integer vector with 3 components. (From GLM_GTX_compatibility extension)
+
GLM_FUNC_DECL tvec4< bool, P > isfinite(const tvec4< T, P > &x)
Test whether or not a scalar or each vector component is a finite value. (From GLM_GTX_compatibility)...
+
tvec2< float, highp > float2
single-precision floating-point vector with 2 components. (From GLM_GTX_compatibility extension) ...
+
tmat3x3< double, highp > double3x3
double-precision floating-point matrix with 3 x 3 components. (From GLM_GTX_compatibility extension) ...
+
tmat2x3< int, highp > int2x3
integer matrix with 2 x 3 components. (From GLM_GTX_compatibility extension)
+
tmat2x4< bool, highp > bool2x4
boolean matrix with 2 x 4 components. (From GLM_GTX_compatibility extension)
+
tmat3x4< bool, highp > bool3x4
boolean matrix with 3 x 4 components. (From GLM_GTX_compatibility extension)
+
tmat4x3< bool, highp > bool4x3
boolean matrix with 4 x 3 components. (From GLM_GTX_compatibility extension)
+
tvec3< float, highp > float3
single-precision floating-point vector with 3 components. (From GLM_GTX_compatibility extension) ...
+
tvec2< bool, highp > bool2
boolean type with 2 components. (From GLM_GTX_compatibility extension)
+
tvec4< float, highp > float4
single-precision floating-point vector with 4 components. (From GLM_GTX_compatibility extension) ...
+
bool bool1
boolean type with 1 component. (From GLM_GTX_compatibility extension)
+
tmat2x2< bool, highp > bool2x2
boolean matrix with 2 x 2 components. (From GLM_GTX_compatibility extension)
+
bool bool1x1
boolean matrix with 1 x 1 component. (From GLM_GTX_compatibility extension)
+
tmat4x3< float, highp > float4x3
single-precision floating-point matrix with 4 x 3 components. (From GLM_GTX_compatibility extension) ...
+
tmat4x2< int, highp > int4x2
integer matrix with 4 x 2 components. (From GLM_GTX_compatibility extension)
+
tvec4< int, highp > int4
integer vector with 4 components. (From GLM_GTX_compatibility extension)
+
tmat3x3< int, highp > int3x3
integer matrix with 3 x 3 components. (From GLM_GTX_compatibility extension)
+
GLM_FUNC_DECL vecType< T, P > mix(vecType< T, P > const &x, vecType< T, P > const &y, vecType< U, P > const &a)
If genTypeU is a floating scalar or vector: Returns x * (1.0 - a) + y * a, i.e., the linear blend of ...
+
float float1
single-precision floating-point vector with 1 component. (From GLM_GTX_compatibility extension) ...
+
tmat3x4< double, highp > double3x4
double-precision floating-point matrix with 3 x 4 components. (From GLM_GTX_compatibility extension) ...
+
tmat3x2< float, highp > float3x2
single-precision floating-point matrix with 3 x 2 components. (From GLM_GTX_compatibility extension) ...
+
GLM_FUNC_QUALIFIER tvec4< T, P > saturate(const tvec4< T, P > &x)
Returns clamp(x, 0, 1) for each component in x. (From GLM_GTX_compatibility)
+
float float1x1
single-precision floating-point matrix with 1 component. (From GLM_GTX_compatibility extension) ...
+
tmat3x2< bool, highp > bool3x2
boolean matrix with 3 x 2 components. (From GLM_GTX_compatibility extension)
+
Definition: _noise.hpp:39
+
tmat4x4< float, highp > float4x4
single-precision floating-point matrix with 4 x 4 components. (From GLM_GTX_compatibility extension) ...
+
tmat2x2< int, highp > int2x2
integer matrix with 2 x 2 components. (From GLM_GTX_compatibility extension)
+
tvec4< double, highp > double4
double-precision floating-point vector with 4 components. (From GLM_GTX_compatibility extension) ...
+
tmat3x3< float, highp > float3x3
single-precision floating-point matrix with 3 x 3 components. (From GLM_GTX_compatibility extension) ...
+
tvec3< double, highp > double3
double-precision floating-point vector with 3 components. (From GLM_GTX_compatibility extension) ...
+
GLM_FUNC_QUALIFIER tvec4< T, P > lerp(const tvec4< T, P > &x, const tvec4< T, P > &y, const tvec4< T, P > &a)
Returns the component-wise result of x * (1.0 - a) + y * a, i.e., the linear blend of x and y using v...
+
int int1x1
integer matrix with 1 component. (From GLM_GTX_compatibility extension)
+
tmat2x4< float, highp > float2x4
single-precision floating-point matrix with 2 x 4 components. (From GLM_GTX_compatibility extension) ...
+
GLM_FUNC_DECL vecType< T, P > atan(vecType< T, P > const &y, vecType< T, P > const &x)
Arc tangent.
+
tmat2x4< double, highp > double2x4
double-precision floating-point matrix with 2 x 4 components. (From GLM_GTX_compatibility extension) ...
+
tmat4x3< int, highp > int4x3
integer matrix with 4 x 3 components. (From GLM_GTX_compatibility extension)
+
tmat2x3< double, highp > double2x3
double-precision floating-point matrix with 2 x 3 components. (From GLM_GTX_compatibility extension) ...
+
tmat2x3< float, highp > float2x3
single-precision floating-point matrix with 2 x 3 components. (From GLM_GTX_compatibility extension) ...
+
tmat3x4< int, highp > int3x4
integer matrix with 3 x 4 components. (From GLM_GTX_compatibility extension)
+
double double1
double-precision floating-point vector with 1 component. (From GLM_GTX_compatibility extension) ...
+
tmat4x3< double, highp > double4x3
double-precision floating-point matrix with 4 x 3 components. (From GLM_GTX_compatibility extension) ...
+
double double1x1
double-precision floating-point matrix with 1 component. (From GLM_GTX_compatibility extension) ...
+
tvec2< int, highp > int2
integer vector with 2 components. (From GLM_GTX_compatibility extension)
+
tmat4x4< int, highp > int4x4
integer matrix with 4 x 4 components. (From GLM_GTX_compatibility extension)
+
tmat2x2< float, highp > float2x2
single-precision floating-point matrix with 2 x 2 components. (From GLM_GTX_compatibility extension) ...
diff --git a/doc/api/a00016.html b/doc/api/a00016.html index dfde7901..72f126cf 100644 --- a/doc/api/a00016.html +++ b/doc/api/a00016.html @@ -3,8 +3,8 @@ - -GLM: common.hpp File Reference + +0.9.6: component_wise.hpp File Reference @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,32 +41,52 @@
+
+Functions
-
common.hpp File Reference
+
component_wise.hpp File Reference

Go to the source code of this file.

+ + + + + + + + + + + + + + +

+Functions

template<typename genType >
GLM_FUNC_DECL genType::value_type compAdd (genType const &v)
 
template<typename genType >
GLM_FUNC_DECL genType::value_type compMax (genType const &v)
 
template<typename genType >
GLM_FUNC_DECL genType::value_type compMin (genType const &v)
 
template<typename genType >
GLM_FUNC_DECL genType::value_type compMul (genType const &v)
 

Detailed Description

OpenGL Mathematics (glm.g-truc.net)

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM Core

-
Date
2013-12-24 / 2013-12-24
-
Author
Christophe Riccio
+

GLM_GTX_component_wise

+
Date
2007-05-21 / 2011-06-07
+
Author
Christophe Riccio
+
See also
GLM Core (dependence)
-

Definition in file common.hpp.

+

Definition in file component_wise.hpp.

diff --git a/doc/api/a00016_source.html b/doc/api/a00016_source.html index 2a985c0d..1f96ce52 100644 --- a/doc/api/a00016_source.html +++ b/doc/api/a00016_source.html @@ -3,8 +3,8 @@ - -GLM: common.hpp Source File + +0.9.6: component_wise.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,27 +41,58 @@
-
common.hpp
+
component_wise.hpp
Go to the documentation of this file.
1 
-
29 #ifndef GLM_COMMON_INCLUDED
-
30 #define GLM_COMMON_INCLUDED
-
31 
-
32 #include "detail/func_common.hpp"
-
33 
-
34 #endif//GLM_COMMON_INCLUDED
+
42 #pragma once
+
43 
+
44 // Dependencies
+
45 #include "../detail/setup.hpp"
+
46 #include "../detail/precision.hpp"
+
47 
+
48 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+
49 # pragma message("GLM: GLM_GTX_component_wise extension included")
+
50 #endif
+
51 
+
52 namespace glm
+
53 {
+
56 
+
59  template <typename genType>
+
60  GLM_FUNC_DECL typename genType::value_type compAdd(
+
61  genType const & v);
+
62 
+
65  template <typename genType>
+
66  GLM_FUNC_DECL typename genType::value_type compMul(
+
67  genType const & v);
+
68 
+
71  template <typename genType>
+
72  GLM_FUNC_DECL typename genType::value_type compMin(
+
73  genType const & v);
+
74 
+
77  template <typename genType>
+
78  GLM_FUNC_DECL typename genType::value_type compMax(
+
79  genType const & v);
+
80 
+
82 }//namespace glm
+
83 
+
84 #include "component_wise.inl"
+
GLM_FUNC_DECL genType::value_type compMax(genType const &v)
Find the maximum value between single vector components.
+
GLM_FUNC_DECL genType::value_type compAdd(genType const &v)
Add all vector components together.
+
GLM_FUNC_DECL genType::value_type compMul(genType const &v)
Multiply all vector components together.
+
Definition: _noise.hpp:39
+
GLM_FUNC_DECL genType::value_type compMin(genType const &v)
Find the minimum value between single vector components.
diff --git a/doc/api/a00017.html b/doc/api/a00017.html index 961bd50d..ddcc39a1 100644 --- a/doc/api/a00017.html +++ b/doc/api/a00017.html @@ -3,8 +3,8 @@ - -GLM: compatibility.hpp File Reference + +0.9.6: constants.hpp File Reference @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,355 +41,129 @@
-Namespaces | -Typedefs | Functions
-
compatibility.hpp File Reference
+
constants.hpp File Reference

Go to the source code of this file.

- - - -

-Namespaces

 glm
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Typedefs

-typedef bool bool1
 
-typedef bool bool1x1
 
-typedef detail::tvec2< bool,
-highp > 
bool2
 
-typedef detail::tmat2x2< bool,
-highp > 
bool2x2
 
-typedef detail::tmat2x3< bool,
-highp > 
bool2x3
 
-typedef detail::tmat2x4< bool,
-highp > 
bool2x4
 
-typedef detail::tvec3< bool,
-highp > 
bool3
 
-typedef detail::tmat3x2< bool,
-highp > 
bool3x2
 
-typedef detail::tmat3x3< bool,
-highp > 
bool3x3
 
-typedef detail::tmat3x4< bool,
-highp > 
bool3x4
 
-typedef detail::tvec4< bool,
-highp > 
bool4
 
-typedef detail::tmat4x2< bool,
-highp > 
bool4x2
 
-typedef detail::tmat4x3< bool,
-highp > 
bool4x3
 
-typedef detail::tmat4x4< bool,
-highp > 
bool4x4
 
-typedef double double1
 
-typedef double double1x1
 
-typedef detail::tvec2< double,
-highp > 
double2
 
-typedef detail::tmat2x2
-< double, highp > 
double2x2
 
-typedef detail::tmat2x3
-< double, highp > 
double2x3
 
-typedef detail::tmat2x4
-< double, highp > 
double2x4
 
-typedef detail::tvec3< double,
-highp > 
double3
 
-typedef detail::tmat3x2
-< double, highp > 
double3x2
 
-typedef detail::tmat3x3
-< double, highp > 
double3x3
 
-typedef detail::tmat3x4
-< double, highp > 
double3x4
 
-typedef detail::tvec4< double,
-highp > 
double4
 
-typedef detail::tmat4x2
-< double, highp > 
double4x2
 
-typedef detail::tmat4x3
-< double, highp > 
double4x3
 
-typedef detail::tmat4x4
-< double, highp > 
double4x4
 
-typedef float float1
 
-typedef float float1x1
 
-typedef detail::tvec2< float,
-highp > 
float2
 
-typedef detail::tmat2x2< float,
-highp > 
float2x2
 
-typedef detail::tmat2x3< float,
-highp > 
float2x3
 
-typedef detail::tmat2x4< float,
-highp > 
float2x4
 
-typedef detail::tvec3< float,
-highp > 
float3
 
-typedef detail::tmat3x2< float,
-highp > 
float3x2
 
-typedef detail::tmat3x3< float,
-highp > 
float3x3
 
-typedef detail::tmat3x4< float,
-highp > 
float3x4
 
-typedef detail::tvec4< float,
-highp > 
float4
 
-typedef detail::tmat4x2< float,
-highp > 
float4x2
 
-typedef detail::tmat4x3< float,
-highp > 
float4x3
 
-typedef detail::tmat4x4< float,
-highp > 
float4x4
 
-typedef int int1
 
-typedef int int1x1
 
-typedef detail::tvec2< int, highp > int2
 
-typedef detail::tmat2x2< int,
-highp > 
int2x2
 
-typedef detail::tmat2x3< int,
-highp > 
int2x3
 
-typedef detail::tmat2x4< int,
-highp > 
int2x4
 
-typedef detail::tvec3< int, highp > int3
 
-typedef detail::tmat3x2< int,
-highp > 
int3x2
 
-typedef detail::tmat3x3< int,
-highp > 
int3x3
 
-typedef detail::tmat3x4< int,
-highp > 
int3x4
 
-typedef detail::tvec4< int, highp > int4
 
-typedef detail::tmat4x2< int,
-highp > 
int4x2
 
-typedef detail::tmat4x3< int,
-highp > 
int4x3
 
-typedef detail::tmat4x4< int,
-highp > 
int4x4
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Functions

-template<typename T , precision P>
GLM_FUNC_QUALIFIER T atan2 (T x, T y)
 
-template<typename T , precision P>
GLM_FUNC_QUALIFIER
-detail::tvec2< T, P > 
atan2 (const detail::tvec2< T, P > &x, const detail::tvec2< T, P > &y)
 
-template<typename T , precision P>
GLM_FUNC_QUALIFIER
-detail::tvec3< T, P > 
atan2 (const detail::tvec3< T, P > &x, const detail::tvec3< T, P > &y)
 
-template<typename T , precision P>
GLM_FUNC_QUALIFIER
-detail::tvec4< T, P > 
atan2 (const detail::tvec4< T, P > &x, const detail::tvec4< T, P > &y)
 
-template<typename genType >
bool isfinite (genType const &x)
 
-template<typename T , precision P>
detail::tvec2< bool, P > isfinite (const detail::tvec2< T, P > &x)
 
-template<typename T , precision P>
detail::tvec3< bool, P > isfinite (const detail::tvec3< T, P > &x)
 
-template<typename T , precision P>
detail::tvec4< bool, P > isfinite (const detail::tvec4< T, P > &x)
 
-template<typename T >
GLM_FUNC_QUALIFIER T lerp (T x, T y, T a)
 
-template<typename T , precision P>
GLM_FUNC_QUALIFIER
-detail::tvec2< T, P > 
lerp (const detail::tvec2< T, P > &x, const detail::tvec2< T, P > &y, T a)
 
-template<typename T , precision P>
GLM_FUNC_QUALIFIER
-detail::tvec3< T, P > 
lerp (const detail::tvec3< T, P > &x, const detail::tvec3< T, P > &y, T a)
 
-template<typename T , precision P>
GLM_FUNC_QUALIFIER
-detail::tvec4< T, P > 
lerp (const detail::tvec4< T, P > &x, const detail::tvec4< T, P > &y, T a)
 
-template<typename T , precision P>
GLM_FUNC_QUALIFIER
-detail::tvec2< T, P > 
lerp (const detail::tvec2< T, P > &x, const detail::tvec2< T, P > &y, const detail::tvec2< T, P > &a)
 
-template<typename T , precision P>
GLM_FUNC_QUALIFIER
-detail::tvec3< T, P > 
lerp (const detail::tvec3< T, P > &x, const detail::tvec3< T, P > &y, const detail::tvec3< T, P > &a)
 
-template<typename T , precision P>
GLM_FUNC_QUALIFIER
-detail::tvec4< T, P > 
lerp (const detail::tvec4< T, P > &x, const detail::tvec4< T, P > &y, const detail::tvec4< T, P > &a)
 
-template<typename T , precision P>
GLM_FUNC_QUALIFIER T saturate (T x)
 
-template<typename T , precision P>
GLM_FUNC_QUALIFIER
-detail::tvec2< T, P > 
saturate (const detail::tvec2< T, P > &x)
 
-template<typename T , precision P>
GLM_FUNC_QUALIFIER
-detail::tvec3< T, P > 
saturate (const detail::tvec3< T, P > &x)
 
-template<typename T , precision P>
GLM_FUNC_QUALIFIER
-detail::tvec4< T, P > 
saturate (const detail::tvec4< T, P > &x)
 
template<typename T , precision P>
GLM_FUNC_QUALIFIER T slerp (detail::tquat< T, P > const &x, detail::tquat< T, P > const &y, T const &a)
 
template<typename genType >
GLM_FUNC_DECL genType e ()
 
template<typename genType >
GLM_FUNC_DECL genType epsilon ()
 
template<typename genType >
GLM_FUNC_DECL genType euler ()
 
template<typename genType >
GLM_FUNC_DECL genType four_over_pi ()
 
template<typename genType >
GLM_FUNC_DECL genType golden_ratio ()
 
template<typename genType >
GLM_FUNC_DECL genType half_pi ()
 
template<typename genType >
GLM_FUNC_DECL genType ln_ln_two ()
 
template<typename genType >
GLM_FUNC_DECL genType ln_ten ()
 
template<typename genType >
GLM_FUNC_DECL genType ln_two ()
 
template<typename genType >
GLM_FUNC_DECL genType one ()
 
template<typename genType >
GLM_FUNC_DECL genType one_over_pi ()
 
template<typename genType >
GLM_FUNC_DECL genType one_over_root_two ()
 
template<typename genType >
GLM_FUNC_DECL genType one_over_two_pi ()
 
template<typename genType >
GLM_FUNC_DECL genType pi ()
 
template<typename genType >
GLM_FUNC_DECL genType quarter_pi ()
 
template<typename genType >
GLM_FUNC_DECL genType root_five ()
 
template<typename genType >
GLM_FUNC_DECL genType root_half_pi ()
 
template<typename genType >
GLM_FUNC_DECL genType root_ln_four ()
 
template<typename genType >
GLM_FUNC_DECL genType root_pi ()
 
template<typename genType >
GLM_FUNC_DECL genType root_three ()
 
template<typename genType >
GLM_FUNC_DECL genType root_two ()
 
template<typename genType >
GLM_FUNC_DECL genType root_two_pi ()
 
template<typename genType >
GLM_FUNC_DECL genType third ()
 
template<typename genType >
GLM_FUNC_DECL genType three_over_two_pi ()
 
template<typename genType >
GLM_FUNC_DECL genType two_over_pi ()
 
template<typename genType >
GLM_FUNC_DECL genType two_over_root_pi ()
 
template<typename genType >
GLM_FUNC_DECL genType two_pi ()
 
template<typename genType >
GLM_FUNC_DECL genType two_thirds ()
 
template<typename genType >
GLM_FUNC_DECL genType zero ()
 

Detailed Description

OpenGL Mathematics (glm.g-truc.net)

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_compatibility

-
Date
2007-01-24 / 2011-06-07
+

GLM_GTC_constants

+
Date
2011-09-30 / 2012-01-25
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
+
See also
GLM Core (dependence)
gtc_half_float (dependence)
-

Definition in file compatibility.hpp.

+

Definition in file constants.hpp.

diff --git a/doc/api/a00017_source.html b/doc/api/a00017_source.html index ec349115..55f8d774 100644 --- a/doc/api/a00017_source.html +++ b/doc/api/a00017_source.html @@ -3,8 +3,8 @@ - -GLM: compatibility.hpp Source File + +0.9.6: constants.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,204 +41,153 @@
-
compatibility.hpp
+
constants.hpp
Go to the documentation of this file.
1 
-
39 #ifndef GLM_GTX_compatibility
-
40 #define GLM_GTX_compatibility
-
41 
-
42 // Dependency:
-
43 #include "../glm.hpp"
-
44 #include "../gtc/quaternion.hpp"
-
45 
-
46 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
47 # pragma message("GLM: GLM_GTX_compatibility extension included")
-
48 #endif
-
49 
-
50 #if(GLM_COMPILER & GLM_COMPILER_VC)
-
51 # include <cfloat>
-
52 #elif(GLM_COMPILER & GLM_COMPILER_GCC)
-
53 # include <cmath>
-
54 # if(GLM_PLATFORM & GLM_PLATFORM_ANDROID)
-
55 # undef isfinite
-
56 # endif
-
57 #endif//GLM_COMPILER
-
58 
-
59 namespace glm
-
60 {
-
63 
-
64  template <typename T> GLM_FUNC_QUALIFIER T lerp(T x, T y, T a){return mix(x, y, a);}
-
65  template <typename T, precision P> GLM_FUNC_QUALIFIER detail::tvec2<T, P> lerp(const detail::tvec2<T, P>& x, const detail::tvec2<T, P>& y, T a){return mix(x, y, a);}
+
43 #pragma once
+
44 
+
45 // Dependencies
+
46 #include "../detail/setup.hpp"
+
47 
+
48 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+
49 # pragma message("GLM: GLM_GTC_constants extension included")
+
50 #endif
+
51 
+
52 namespace glm
+
53 {
+
56 
+
59  template <typename genType>
+
60  GLM_FUNC_DECL genType epsilon();
+
61 
+
64  template <typename genType>
+
65  GLM_FUNC_DECL genType zero();
66 
-
67  template <typename T, precision P> GLM_FUNC_QUALIFIER detail::tvec3<T, P> lerp(const detail::tvec3<T, P>& x, const detail::tvec3<T, P>& y, T a){return mix(x, y, a);}
-
68  template <typename T, precision P> GLM_FUNC_QUALIFIER detail::tvec4<T, P> lerp(const detail::tvec4<T, P>& x, const detail::tvec4<T, P>& y, T a){return mix(x, y, a);}
-
69  template <typename T, precision P> GLM_FUNC_QUALIFIER detail::tvec2<T, P> lerp(const detail::tvec2<T, P>& x, const detail::tvec2<T, P>& y, const detail::tvec2<T, P>& a){return mix(x, y, a);}
-
70  template <typename T, precision P> GLM_FUNC_QUALIFIER detail::tvec3<T, P> lerp(const detail::tvec3<T, P>& x, const detail::tvec3<T, P>& y, const detail::tvec3<T, P>& a){return mix(x, y, a);}
-
71  template <typename T, precision P> GLM_FUNC_QUALIFIER detail::tvec4<T, P> lerp(const detail::tvec4<T, P>& x, const detail::tvec4<T, P>& y, const detail::tvec4<T, P>& a){return mix(x, y, a);}
-
72 
-
73  template <typename T, precision P> GLM_FUNC_QUALIFIER T slerp(detail::tquat<T, P> const & x, detail::tquat<T, P> const & y, T const & a){return mix(x, y, a);}
-
74 
-
75  template <typename T, precision P> GLM_FUNC_QUALIFIER T saturate(T x){return clamp(x, T(0), T(1));}
-
76  template <typename T, precision P> GLM_FUNC_QUALIFIER detail::tvec2<T, P> saturate(const detail::tvec2<T, P>& x){return clamp(x, T(0), T(1));}
-
77  template <typename T, precision P> GLM_FUNC_QUALIFIER detail::tvec3<T, P> saturate(const detail::tvec3<T, P>& x){return clamp(x, T(0), T(1));}
-
78  template <typename T, precision P> GLM_FUNC_QUALIFIER detail::tvec4<T, P> saturate(const detail::tvec4<T, P>& x){return clamp(x, T(0), T(1));}
-
79 
-
80  template <typename T, precision P> GLM_FUNC_QUALIFIER T atan2(T x, T y){return atan(x, y);}
-
81  template <typename T, precision P> GLM_FUNC_QUALIFIER detail::tvec2<T, P> atan2(const detail::tvec2<T, P>& x, const detail::tvec2<T, P>& y){return atan(x, y);}
-
82  template <typename T, precision P> GLM_FUNC_QUALIFIER detail::tvec3<T, P> atan2(const detail::tvec3<T, P>& x, const detail::tvec3<T, P>& y){return atan(x, y);}
-
83  template <typename T, precision P> GLM_FUNC_QUALIFIER detail::tvec4<T, P> atan2(const detail::tvec4<T, P>& x, const detail::tvec4<T, P>& y){return atan(x, y);}
-
84 
-
85  template <typename genType> bool isfinite(genType const & x);
-
86  template <typename T, precision P> detail::tvec2<bool, P> isfinite(const detail::tvec2<T, P>& x);
-
87  template <typename T, precision P> detail::tvec3<bool, P> isfinite(const detail::tvec3<T, P>& x);
-
88  template <typename T, precision P> detail::tvec4<bool, P> isfinite(const detail::tvec4<T, P>& x);
-
89 
-
90  typedef bool bool1;
-
91  typedef detail::tvec2<bool, highp> bool2;
-
92  typedef detail::tvec3<bool, highp> bool3;
-
93  typedef detail::tvec4<bool, highp> bool4;
-
94 
-
95  typedef bool bool1x1;
-
96  typedef detail::tmat2x2<bool, highp> bool2x2;
-
97  typedef detail::tmat2x3<bool, highp> bool2x3;
-
98  typedef detail::tmat2x4<bool, highp> bool2x4;
-
99  typedef detail::tmat3x2<bool, highp> bool3x2;
-
100  typedef detail::tmat3x3<bool, highp> bool3x3;
-
101  typedef detail::tmat3x4<bool, highp> bool3x4;
-
102  typedef detail::tmat4x2<bool, highp> bool4x2;
-
103  typedef detail::tmat4x3<bool, highp> bool4x3;
-
104  typedef detail::tmat4x4<bool, highp> bool4x4;
-
105 
-
106  typedef int int1;
-
107  typedef detail::tvec2<int, highp> int2;
-
108  typedef detail::tvec3<int, highp> int3;
-
109  typedef detail::tvec4<int, highp> int4;
-
110 
-
111  typedef int int1x1;
-
112  typedef detail::tmat2x2<int, highp> int2x2;
-
113  typedef detail::tmat2x3<int, highp> int2x3;
-
114  typedef detail::tmat2x4<int, highp> int2x4;
-
115  typedef detail::tmat3x2<int, highp> int3x2;
-
116  typedef detail::tmat3x3<int, highp> int3x3;
-
117  typedef detail::tmat3x4<int, highp> int3x4;
-
118  typedef detail::tmat4x2<int, highp> int4x2;
-
119  typedef detail::tmat4x3<int, highp> int4x3;
-
120  typedef detail::tmat4x4<int, highp> int4x4;
+
69  template <typename genType>
+
70  GLM_FUNC_DECL genType one();
+
71 
+
74  template <typename genType>
+
75  GLM_FUNC_DECL genType pi();
+
76 
+
79  template <typename genType>
+
80  GLM_FUNC_DECL genType two_pi();
+
81 
+
84  template <typename genType>
+
85  GLM_FUNC_DECL genType root_pi();
+
86 
+
89  template <typename genType>
+
90  GLM_FUNC_DECL genType half_pi();
+
91 
+
94  template <typename genType>
+
95  GLM_FUNC_DECL genType three_over_two_pi();
+
96 
+
99  template <typename genType>
+
100  GLM_FUNC_DECL genType quarter_pi();
+
101 
+
104  template <typename genType>
+
105  GLM_FUNC_DECL genType one_over_pi();
+
106 
+
109  template <typename genType>
+
110  GLM_FUNC_DECL genType one_over_two_pi();
+
111 
+
114  template <typename genType>
+
115  GLM_FUNC_DECL genType two_over_pi();
+
116 
+
119  template <typename genType>
+
120  GLM_FUNC_DECL genType four_over_pi();
121 
-
122  typedef float float1;
-
123  typedef detail::tvec2<float, highp> float2;
-
124  typedef detail::tvec3<float, highp> float3;
-
125  typedef detail::tvec4<float, highp> float4;
+
124  template <typename genType>
+
125  GLM_FUNC_DECL genType two_over_root_pi();
126 
-
127  typedef float float1x1;
-
128  typedef detail::tmat2x2<float, highp> float2x2;
-
129  typedef detail::tmat2x3<float, highp> float2x3;
-
130  typedef detail::tmat2x4<float, highp> float2x4;
-
131  typedef detail::tmat3x2<float, highp> float3x2;
-
132  typedef detail::tmat3x3<float, highp> float3x3;
-
133  typedef detail::tmat3x4<float, highp> float3x4;
-
134  typedef detail::tmat4x2<float, highp> float4x2;
-
135  typedef detail::tmat4x3<float, highp> float4x3;
-
136  typedef detail::tmat4x4<float, highp> float4x4;
-
137 
-
138  typedef double double1;
-
139  typedef detail::tvec2<double, highp> double2;
-
140  typedef detail::tvec3<double, highp> double3;
-
141  typedef detail::tvec4<double, highp> double4;
-
142 
-
143  typedef double double1x1;
-
144  typedef detail::tmat2x2<double, highp> double2x2;
-
145  typedef detail::tmat2x3<double, highp> double2x3;
-
146  typedef detail::tmat2x4<double, highp> double2x4;
-
147  typedef detail::tmat3x2<double, highp> double3x2;
-
148  typedef detail::tmat3x3<double, highp> double3x3;
-
149  typedef detail::tmat3x4<double, highp> double3x4;
-
150  typedef detail::tmat4x2<double, highp> double4x2;
-
151  typedef detail::tmat4x3<double, highp> double4x3;
-
152  typedef detail::tmat4x4<double, highp> double4x4;
-
153 
-
155 }//namespace glm
+
129  template <typename genType>
+
130  GLM_FUNC_DECL genType one_over_root_two();
+
131 
+
134  template <typename genType>
+
135  GLM_FUNC_DECL genType root_half_pi();
+
136 
+
139  template <typename genType>
+
140  GLM_FUNC_DECL genType root_two_pi();
+
141 
+
144  template <typename genType>
+
145  GLM_FUNC_DECL genType root_ln_four();
+
146 
+
149  template <typename genType>
+
150  GLM_FUNC_DECL genType e();
+
151 
+
154  template <typename genType>
+
155  GLM_FUNC_DECL genType euler();
156 
-
157 #include "compatibility.inl"
-
158 
-
159 #endif//GLM_GTX_compatibility
-
160 
-
detail::tmat2x2< int, highp > int2x2
integer matrix with 2 x 2 components. (From GLM_GTX_compatibility extension)
-
float float1x1
single-precision floating-point matrix with 1 component. (From GLM_GTX_compatibility extension) ...
-
detail::tmat3x4< int, highp > int3x4
integer matrix with 3 x 4 components. (From GLM_GTX_compatibility extension)
-
detail::tmat2x2< float, highp > float2x2
single-precision floating-point matrix with 2 x 2 components. (From GLM_GTX_compatibility extension) ...
-
GLM_FUNC_DECL genType atan(genType const &y, genType const &x)
Arc tangent.
-
detail::tvec4< float, highp > float4
single-precision floating-point vector with 4 components. (From GLM_GTX_compatibility extension) ...
-
detail::tmat4x2< bool, highp > bool4x2
boolean matrix with 4 x 2 components. (From GLM_GTX_compatibility extension)
-
GLM_FUNC_DECL detail::tquat< T, P > lerp(detail::tquat< T, P > const &x, detail::tquat< T, P > const &y, T const &a)
Linear interpolation of two quaternions.
-
detail::tmat4x2< int, highp > int4x2
integer matrix with 4 x 2 components. (From GLM_GTX_compatibility extension)
-
GLM_FUNC_QUALIFIER T saturate(T x)
Returns clamp(x, 0, 1) for each component in x. (From GLM_GTX_compatibility)
-
detail::tvec3< int, highp > int3
integer vector with 3 components. (From GLM_GTX_compatibility extension)
-
detail::tmat3x3< float, highp > float3x3
single-precision floating-point matrix with 3 x 3 components. (From GLM_GTX_compatibility extension) ...
-
detail::tmat4x3< double, highp > double4x3
double-precision floating-point matrix with 4 x 3 components. (From GLM_GTX_compatibility extension) ...
-
GLM_FUNC_DECL genTypeT mix(genTypeT const &x, genTypeT const &y, genTypeU const &a)
If genTypeU is a floating scalar or vector: Returns x * (1.0 - a) + y * a, i.e., the linear blend of ...
-
int int1x1
integer matrix with 1 component. (From GLM_GTX_compatibility extension)
-
bool bool1x1
boolean matrix with 1 x 1 component. (From GLM_GTX_compatibility extension)
-
detail::tvec2< int, highp > int2
integer vector with 2 components. (From GLM_GTX_compatibility extension)
-
detail::tmat4x4< double, highp > double4x4
double-precision floating-point matrix with 4 x 4 components. (From GLM_GTX_compatibility extension) ...
-
detail::tmat2x2< double, highp > double2x2
double-precision floating-point matrix with 2 x 2 components. (From GLM_GTX_compatibility extension) ...
-
detail::tmat2x3< bool, highp > bool2x3
boolean matrix with 2 x 3 components. (From GLM_GTX_compatibility extension)
-
int int1
integer vector with 1 component. (From GLM_GTX_compatibility extension)
-
detail::tmat2x4< float, highp > float2x4
single-precision floating-point matrix with 2 x 4 components. (From GLM_GTX_compatibility extension) ...
-
detail::tmat3x2< double, highp > double3x2
double-precision floating-point matrix with 3 x 2 components. (From GLM_GTX_compatibility extension) ...
-
detail::tvec4< bool, highp > bool4
boolean type with 4 components. (From GLM_GTX_compatibility extension)
-
GLM_FUNC_QUALIFIER T atan2(T x, T y)
Arc tangent. Returns an angle whose tangent is y/x. The signs of x and y are used to determine what q...
-
detail::tmat3x2< bool, highp > bool3x2
boolean matrix with 3 x 2 components. (From GLM_GTX_compatibility extension)
-
detail::tmat4x4< int, highp > int4x4
integer matrix with 4 x 4 components. (From GLM_GTX_compatibility extension)
-
bool bool1
boolean type with 1 component. (From GLM_GTX_compatibility extension)
-
double double1x1
double-precision floating-point matrix with 1 component. (From GLM_GTX_compatibility extension) ...
-
detail::tmat4x3< float, highp > float4x3
single-precision floating-point matrix with 4 x 3 components. (From GLM_GTX_compatibility extension) ...
-
detail::tmat4x4< bool, highp > bool4x4
boolean matrix with 4 x 4 components. (From GLM_GTX_compatibility extension)
-
detail::tmat3x3< bool, highp > bool3x3
boolean matrix with 3 x 3 components. (From GLM_GTX_compatibility extension)
-
detail::tmat3x3< int, highp > int3x3
integer matrix with 3 x 3 components. (From GLM_GTX_compatibility extension)
-
detail::tmat3x4< double, highp > double3x4
double-precision floating-point matrix with 3 x 4 components. (From GLM_GTX_compatibility extension) ...
-
detail::tvec4< int, highp > int4
integer vector with 4 components. (From GLM_GTX_compatibility extension)
-
detail::tmat3x4< bool, highp > bool3x4
boolean matrix with 3 x 4 components. (From GLM_GTX_compatibility extension)
-
detail::tmat2x3< double, highp > double2x3
double-precision floating-point matrix with 2 x 3 components. (From GLM_GTX_compatibility extension) ...
-
detail::tmat4x2< double, highp > double4x2
double-precision floating-point matrix with 4 x 2 components. (From GLM_GTX_compatibility extension) ...
-
detail::tmat2x3< int, highp > int2x3
integer matrix with 2 x 3 components. (From GLM_GTX_compatibility extension)
-
detail::tvec3< double, highp > double3
double-precision floating-point vector with 3 components. (From GLM_GTX_compatibility extension) ...
-
detail::tmat2x4< int, highp > int2x4
integer matrix with 2 x 4 components. (From GLM_GTX_compatibility extension)
-
detail::tmat2x4< double, highp > double2x4
double-precision floating-point matrix with 2 x 4 components. (From GLM_GTX_compatibility extension) ...
-
detail::tmat3x2< float, highp > float3x2
single-precision floating-point matrix with 3 x 2 components. (From GLM_GTX_compatibility extension) ...
-
detail::tmat4x3< bool, highp > bool4x3
boolean matrix with 4 x 3 components. (From GLM_GTX_compatibility extension)
-
detail::tmat2x3< float, highp > float2x3
single-precision floating-point matrix with 2 x 3 components. (From GLM_GTX_compatibility extension) ...
-
GLM_FUNC_DECL detail::tquat< T, P > slerp(detail::tquat< T, P > const &x, detail::tquat< T, P > const &y, T const &a)
Spherical linear interpolation of two quaternions.
-
GLM_FUNC_DECL genType clamp(genType const &x, genType const &minVal, genType const &maxVal)
Returns min(max(x, minVal), maxVal) for each component in x using the floating-point values minVal an...
-
detail::tmat3x2< int, highp > int3x2
integer matrix with 3 x 2 components. (From GLM_GTX_compatibility extension)
-
detail::tmat2x2< bool, highp > bool2x2
boolean matrix with 2 x 2 components. (From GLM_GTX_compatibility extension)
-
detail::tmat4x4< float, highp > float4x4
single-precision floating-point matrix with 4 x 4 components. (From GLM_GTX_compatibility extension) ...
-
detail::tvec2< double, highp > double2
double-precision floating-point vector with 2 components. (From GLM_GTX_compatibility extension) ...
-
detail::tmat4x3< int, highp > int4x3
integer matrix with 4 x 3 components. (From GLM_GTX_compatibility extension)
-
detail::tmat3x3< double, highp > double3x3
double-precision floating-point matrix with 3 x 3 components. (From GLM_GTX_compatibility extension) ...
-
detail::tvec3< float, highp > float3
single-precision floating-point vector with 3 components. (From GLM_GTX_compatibility extension) ...
-
detail::tvec3< bool, highp > bool3
boolean type with 3 components. (From GLM_GTX_compatibility extension)
-
double double1
double-precision floating-point vector with 1 component. (From GLM_GTX_compatibility extension) ...
-
detail::tmat4x2< float, highp > float4x2
single-precision floating-point matrix with 4 x 2 components. (From GLM_GTX_compatibility extension) ...
-
bool isfinite(genType const &x)
Test whether or not a scalar or each vector component is a finite value. (From GLM_GTX_compatibility)...
-
detail::tmat3x4< float, highp > float3x4
single-precision floating-point matrix with 3 x 4 components. (From GLM_GTX_compatibility extension) ...
-
detail::tvec2< bool, highp > bool2
boolean type with 2 components. (From GLM_GTX_compatibility extension)
-
detail::tmat2x4< bool, highp > bool2x4
boolean matrix with 2 x 4 components. (From GLM_GTX_compatibility extension)
-
detail::tvec4< double, highp > double4
double-precision floating-point vector with 4 components. (From GLM_GTX_compatibility extension) ...
-
float float1
single-precision floating-point vector with 1 component. (From GLM_GTX_compatibility extension) ...
-
detail::tvec2< float, highp > float2
single-precision floating-point vector with 2 components. (From GLM_GTX_compatibility extension) ...
+
159  template <typename genType>
+
160  GLM_FUNC_DECL genType root_two();
+
161 
+
164  template <typename genType>
+
165  GLM_FUNC_DECL genType root_three();
+
166 
+
169  template <typename genType>
+
170  GLM_FUNC_DECL genType root_five();
+
171 
+
174  template <typename genType>
+
175  GLM_FUNC_DECL genType ln_two();
+
176 
+
179  template <typename genType>
+
180  GLM_FUNC_DECL genType ln_ten();
+
181 
+
184  template <typename genType>
+
185  GLM_FUNC_DECL genType ln_ln_two();
+
186 
+
189  template <typename genType>
+
190  GLM_FUNC_DECL genType third();
+
191 
+
194  template <typename genType>
+
195  GLM_FUNC_DECL genType two_thirds();
+
196 
+
199  template <typename genType>
+
200  GLM_FUNC_DECL genType golden_ratio();
+
201 
+
203 } //namespace glm
+
204 
+
205 #include "constants.inl"
+
GLM_FUNC_DECL genType zero()
Return 0.
+
GLM_FUNC_DECL genType ln_ln_two()
Return ln(ln(2)).
+
GLM_FUNC_DECL genType root_two_pi()
Return sqrt(2 * pi).
+
GLM_FUNC_DECL genType one_over_root_two()
Return 1 / sqrt(2).
+
GLM_FUNC_DECL genType one_over_pi()
Return 1 / pi.
+
GLM_FUNC_DECL genType root_half_pi()
Return sqrt(pi / 2).
+
GLM_FUNC_DECL genType four_over_pi()
Return 4 / pi.
+
GLM_FUNC_DECL genType two_over_root_pi()
Return 2 / sqrt(pi).
+
GLM_FUNC_DECL genType one_over_two_pi()
Return 1 / (pi * 2).
+
GLM_FUNC_DECL genType third()
Return 1 / 3.
+
GLM_FUNC_DECL genType ln_ten()
Return ln(10).
+
GLM_FUNC_DECL genType half_pi()
Return pi / 2.
+
GLM_FUNC_DECL genType pi()
Return the pi constant.
+
GLM_FUNC_DECL genType golden_ratio()
Return the golden ratio constant.
+
GLM_FUNC_DECL genType euler()
Return Euler's constant.
+
GLM_FUNC_DECL genType root_pi()
Return square root of pi.
+
GLM_FUNC_DECL genType one()
Return 1.
+
GLM_FUNC_DECL genType two_over_pi()
Return 2 / pi.
+
GLM_FUNC_DECL genType root_ln_four()
Return sqrt(ln(4)).
+
GLM_FUNC_DECL genType three_over_two_pi()
Return pi / 2 * 3.
+
GLM_FUNC_DECL genType root_five()
Return sqrt(5).
+
Definition: _noise.hpp:39
+
GLM_FUNC_DECL genType two_pi()
Return pi * 2.
+
GLM_FUNC_DECL genType epsilon()
Return the epsilon constant for floating point types.
+
GLM_FUNC_DECL genType e()
Return e constant.
+
GLM_FUNC_DECL genType ln_two()
Return ln(2).
+
GLM_FUNC_DECL genType root_two()
Return sqrt(2).
+
GLM_FUNC_DECL genType quarter_pi()
Return pi / 4.
+
GLM_FUNC_DECL genType root_three()
Return sqrt(3).
+
GLM_FUNC_DECL genType two_thirds()
Return 2 / 3.
diff --git a/doc/api/a00018.html b/doc/api/a00018.html index bda590c2..5ed59765 100644 --- a/doc/api/a00018.html +++ b/doc/api/a00018.html @@ -3,8 +3,8 @@ - -GLM: component_wise.hpp File Reference + +0.9.6: dual_quaternion.hpp File Reference @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,57 +41,96 @@
-Namespaces | +Typedefs | Functions
-
component_wise.hpp File Reference
+
dual_quaternion.hpp File Reference

Go to the source code of this file.

- - - + + + + + + + + + + + + + + + + + + + + + + + + +

-Namespaces

 glm
 

+Typedefs

typedef highp_ddualquat ddualquat
 
typedef highp_fdualquat dualquat
 
typedef highp_fdualquat fdualquat
 
typedef tdualquat< double, highp > highp_ddualquat
 
typedef tdualquat< float, highp > highp_dualquat
 
typedef tdualquat< float, highp > highp_fdualquat
 
typedef tdualquat< double, lowp > lowp_ddualquat
 
typedef tdualquat< float, lowp > lowp_dualquat
 
typedef tdualquat< float, lowp > lowp_fdualquat
 
typedef tdualquat< double,
+mediump > 
mediump_ddualquat
 
typedef tdualquat< float, mediump > mediump_dualquat
 
typedef tdualquat< float, mediump > mediump_fdualquat
 
- - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + +

Functions

template<typename genType >
genType::value_type compAdd (genType const &v)
 
template<typename genType >
genType::value_type compMax (genType const &v)
 
template<typename genType >
genType::value_type compMin (genType const &v)
 
template<typename genType >
genType::value_type compMul (genType const &v)
 
template<typename T , precision P>
GLM_FUNC_DECL tdualquat< T, P > dualquat_cast (tmat2x4< T, P > const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL tdualquat< T, P > dualquat_cast (tmat3x4< T, P > const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL tdualquat< T, P > inverse (tdualquat< T, P > const &q)
 
template<typename T , precision P>
GLM_FUNC_DECL tdualquat< T, P > lerp (tdualquat< T, P > const &x, tdualquat< T, P > const &y, T const &a)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat2x4< T, P > mat2x4_cast (tdualquat< T, P > const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat3x4< T, P > mat3x4_cast (tdualquat< T, P > const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL tdualquat< T, P > normalize (tdualquat< T, P > const &q)
 

Detailed Description

OpenGL Mathematics (glm.g-truc.net)

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_component_wise

-
Date
2007-05-21 / 2011-06-07
-
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
+

GLM_GTX_dual_quaternion

+
Date
2013-02-10 / 2013-02-20
+
Author
Maksim Vorobiev (msome.nosp@m.one@.nosp@m.gmail.nosp@m..com)
+
See also
GLM Core (dependence)
+
+gtc_half_float (dependence)
+
+GLM_GTC_constants (dependence)
+
+GLM_GTC_quaternion (dependence)
-

Definition in file component_wise.hpp.

+

Definition in file dual_quaternion.hpp.

diff --git a/doc/api/a00018_source.html b/doc/api/a00018_source.html index 855e0421..8ed37510 100644 --- a/doc/api/a00018_source.html +++ b/doc/api/a00018_source.html @@ -3,8 +3,8 @@ - -GLM: component_wise.hpp Source File + +0.9.6: dual_quaternion.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,59 +41,246 @@
-
component_wise.hpp
+
dual_quaternion.hpp
Go to the documentation of this file.
1 
-
38 #ifndef GLM_GTX_component_wise
-
39 #define GLM_GTX_component_wise
-
40 
-
41 // Dependencies
-
42 #include "../detail/setup.hpp"
-
43 
-
44 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
45 # pragma message("GLM: GLM_GTX_component_wise extension included")
-
46 #endif
-
47 
-
48 namespace glm
-
49 {
-
52 
-
55  template <typename genType>
-
56  typename genType::value_type compAdd(
-
57  genType const & v);
-
58 
-
61  template <typename genType>
-
62  typename genType::value_type compMul(
-
63  genType const & v);
-
64 
-
67  template <typename genType>
-
68  typename genType::value_type compMin(
-
69  genType const & v);
-
70 
-
73  template <typename genType>
-
74  typename genType::value_type compMax(
-
75  genType const & v);
-
76 
-
78 }//namespace glm
-
79 
-
80 #include "component_wise.inl"
-
81 
-
82 #endif//GLM_GTX_component_wise
-
genType::value_type compMin(genType const &v)
Find the minimum value between single vector components.
-
genType::value_type compMul(genType const &v)
Multiply all vector components together.
-
genType::value_type compMax(genType const &v)
Find the maximum value between single vector components.
-
genType::value_type compAdd(genType const &v)
Add all vector components together.
+
45 #pragma once
+
46 
+
47 // Dependency:
+
48 #include "../glm.hpp"
+
49 #include "../gtc/constants.hpp"
+
50 #include "../gtc/quaternion.hpp"
+
51 
+
52 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+
53 # pragma message("GLM: GLM_GTX_dual_quaternion extension included")
+
54 #endif
+
55 
+
56 namespace glm
+
57 {
+
60 
+
61  template <typename T, precision P>
+
62  struct tdualquat
+
63  {
+
64  typedef T value_type;
+
65  typedef glm::tquat<T, P> part_type;
+
66 
+
67  public:
+
68  glm::tquat<T, P> real, dual;
+
69 
+
71  // Component accesses
+
72 
+
73 # ifdef GLM_FORCE_SIZE_FUNC
+
74  typedef size_t size_type;
+
76  GLM_FUNC_DECL GLM_CONSTEXPR size_type size() const;
+
77 
+
78  GLM_FUNC_DECL part_type & operator[](size_type i);
+
79  GLM_FUNC_DECL part_type const & operator[](size_type i) const;
+
80 # else
+
81  typedef length_t length_type;
+
83  GLM_FUNC_DECL GLM_CONSTEXPR length_type length() const;
+
84 
+
85  GLM_FUNC_DECL part_type & operator[](length_type i);
+
86  GLM_FUNC_DECL part_type const & operator[](length_type i) const;
+
87 # endif//GLM_FORCE_SIZE_FUNC
+
88 
+
90  // Implicit basic constructors
+
91 
+
92  GLM_FUNC_DECL tdualquat();
+
93  template <precision Q>
+
94  GLM_FUNC_DECL tdualquat(tdualquat<T, Q> const & d);
+
95 
+
97  // Explicit basic constructors
+
98 
+
99  GLM_FUNC_DECL explicit tdualquat(ctor);
+
100  GLM_FUNC_DECL explicit tdualquat(tquat<T, P> const & real);
+
101  GLM_FUNC_DECL tdualquat(tquat<T, P> const & orientation, tvec3<T, P> const & translation);
+
102  GLM_FUNC_DECL tdualquat(tquat<T, P> const & real, tquat<T, P> const & dual);
+
103 
+
105  // tdualquat conversions
+
106 
+
107 # ifdef GLM_FORCE_EXPLICIT_CTOR
+
108  template <typename U, precision Q>
+
109  GLM_FUNC_DECL explicit tdualquat(tdualquat<U, Q> const & q);
+
110 # else
+
111  template <typename U, precision Q>
+
112  GLM_FUNC_DECL tdualquat(tdualquat<U, Q> const & q);
+
113 # endif
+
114 
+
115  GLM_FUNC_DECL explicit tdualquat(tmat2x4<T, P> const & holder_mat);
+
116  GLM_FUNC_DECL explicit tdualquat(tmat3x4<T, P> const & aug_mat);
+
117 
+
118  // Operators
+
119  GLM_FUNC_DECL tdualquat<T, P> & operator*=(T const & s);
+
120  GLM_FUNC_DECL tdualquat<T, P> & operator/=(T const & s);
+
121  };
+
122 
+
123  template <typename T, precision P>
+
124  GLM_FUNC_DECL tquat<T, P> operator- (
+
125  tquat<T, P> const & q);
+
126 
+
127  template <typename T, precision P>
+
128  GLM_FUNC_DECL tdualquat<T, P> operator+ (
+
129  tdualquat<T, P> const & q,
+
130  tdualquat<T, P> const & p);
+
131 
+
132  template <typename T, precision P>
+
133  GLM_FUNC_DECL tdualquat<T, P> operator* (
+
134  tdualquat<T, P> const & q,
+
135  tdualquat<T, P> const & p);
+
136 
+
137  template <typename T, precision P>
+
138  GLM_FUNC_DECL tvec3<T, P> operator* (
+
139  tquat<T, P> const & q,
+
140  tvec3<T, P> const & v);
+
141 
+
142  template <typename T, precision P>
+
143  GLM_FUNC_DECL tvec3<T, P> operator* (
+
144  tvec3<T, P> const & v,
+
145  tquat<T, P> const & q);
+
146 
+
147  template <typename T, precision P>
+
148  GLM_FUNC_DECL tvec4<T, P> operator* (
+
149  tquat<T, P> const & q,
+
150  tvec4<T, P> const & v);
+
151 
+
152  template <typename T, precision P>
+
153  GLM_FUNC_DECL tvec4<T, P> operator* (
+
154  tvec4<T, P> const & v,
+
155  tquat<T, P> const & q);
+
156 
+
157  template <typename T, precision P>
+
158  GLM_FUNC_DECL tdualquat<T, P> operator* (
+
159  tdualquat<T, P> const & q,
+
160  T const & s);
+
161 
+
162  template <typename T, precision P>
+
163  GLM_FUNC_DECL tdualquat<T, P> operator* (
+
164  T const & s,
+
165  tdualquat<T, P> const & q);
+
166 
+
167  template <typename T, precision P>
+
168  GLM_FUNC_DECL tdualquat<T, P> operator/ (
+
169  tdualquat<T, P> const & q,
+
170  T const & s);
+
171 
+
175  template <typename T, precision P>
+
176  GLM_FUNC_DECL tdualquat<T, P> normalize(
+
177  tdualquat<T, P> const & q);
+
178 
+
182  template <typename T, precision P>
+
183  GLM_FUNC_DECL tdualquat<T, P> lerp(
+
184  tdualquat<T, P> const & x,
+
185  tdualquat<T, P> const & y,
+
186  T const & a);
+
187 
+
191  template <typename T, precision P>
+
192  GLM_FUNC_DECL tdualquat<T, P> inverse(
+
193  tdualquat<T, P> const & q);
+
194 
+
198  template <typename T, precision P>
+
199  GLM_FUNC_DECL tmat2x4<T, P> mat2x4_cast(
+
200  tdualquat<T, P> const & x);
+
201 
+
205  template <typename T, precision P>
+
206  GLM_FUNC_DECL tmat3x4<T, P> mat3x4_cast(
+
207  tdualquat<T, P> const & x);
+
208 
+
212  template <typename T, precision P>
+
213  GLM_FUNC_DECL tdualquat<T, P> dualquat_cast(
+
214  tmat2x4<T, P> const & x);
+
215 
+
219  template <typename T, precision P>
+
220  GLM_FUNC_DECL tdualquat<T, P> dualquat_cast(
+
221  tmat3x4<T, P> const & x);
+
222 
+
223 
+
227  typedef tdualquat<float, lowp> lowp_dualquat;
+
228 
+
232  typedef tdualquat<float, mediump> mediump_dualquat;
+
233 
+
237  typedef tdualquat<float, highp> highp_dualquat;
+
238 
+
239 
+
243  typedef tdualquat<float, lowp> lowp_fdualquat;
+
244 
+
248  typedef tdualquat<float, mediump> mediump_fdualquat;
+
249 
+
253  typedef tdualquat<float, highp> highp_fdualquat;
+
254 
+
255 
+
259  typedef tdualquat<double, lowp> lowp_ddualquat;
+
260 
+
264  typedef tdualquat<double, mediump> mediump_ddualquat;
+
265 
+
269  typedef tdualquat<double, highp> highp_ddualquat;
+
270 
+
271 
+
272 #if(!defined(GLM_PRECISION_HIGHP_FLOAT) && !defined(GLM_PRECISION_MEDIUMP_FLOAT) && !defined(GLM_PRECISION_LOWP_FLOAT))
+
273  typedef highp_fdualquat dualquat;
+
277 
+
281  typedef highp_fdualquat fdualquat;
+
282 #elif(defined(GLM_PRECISION_HIGHP_FLOAT) && !defined(GLM_PRECISION_MEDIUMP_FLOAT) && !defined(GLM_PRECISION_LOWP_FLOAT))
+
283  typedef highp_fdualquat dualquat;
+
284  typedef highp_fdualquat fdualquat;
+
285 #elif(!defined(GLM_PRECISION_HIGHP_FLOAT) && defined(GLM_PRECISION_MEDIUMP_FLOAT) && !defined(GLM_PRECISION_LOWP_FLOAT))
+
286  typedef mediump_fdualquat dualquat;
+
287  typedef mediump_fdualquat fdualquat;
+
288 #elif(!defined(GLM_PRECISION_HIGHP_FLOAT) && !defined(GLM_PRECISION_MEDIUMP_FLOAT) && defined(GLM_PRECISION_LOWP_FLOAT))
+
289  typedef lowp_fdualquat dualquat;
+
290  typedef lowp_fdualquat fdualquat;
+
291 #else
+
292 # error "GLM error: multiple default precision requested for single-precision floating-point types"
+
293 #endif
+
294 
+
295 
+
296 #if(!defined(GLM_PRECISION_HIGHP_DOUBLE) && !defined(GLM_PRECISION_MEDIUMP_DOUBLE) && !defined(GLM_PRECISION_LOWP_DOUBLE))
+
297  typedef highp_ddualquat ddualquat;
+
301 #elif(defined(GLM_PRECISION_HIGHP_DOUBLE) && !defined(GLM_PRECISION_MEDIUMP_DOUBLE) && !defined(GLM_PRECISION_LOWP_DOUBLE))
+
302  typedef highp_ddualquat ddualquat;
+
303 #elif(!defined(GLM_PRECISION_HIGHP_DOUBLE) && defined(GLM_PRECISION_MEDIUMP_DOUBLE) && !defined(GLM_PRECISION_LOWP_DOUBLE))
+
304  typedef mediump_ddualquat ddualquat;
+
305 #elif(!defined(GLM_PRECISION_HIGHP_DOUBLE) && !defined(GLM_PRECISION_MEDIUMP_DOUBLE) && defined(GLM_PRECISION_LOWP_DOUBLE))
+
306  typedef lowp_ddualquat ddualquat;
+
307 #else
+
308 # error "GLM error: Multiple default precision requested for double-precision floating-point types"
+
309 #endif
+
310 
+
312 } //namespace glm
+
313 
+
314 #include "dual_quaternion.inl"
+
tdualquat< float, lowp > lowp_fdualquat
Dual-quaternion of low single-precision floating-point numbers.
+
highp_fdualquat dualquat
Dual-quaternion of floating-point numbers.
+
tdualquat< float, lowp > lowp_dualquat
Dual-quaternion of low single-precision floating-point numbers.
+
GLM_FUNC_DECL tdualquat< T, P > dualquat_cast(tmat3x4< T, P > const &x)
Converts a 3 * 4 matrix (augmented matrix rotation + translation) to a quaternion.
+
GLM_FUNC_DECL tdualquat< T, P > lerp(tdualquat< T, P > const &x, tdualquat< T, P > const &y, T const &a)
Returns the linear interpolation of two dual quaternion.
+
tdualquat< float, highp > highp_dualquat
Dual-quaternion of high single-precision floating-point numbers.
+
tdualquat< double, lowp > lowp_ddualquat
Dual-quaternion of low double-precision floating-point numbers.
+
tdualquat< double, highp > highp_ddualquat
Dual-quaternion of high double-precision floating-point numbers.
+
highp_ddualquat ddualquat
Dual-quaternion of default double-precision floating-point numbers.
+
tdualquat< float, mediump > mediump_dualquat
Dual-quaternion of medium single-precision floating-point numbers.
+
GLM_FUNC_DECL tmat2x4< T, P > mat2x4_cast(tdualquat< T, P > const &x)
Converts a quaternion to a 2 * 4 matrix.
+
highp_fdualquat fdualquat
Dual-quaternion of single-precision floating-point numbers.
+
GLM_FUNC_DECL T length(vecType< T, P > const &x)
Returns the length of x, i.e., sqrt(x * x).
+
tdualquat< double, mediump > mediump_ddualquat
Dual-quaternion of medium double-precision floating-point numbers.
+
GLM_FUNC_DECL tmat3x4< T, P > mat3x4_cast(tdualquat< T, P > const &x)
Converts a quaternion to a 3 * 4 matrix.
+
tdualquat< float, highp > highp_fdualquat
Dual-quaternion of high single-precision floating-point numbers.
+
GLM_FUNC_DECL tdualquat< T, P > inverse(tdualquat< T, P > const &q)
Returns the q inverse.
+
Definition: _noise.hpp:39
+
GLM_FUNC_DECL tmat4x4< T, P > orientation(tvec3< T, P > const &Normal, tvec3< T, P > const &Up)
Build a rotation matrix from a normal and a up vector.
+
GLM_FUNC_DECL tdualquat< T, P > normalize(tdualquat< T, P > const &q)
Returns the normalized quaternion.
+
tdualquat< float, mediump > mediump_fdualquat
Dual-quaternion of medium single-precision floating-point numbers.
diff --git a/doc/api/a00019.html b/doc/api/a00019.html index 7e8f8f26..323c0a76 100644 --- a/doc/api/a00019.html +++ b/doc/api/a00019.html @@ -3,8 +3,8 @@ - -GLM: constants.hpp File Reference + +0.9.6: epsilon.hpp File Reference @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,122 +41,56 @@
-Namespaces | Functions
-
gtc/constants.hpp File Reference
+
epsilon.hpp File Reference

Go to the source code of this file.

- - - -

-Namespaces

 glm
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + +

Functions

template<typename genType >
GLM_FUNC_DECL genType e ()
 
template<typename genType >
GLM_FUNC_DECL genType epsilon ()
 
template<typename genType >
GLM_FUNC_DECL genType euler ()
 
template<typename genType >
GLM_FUNC_DECL genType golden_ratio ()
 
template<typename genType >
GLM_FUNC_DECL genType half_pi ()
 
template<typename genType >
GLM_FUNC_DECL genType ln_ln_two ()
 
template<typename genType >
GLM_FUNC_DECL genType ln_ten ()
 
template<typename genType >
GLM_FUNC_DECL genType ln_two ()
 
template<typename genType >
GLM_FUNC_DECL genType one ()
 
template<typename genType >
GLM_FUNC_DECL genType one_over_pi ()
 
template<typename genType >
GLM_FUNC_DECL genType one_over_root_two ()
 
template<typename genType >
GLM_FUNC_DECL genType pi ()
 
template<typename genType >
GLM_FUNC_DECL genType quarter_pi ()
 
template<typename genType >
GLM_FUNC_DECL genType root_five ()
 
template<typename genType >
GLM_FUNC_DECL genType root_half_pi ()
 
template<typename genType >
GLM_FUNC_DECL genType root_ln_four ()
 
template<typename genType >
GLM_FUNC_DECL genType root_pi ()
 
template<typename genType >
GLM_FUNC_DECL genType root_three ()
 
template<typename genType >
GLM_FUNC_DECL genType root_two ()
 
template<typename genType >
GLM_FUNC_DECL genType root_two_pi ()
 
template<typename genType >
GLM_FUNC_DECL genType third ()
 
template<typename genType >
GLM_FUNC_DECL genType two_over_pi ()
 
template<typename genType >
GLM_FUNC_DECL genType two_over_root_pi ()
 
template<typename genType >
GLM_FUNC_DECL genType two_thirds ()
 
template<typename genType >
GLM_FUNC_DECL genType zero ()
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< bool, P > epsilonEqual (vecType< T, P > const &x, vecType< T, P > const &y, T const &epsilon)
 
template<typename genType >
GLM_FUNC_DECL bool epsilonEqual (genType const &x, genType const &y, genType const &epsilon)
 
template<typename genType >
GLM_FUNC_DECL genType::boolType epsilonNotEqual (genType const &x, genType const &y, typename genType::value_type const &epsilon)
 
template<typename genType >
GLM_FUNC_DECL bool epsilonNotEqual (genType const &x, genType const &y, genType const &epsilon)
 

Detailed Description

OpenGL Mathematics (glm.g-truc.net)

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTC_constants

-
Date
2011-09-30 / 2012-01-25
+

GLM_GTC_epsilon

+
Date
2012-04-07 / 2012-04-07
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
+
See also
GLM Core (dependence)
-gtc_half_float (dependence)
+gtc_half_float (dependence) +
+GLM_GTC_quaternion (dependence)
-

Definition in file gtc/constants.hpp.

+

Definition in file epsilon.hpp.

diff --git a/doc/api/a00019_source.html b/doc/api/a00019_source.html index b83646c9..3d73b033 100644 --- a/doc/api/a00019_source.html +++ b/doc/api/a00019_source.html @@ -3,8 +3,8 @@ - -GLM: constants.hpp Source File + +0.9.6: epsilon.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,139 +41,65 @@
-
gtc/constants.hpp
+
epsilon.hpp
Go to the documentation of this file.
1 
-
39 #ifndef GLM_GTC_constants
-
40 #define GLM_GTC_constants
-
41 
-
42 // Dependencies
-
43 #include "../detail/setup.hpp"
-
44 
-
45 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
46 # pragma message("GLM: GLM_GTC_constants extension included")
-
47 #endif
-
48 
-
49 namespace glm
-
50 {
+
44 #pragma once
+
45 
+
46 // Dependencies
+
47 #include "../detail/setup.hpp"
+
48 #include "../detail/precision.hpp"
+
49 
+
50 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+
51 # pragma message("GLM: GLM_GTC_epsilon extension included")
+
52 #endif
53 
-
57  template <typename genType>
-
58  GLM_FUNC_DECL genType epsilon();
-
59 
-
62  template <typename genType>
-
63  GLM_FUNC_DECL genType zero();
-
64 
-
67  template <typename genType>
-
68  GLM_FUNC_DECL genType one();
-
69 
-
72  template <typename genType>
-
73  GLM_FUNC_DECL genType pi();
-
74 
-
77  template <typename genType>
-
78  GLM_FUNC_DECL genType root_pi();
-
79 
-
82  template <typename genType>
-
83  GLM_FUNC_DECL genType half_pi();
-
84 
-
87  template <typename genType>
-
88  GLM_FUNC_DECL genType quarter_pi();
-
89 
-
92  template <typename genType>
-
93  GLM_FUNC_DECL genType one_over_pi();
-
94 
-
97  template <typename genType>
-
98  GLM_FUNC_DECL genType two_over_pi();
-
99 
-
102  template <typename genType>
-
103  GLM_FUNC_DECL genType two_over_root_pi();
-
104 
-
107  template <typename genType>
-
108  GLM_FUNC_DECL genType one_over_root_two();
-
109 
-
112  template <typename genType>
-
113  GLM_FUNC_DECL genType root_half_pi();
-
114 
-
117  template <typename genType>
-
118  GLM_FUNC_DECL genType root_two_pi();
-
119 
-
122  template <typename genType>
-
123  GLM_FUNC_DECL genType root_ln_four();
-
124 
-
127  template <typename genType>
-
128  GLM_FUNC_DECL genType e();
-
129 
-
132  template <typename genType>
-
133  GLM_FUNC_DECL genType euler();
-
134 
-
137  template <typename genType>
-
138  GLM_FUNC_DECL genType root_two();
-
139 
-
142  template <typename genType>
-
143  GLM_FUNC_DECL genType root_three();
-
144 
-
147  template <typename genType>
-
148  GLM_FUNC_DECL genType root_five();
-
149 
-
152  template <typename genType>
-
153  GLM_FUNC_DECL genType ln_two();
-
154 
-
157  template <typename genType>
-
158  GLM_FUNC_DECL genType ln_ten();
-
159 
-
162  template <typename genType>
-
163  GLM_FUNC_DECL genType ln_ln_two();
-
164 
-
167  template <typename genType>
-
168  GLM_FUNC_DECL genType third();
-
169 
-
172  template <typename genType>
-
173  GLM_FUNC_DECL genType two_thirds();
-
174 
-
177  template <typename genType>
-
178  GLM_FUNC_DECL genType golden_ratio();
-
179 
-
181 } //namespace glm
-
182 
-
183 #include "constants.inl"
-
184 
-
185 #endif//GLM_GTC_constants
-
GLM_FUNC_DECL genType e()
Return e constant.
-
GLM_FUNC_DECL genType epsilon()
Return the epsilon constant for floating point types.
-
GLM_FUNC_DECL genType golden_ratio()
Return the golden ratio constant.
-
GLM_FUNC_DECL genType root_ln_four()
Return sqrt(ln(4)).
-
GLM_FUNC_DECL genType root_three()
Return sqrt(3).
-
GLM_FUNC_DECL genType pi()
Return the pi constant.
-
GLM_FUNC_DECL genType root_two_pi()
Return sqrt(2 * pi).
-
GLM_FUNC_DECL genType ln_ten()
Return ln(10).
-
GLM_FUNC_DECL genType one()
Return 1.
-
GLM_FUNC_DECL genType two_thirds()
Return 2 / 3.
-
GLM_FUNC_DECL genType zero()
Return 0.
-
GLM_FUNC_DECL genType one_over_root_two()
Return 1 / sqrt(2).
-
GLM_FUNC_DECL genType ln_two()
Return ln(2).
-
GLM_FUNC_DECL genType two_over_root_pi()
Return 2 / sqrt(pi).
-
GLM_FUNC_DECL genType root_two()
Return sqrt(2).
-
GLM_FUNC_DECL genType two_over_pi()
Return 2 / pi.
-
GLM_FUNC_DECL genType half_pi()
Return pi / 2.
-
GLM_FUNC_DECL genType quarter_pi()
Return pi / 4.
-
GLM_FUNC_DECL genType one_over_pi()
Return 1 / pi.
-
GLM_FUNC_DECL genType euler()
Return Euler&#39;s constant.
-
GLM_FUNC_DECL genType third()
Return 1 / 3.
-
GLM_FUNC_DECL genType root_pi()
Return square root of pi.
-
GLM_FUNC_DECL genType root_half_pi()
Return sqrt(pi / 2).
-
GLM_FUNC_DECL genType root_five()
Return sqrt(5).
-
GLM_FUNC_DECL genType ln_ln_two()
Return ln(ln(2)).
+
54 namespace glm
+
55 {
+
58 
+
63  template <typename T, precision P, template <typename, precision> class vecType>
+
64  GLM_FUNC_DECL vecType<bool, P> epsilonEqual(
+
65  vecType<T, P> const & x,
+
66  vecType<T, P> const & y,
+
67  T const & epsilon);
+
68 
+
73  template <typename genType>
+
74  GLM_FUNC_DECL bool epsilonEqual(
+
75  genType const & x,
+
76  genType const & y,
+
77  genType const & epsilon);
+
78 
+
83  template <typename genType>
+
84  GLM_FUNC_DECL typename genType::boolType epsilonNotEqual(
+
85  genType const & x,
+
86  genType const & y,
+
87  typename genType::value_type const & epsilon);
+
88 
+
93  template <typename genType>
+
94  GLM_FUNC_DECL bool epsilonNotEqual(
+
95  genType const & x,
+
96  genType const & y,
+
97  genType const & epsilon);
+
98 
+
100 }//namespace glm
+
101 
+
102 #include "epsilon.inl"
+
GLM_FUNC_DECL bool epsilonNotEqual(genType const &x, genType const &y, genType const &epsilon)
Returns the component-wise comparison of |x - y| >= epsilon.
+
Definition: _noise.hpp:39
+
GLM_FUNC_DECL genType epsilon()
Return the epsilon constant for floating point types.
+
GLM_FUNC_DECL bool epsilonEqual(genType const &x, genType const &y, genType const &epsilon)
Returns the component-wise comparison of |x - y| < epsilon.
diff --git a/doc/api/a00020.html b/doc/api/a00020.html new file mode 100644 index 00000000..2154b5a1 --- /dev/null +++ b/doc/api/a00020.html @@ -0,0 +1,140 @@ + + + + + + +0.9.6: euler_angles.hpp File Reference + + + + + + +
+
+ + + + + + + +
+
0.9.6 +
+
+
+ + + + + +
+
+
+Functions
+
+
euler_angles.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename T >
GLM_FUNC_DECL tmat4x4< T,
+defaultp > 
eulerAngleX (T const &angleX)
 
template<typename T >
GLM_FUNC_DECL tmat4x4< T,
+defaultp > 
eulerAngleXY (T const &angleX, T const &angleY)
 
template<typename T >
GLM_FUNC_DECL tmat4x4< T,
+defaultp > 
eulerAngleXZ (T const &angleX, T const &angleZ)
 
template<typename T >
GLM_FUNC_DECL tmat4x4< T,
+defaultp > 
eulerAngleY (T const &angleY)
 
template<typename T >
GLM_FUNC_DECL tmat4x4< T,
+defaultp > 
eulerAngleYX (T const &angleY, T const &angleX)
 
template<typename T >
GLM_FUNC_DECL tmat4x4< T,
+defaultp > 
eulerAngleYXZ (T const &yaw, T const &pitch, T const &roll)
 
template<typename T >
GLM_FUNC_DECL tmat4x4< T,
+defaultp > 
eulerAngleYZ (T const &angleY, T const &angleZ)
 
template<typename T >
GLM_FUNC_DECL tmat4x4< T,
+defaultp > 
eulerAngleZ (T const &angleZ)
 
template<typename T >
GLM_FUNC_DECL tmat4x4< T,
+defaultp > 
eulerAngleZX (T const &angle, T const &angleX)
 
template<typename T >
GLM_FUNC_DECL tmat4x4< T,
+defaultp > 
eulerAngleZY (T const &angleZ, T const &angleY)
 
template<typename T >
GLM_FUNC_DECL tmat2x2< T,
+defaultp > 
orientate2 (T const &angle)
 
template<typename T >
GLM_FUNC_DECL tmat3x3< T,
+defaultp > 
orientate3 (T const &angle)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat3x3< T, P > orientate3 (tvec3< T, P > const &angles)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat4x4< T, P > orientate4 (tvec3< T, P > const &angles)
 
template<typename T >
GLM_FUNC_DECL tmat4x4< T,
+defaultp > 
yawPitchRoll (T const &yaw, T const &pitch, T const &roll)
 
+

Detailed Description

+

OpenGL Mathematics (glm.g-truc.net)

+

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+

GLM_GTX_euler_angles

+
Date
2005-12-21 / 2011-06-07
+
Author
Christophe Riccio
+
See also
GLM Core (dependence)
+
+gtc_half_float (dependence)
+ +

Definition in file euler_angles.hpp.

+
+ + + + diff --git a/doc/api/a00020_source.html b/doc/api/a00020_source.html index 2e389a44..784014de 100644 --- a/doc/api/a00020_source.html +++ b/doc/api/a00020_source.html @@ -3,8 +3,8 @@ - -GLM: constants.hpp Source File + +0.9.6: euler_angles.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,31 +41,121 @@
-
gtx/constants.hpp
+
euler_angles.hpp
-
1 
-
24 #ifndef GLM_GTX_constants
-
25 #define GLM_GTX_constants
-
26 
-
27 #include "../gtc/constants.hpp"
-
28 
-
29 #if(defined(GLM_MESSAGES))
-
30 # pragma message("GLM: GLM_GTX_constants extension is deprecated, include GLM_GTC_constants (glm/gtc/constants.hpp) instead")
-
31 #endif
-
32 
-
33 #endif//GLM_GTX_constants
+Go to the documentation of this file.
1 
+
43 #pragma once
+
44 
+
45 // Dependency:
+
46 #include "../glm.hpp"
+
47 
+
48 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+
49 # pragma message("GLM: GLM_GTX_euler_angles extension included")
+
50 #endif
+
51 
+
52 namespace glm
+
53 {
+
56 
+
59  template <typename T>
+
60  GLM_FUNC_DECL tmat4x4<T, defaultp> eulerAngleX(
+
61  T const & angleX);
+
62 
+
65  template <typename T>
+
66  GLM_FUNC_DECL tmat4x4<T, defaultp> eulerAngleY(
+
67  T const & angleY);
+
68 
+
71  template <typename T>
+
72  GLM_FUNC_DECL tmat4x4<T, defaultp> eulerAngleZ(
+
73  T const & angleZ);
+
74 
+
77  template <typename T>
+
78  GLM_FUNC_DECL tmat4x4<T, defaultp> eulerAngleXY(
+
79  T const & angleX,
+
80  T const & angleY);
+
81 
+
84  template <typename T>
+
85  GLM_FUNC_DECL tmat4x4<T, defaultp> eulerAngleYX(
+
86  T const & angleY,
+
87  T const & angleX);
+
88 
+
91  template <typename T>
+
92  GLM_FUNC_DECL tmat4x4<T, defaultp> eulerAngleXZ(
+
93  T const & angleX,
+
94  T const & angleZ);
+
95 
+
98  template <typename T>
+
99  GLM_FUNC_DECL tmat4x4<T, defaultp> eulerAngleZX(
+
100  T const & angle,
+
101  T const & angleX);
+
102 
+
105  template <typename T>
+
106  GLM_FUNC_DECL tmat4x4<T, defaultp> eulerAngleYZ(
+
107  T const & angleY,
+
108  T const & angleZ);
+
109 
+
112  template <typename T>
+
113  GLM_FUNC_DECL tmat4x4<T, defaultp> eulerAngleZY(
+
114  T const & angleZ,
+
115  T const & angleY);
+
116 
+
119  template <typename T>
+
120  GLM_FUNC_DECL tmat4x4<T, defaultp> eulerAngleYXZ(
+
121  T const & yaw,
+
122  T const & pitch,
+
123  T const & roll);
+
124 
+
127  template <typename T>
+
128  GLM_FUNC_DECL tmat4x4<T, defaultp> yawPitchRoll(
+
129  T const & yaw,
+
130  T const & pitch,
+
131  T const & roll);
+
132 
+
135  template <typename T>
+
136  GLM_FUNC_DECL tmat2x2<T, defaultp> orientate2(T const & angle);
+
137 
+
140  template <typename T>
+
141  GLM_FUNC_DECL tmat3x3<T, defaultp> orientate3(T const & angle);
+
142 
+
145  template <typename T, precision P>
+
146  GLM_FUNC_DECL tmat3x3<T, P> orientate3(tvec3<T, P> const & angles);
+
147 
+
150  template <typename T, precision P>
+
151  GLM_FUNC_DECL tmat4x4<T, P> orientate4(tvec3<T, P> const & angles);
+
152 
+
154 }//namespace glm
+
155 
+
156 #include "euler_angles.inl"
+
GLM_FUNC_DECL tmat4x4< T, defaultp > eulerAngleZY(T const &angleZ, T const &angleY)
Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * Y).
+
GLM_FUNC_DECL tmat4x4< T, defaultp > eulerAngleY(T const &angleY)
Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle Y.
+
GLM_FUNC_DECL tmat3x3< T, P > orientate3(tvec3< T, P > const &angles)
Creates a 3D 3 * 3 rotation matrix from euler angles (Y * X * Z).
+
GLM_FUNC_DECL tmat2x2< T, defaultp > orientate2(T const &angle)
Creates a 2D 2 * 2 rotation matrix from an euler angle.
+
GLM_FUNC_DECL tmat4x4< T, P > orientate4(tvec3< T, P > const &angles)
Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z).
+
GLM_FUNC_DECL T angle(tquat< T, P > const &x)
Returns the quaternion rotation angle.
+
GLM_FUNC_DECL tmat4x4< T, defaultp > eulerAngleX(T const &angleX)
Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle X.
+
GLM_FUNC_DECL tmat4x4< T, defaultp > eulerAngleXZ(T const &angleX, T const &angleZ)
Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Z).
+
GLM_FUNC_DECL tmat4x4< T, defaultp > eulerAngleYZ(T const &angleY, T const &angleZ)
Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * Z).
+
GLM_FUNC_DECL tmat4x4< T, defaultp > eulerAngleYX(T const &angleY, T const &angleX)
Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X).
+
GLM_FUNC_DECL T pitch(tquat< T, P > const &x)
Returns pitch value of euler angles expressed in radians.
+
GLM_FUNC_DECL T roll(tquat< T, P > const &x)
Returns roll value of euler angles expressed in radians.
+
GLM_FUNC_DECL tmat4x4< T, defaultp > eulerAngleXY(T const &angleX, T const &angleY)
Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Y).
+
Definition: _noise.hpp:39
+
GLM_FUNC_DECL tmat4x4< T, defaultp > eulerAngleYXZ(T const &yaw, T const &pitch, T const &roll)
Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z).
+
GLM_FUNC_DECL tmat4x4< T, defaultp > eulerAngleZ(T const &angleZ)
Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle Z.
+
GLM_FUNC_DECL tmat4x4< T, defaultp > yawPitchRoll(T const &yaw, T const &pitch, T const &roll)
Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z).
+
GLM_FUNC_DECL tmat4x4< T, defaultp > eulerAngleZX(T const &angle, T const &angleX)
Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * X).
+
GLM_FUNC_DECL T yaw(tquat< T, P > const &x)
Returns yaw value of euler angles expressed in radians.
diff --git a/doc/api/a00021.html b/doc/api/a00021.html index 06030164..2edeaaf7 100644 --- a/doc/api/a00021.html +++ b/doc/api/a00021.html @@ -3,8 +3,8 @@ - -GLM: dual_quaternion.hpp File Reference + +0.9.6: exponential.hpp File Reference @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,109 +41,33 @@
-
-Namespaces | -Typedefs | -Functions
-
dual_quaternion.hpp File Reference
+
exponential.hpp File Reference

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
- - - - - - - - - - - - - - - - - - - - - - - - - -

-Typedefs

typedef highp_ddualquat ddualquat
 
typedef highp_fdualquat dualquat
 
typedef highp_fdualquat fdualquat
 
typedef detail::tdualquat
-< double, highp > 
highp_ddualquat
 
typedef detail::tdualquat
-< float, highp > 
highp_dualquat
 
typedef detail::tdualquat
-< float, highp > 
highp_fdualquat
 
typedef detail::tdualquat
-< double, lowp > 
lowp_ddualquat
 
typedef detail::tdualquat
-< float, lowp > 
lowp_dualquat
 
typedef detail::tdualquat
-< float, lowp > 
lowp_fdualquat
 
typedef detail::tdualquat
-< double, mediump > 
mediump_ddualquat
 
typedef detail::tdualquat
-< float, mediump > 
mediump_dualquat
 
typedef detail::tdualquat
-< float, mediump > 
mediump_fdualquat
 
- - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename T , precision P>
detail::tdualquat< T, P > dualquat_cast (detail::tmat2x4< T, P > const &x)
 
template<typename T , precision P>
detail::tdualquat< T, P > dualquat_cast (detail::tmat3x4< T, P > const &x)
 
template<typename T , precision P>
detail::tdualquat< T, P > inverse (detail::tdualquat< T, P > const &q)
 
template<typename T , precision P>
detail::tdualquat< T, P > lerp (detail::tdualquat< T, P > const &x, detail::tdualquat< T, P > const &y, T const &a)
 
template<typename T , precision P>
detail::tmat2x4< T, P > mat2x4_cast (detail::tdualquat< T, P > const &x)
 
template<typename T , precision P>
detail::tmat3x4< T, P > mat3x4_cast (detail::tdualquat< T, P > const &x)
 
template<typename T , precision P>
detail::tdualquat< T, P > normalize (detail::tdualquat< T, P > const &q)
 

Detailed Description

OpenGL Mathematics (glm.g-truc.net)

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

gtx_dual_quaternion

-
Date
2013-02-10 / 2013-02-20
-
Author
Maksim Vorobiev (msome.nosp@m.one@.nosp@m.gmail.nosp@m..com)
-
See Also
GLM Core (dependence)
-
-gtc_half_float (dependence)
-
-GLM_GTC_constants (dependence)
-
-GLM_GTC_quaternion (dependence)
+

GLM Core

+
Date
2013-12-24 / 2013-12-24
+
Author
Christophe Riccio
-

Definition in file dual_quaternion.hpp.

+

Definition in file exponential.hpp.

diff --git a/doc/api/a00021_source.html b/doc/api/a00021_source.html index b70355cf..2d970157 100644 --- a/doc/api/a00021_source.html +++ b/doc/api/a00021_source.html @@ -3,8 +3,8 @@ - -GLM: dual_quaternion.hpp Source File + +0.9.6: exponential.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,231 +41,25 @@
-
dual_quaternion.hpp
+
exponential.hpp
Go to the documentation of this file.
1 
-
41 #ifndef GLM_GTX_dual_quaternion
-
42 #define GLM_GTX_dual_quaternion
-
43 
-
44 // Dependency:
-
45 #include "../glm.hpp"
-
46 #include "../gtc/constants.hpp"
-
47 #include "../gtc/quaternion.hpp"
-
48 
-
49 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
50 # pragma message("GLM: GLM_GTX_dual_quaternion extension included")
-
51 #endif
-
52 
-
53 namespace glm{
-
54 namespace detail
-
55 {
-
56  template <typename T, precision P>
-
57  struct tdualquat
-
58  {
-
59  enum ctor{null};
-
60 
-
61  typedef glm::detail::tquat<T, P> part_type;
-
62 
-
63  public:
-
64  glm::detail::tquat<T, P> real, dual;
-
65 
-
66  GLM_FUNC_DECL GLM_CONSTEXPR int length() const;
-
67 
-
68  // Constructors
-
69  tdualquat();
-
70  explicit tdualquat(tquat<T, P> const & real);
-
71  tdualquat(tquat<T, P> const & real,tquat<T, P> const & dual);
-
72  tdualquat(tquat<T, P> const & orientation,tvec3<T, P> const& translation);
-
73 
-
75  // tdualquat conversions
-
76  explicit tdualquat(tmat2x4<T, P> const & holder_mat);
-
77  explicit tdualquat(tmat3x4<T, P> const & aug_mat);
-
78 
-
79  // Accesses
-
80  part_type & operator[](int i);
-
81  part_type const & operator[](int i) const;
-
82 
-
83  // Operators
-
84  tdualquat<T, P> & operator*=(T const & s);
-
85  tdualquat<T, P> & operator/=(T const & s);
-
86  };
-
87 
-
88  template <typename T, precision P>
-
89  detail::tquat<T, P> operator- (
-
90  detail::tquat<T, P> const & q);
-
91 
-
92  template <typename T, precision P>
-
93  detail::tdualquat<T, P> operator+ (
-
94  detail::tdualquat<T, P> const & q,
-
95  detail::tdualquat<T, P> const & p);
-
96 
-
97  template <typename T, precision P>
-
98  detail::tdualquat<T, P> operator* (
-
99  detail::tdualquat<T, P> const & q,
-
100  detail::tdualquat<T, P> const & p);
-
101 
-
102  template <typename T, precision P>
-
103  detail::tvec3<T, P> operator* (
-
104  detail::tquat<T, P> const & q,
-
105  detail::tvec3<T, P> const & v);
-
106 
-
107  template <typename T, precision P>
-
108  detail::tvec3<T, P> operator* (
-
109  detail::tvec3<T, P> const & v,
-
110  detail::tquat<T, P> const & q);
-
111 
-
112  template <typename T, precision P>
-
113  detail::tvec4<T, P> operator* (
-
114  detail::tquat<T, P> const & q,
-
115  detail::tvec4<T, P> const & v);
-
116 
-
117  template <typename T, precision P>
-
118  detail::tvec4<T, P> operator* (
-
119  detail::tvec4<T, P> const & v,
-
120  detail::tquat<T, P> const & q);
-
121 
-
122  template <typename T, precision P>
-
123  detail::tdualquat<T, P> operator* (
-
124  detail::tdualquat<T, P> const & q,
-
125  T const & s);
-
126 
-
127  template <typename T, precision P>
-
128  detail::tdualquat<T, P> operator* (
-
129  T const & s,
-
130  detail::tdualquat<T, P> const & q);
-
131 
-
132  template <typename T, precision P>
-
133  detail::tdualquat<T, P> operator/ (
-
134  detail::tdualquat<T, P> const & q,
-
135  T const & s);
-
136 } //namespace detail
-
137 
-
140 
-
144  template <typename T, precision P>
-
145  detail::tdualquat<T, P> normalize(
-
146  detail::tdualquat<T, P> const & q);
-
147 
-
151  template <typename T, precision P>
-
152  detail::tdualquat<T, P> lerp(
-
153  detail::tdualquat<T, P> const & x,
-
154  detail::tdualquat<T, P> const & y,
-
155  T const & a);
-
156 
-
160  template <typename T, precision P>
-
161  detail::tdualquat<T, P> inverse(
-
162  detail::tdualquat<T, P> const & q);
-
163 
-
164  /*
-
169  template <typename T, precision P>
-
170  detail::tmat3x3<T, P> mat3_cast(
-
171  detail::tdualquat<T, P> const & x);
-
172  */
-
173 
-
177  template <typename T, precision P>
-
178  detail::tmat2x4<T, P> mat2x4_cast(
-
179  detail::tdualquat<T, P> const & x);
-
180 
-
184  template <typename T, precision P>
-
185  detail::tmat3x4<T, P> mat3x4_cast(
-
186  detail::tdualquat<T, P> const & x);
-
187 
-
191  template <typename T, precision P>
-
192  detail::tdualquat<T, P> dualquat_cast(
-
193  detail::tmat2x4<T, P> const & x);
-
194 
-
198  template <typename T, precision P>
-
199  detail::tdualquat<T, P> dualquat_cast(
-
200  detail::tmat3x4<T, P> const & x);
-
201 
-
202 
-
206  typedef detail::tdualquat<float, lowp> lowp_dualquat;
-
207 
-
211  typedef detail::tdualquat<float, mediump> mediump_dualquat;
-
212 
-
216  typedef detail::tdualquat<float, highp> highp_dualquat;
-
217 
-
218 
-
222  typedef detail::tdualquat<float, lowp> lowp_fdualquat;
-
223 
-
227  typedef detail::tdualquat<float, mediump> mediump_fdualquat;
-
228 
-
232  typedef detail::tdualquat<float, highp> highp_fdualquat;
-
233 
-
234 
-
238  typedef detail::tdualquat<double, lowp> lowp_ddualquat;
-
239 
-
243  typedef detail::tdualquat<double, mediump> mediump_ddualquat;
-
244 
-
248  typedef detail::tdualquat<double, highp> highp_ddualquat;
-
249 
-
250 
-
251 #if(!defined(GLM_PRECISION_HIGHP_FLOAT) && !defined(GLM_PRECISION_MEDIUMP_FLOAT) && !defined(GLM_PRECISION_LOWP_FLOAT))
-
252  typedef highp_fdualquat dualquat;
-
256 
- -
261 #elif(defined(GLM_PRECISION_HIGHP_FLOAT) && !defined(GLM_PRECISION_MEDIUMP_FLOAT) && !defined(GLM_PRECISION_LOWP_FLOAT))
-
262  typedef highp_fdualquat dualquat;
-
263  typedef highp_fdualquat fdualquat;
-
264 #elif(!defined(GLM_PRECISION_HIGHP_FLOAT) && defined(GLM_PRECISION_MEDIUMP_FLOAT) && !defined(GLM_PRECISION_LOWP_FLOAT))
-
265  typedef mediump_fdualquat dualquat;
- -
267 #elif(!defined(GLM_PRECISION_HIGHP_FLOAT) && !defined(GLM_PRECISION_MEDIUMP_FLOAT) && defined(GLM_PRECISION_LOWP_FLOAT))
-
268  typedef lowp_fdualquat dualquat;
-
269  typedef lowp_fdualquat fdualquat;
-
270 #else
-
271 # error "GLM error: multiple default precision requested for single-precision floating-point types"
-
272 #endif
-
273 
-
274 
-
275 #if(!defined(GLM_PRECISION_HIGHP_DOUBLE) && !defined(GLM_PRECISION_MEDIUMP_DOUBLE) && !defined(GLM_PRECISION_LOWP_DOUBLE))
-
276  typedef highp_ddualquat ddualquat;
-
280 #elif(defined(GLM_PRECISION_HIGHP_DOUBLE) && !defined(GLM_PRECISION_MEDIUMP_DOUBLE) && !defined(GLM_PRECISION_LOWP_DOUBLE))
-
281  typedef highp_ddualquat ddualquat;
-
282 #elif(!defined(GLM_PRECISION_HIGHP_DOUBLE) && defined(GLM_PRECISION_MEDIUMP_DOUBLE) && !defined(GLM_PRECISION_LOWP_DOUBLE))
- -
284 #elif(!defined(GLM_PRECISION_HIGHP_DOUBLE) && !defined(GLM_PRECISION_MEDIUMP_DOUBLE) && defined(GLM_PRECISION_LOWP_DOUBLE))
-
285  typedef lowp_ddualquat ddualquat;
-
286 #else
-
287 # error "GLM error: Multiple default precision requested for double-precision floating-point types"
-
288 #endif
-
289 
-
291 } //namespace glm
-
292 
-
293 #include "dual_quaternion.inl"
-
294 
-
295 #endif//GLM_GTX_dual_quaternion
-
detail::tdualquat< float, highp > highp_dualquat
Dual-quaternion of high single-precision floating-point numbers.
-
GLM_FUNC_DECL detail::tquat< T, P > lerp(detail::tquat< T, P > const &x, detail::tquat< T, P > const &y, T const &a)
Linear interpolation of two quaternions.
-
detail::tmat3x4< T, P > mat3x4_cast(detail::tdualquat< T, P > const &x)
Converts a quaternion to a 3 * 4 matrix.
-
detail::tdualquat< double, highp > highp_ddualquat
Dual-quaternion of high double-precision floating-point numbers.
-
highp_fdualquat fdualquat
Dual-quaternion of single-precision floating-point numbers.
-
detail::tdualquat< double, lowp > lowp_ddualquat
Dual-quaternion of low double-precision floating-point numbers.
-
detail::tmat4x4< T, P > orientation(detail::tvec3< T, P > const &Normal, detail::tvec3< T, P > const &Up)
Build a rotation matrix from a normal and a up vector.
-
GLM_FUNC_DECL genType normalize(genType const &x)
Returns a vector in the same direction as x but with length of 1.
-
detail::tdualquat< double, mediump > mediump_ddualquat
Dual-quaternion of medium double-precision floating-point numbers.
-
detail::tdualquat< float, lowp > lowp_dualquat
Dual-quaternion of low single-precision floating-point numbers.
-
GLM_FUNC_DECL genType::value_type length(genType const &x)
Returns the length of x, i.e., sqrt(x * x).
-
detail::tdualquat< T, P > dualquat_cast(detail::tmat2x4< T, P > const &x)
Converts a 2 * 4 matrix (matrix which holds real and dual parts) to a quaternion. ...
-
highp_ddualquat ddualquat
Dual-quaternion of default double-precision floating-point numbers.
-
detail::tmat2x4< T, P > mat2x4_cast(detail::tdualquat< T, P > const &x)
Converts a quaternion to a 2 * 4 matrix.
-
detail::tdualquat< float, mediump > mediump_fdualquat
Dual-quaternion of medium single-precision floating-point numbers.
-
detail::tdualquat< float, lowp > lowp_fdualquat
Dual-quaternion of low single-precision floating-point numbers.
-
detail::tdualquat< float, highp > highp_fdualquat
Dual-quaternion of high single-precision floating-point numbers.
-
detail::tdualquat< float, mediump > mediump_dualquat
Dual-quaternion of medium single-precision floating-point numbers.
-
highp_fdualquat dualquat
Dual-quaternion of floating-point numbers.
-
GLM_FUNC_DECL detail::tquat< T, P > inverse(detail::tquat< T, P > const &q)
Returns the q inverse.
+
33 #pragma once
+
34 
+ +
OpenGL Mathematics (glm.g-truc.net)
diff --git a/doc/api/a00022.html b/doc/api/a00022.html deleted file mode 100644 index 51fdb454..00000000 --- a/doc/api/a00022.html +++ /dev/null @@ -1,103 +0,0 @@ - - - - - - -GLM: epsilon.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-Namespaces | -Functions
-
-
gtc/epsilon.hpp File Reference
-
-
- -

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
- - - - - - - - - - - - - -

-Functions

template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< bool, P > epsilonEqual (vecType< T, P > const &x, vecType< T, P > const &y, T const &epsilon)
 
template<typename genType >
GLM_FUNC_DECL bool epsilonEqual (genType const &x, genType const &y, genType const &epsilon)
 
template<typename genType >
GLM_FUNC_DECL genType::boolType epsilonNotEqual (genType const &x, genType const &y, typename genType::value_type const &epsilon)
 
template<typename genType >
GLM_FUNC_DECL bool epsilonNotEqual (genType const &x, genType const &y, genType const &epsilon)
 
-

Detailed Description

-

OpenGL Mathematics (glm.g-truc.net)

-

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTC_epsilon

-
Date
2012-04-07 / 2012-04-07
-
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
-
-gtc_half_float (dependence)
-
-GLM_GTC_quaternion (dependence)
- -

Definition in file gtc/epsilon.hpp.

-
- - - - diff --git a/doc/api/a00022_source.html b/doc/api/a00022_source.html index 70d81122..b6d10565 100644 --- a/doc/api/a00022_source.html +++ b/doc/api/a00022_source.html @@ -3,8 +3,8 @@ - -GLM: epsilon.hpp Source File + +0.9.6: ext.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,67 +41,176 @@
-
gtc/epsilon.hpp
+
ext.hpp
-Go to the documentation of this file.
1 
-
40 #ifndef GLM_GTC_epsilon
-
41 #define GLM_GTC_epsilon
-
42 
-
43 // Dependencies
-
44 #include "../detail/setup.hpp"
-
45 #include "../detail/precision.hpp"
-
46 
-
47 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
48 # pragma message("GLM: GLM_GTC_epsilon extension included")
-
49 #endif
-
50 
-
51 namespace glm
-
52 {
-
55 
-
60  template <typename T, precision P, template <typename, precision> class vecType>
-
61  GLM_FUNC_DECL vecType<bool, P> epsilonEqual(
-
62  vecType<T, P> const & x,
-
63  vecType<T, P> const & y,
-
64  T const & epsilon);
-
65 
-
70  template <typename genType>
-
71  GLM_FUNC_DECL bool epsilonEqual(
-
72  genType const & x,
-
73  genType const & y,
-
74  genType const & epsilon);
-
75 
-
80  template <typename genType>
-
81  GLM_FUNC_DECL typename genType::boolType epsilonNotEqual(
-
82  genType const & x,
-
83  genType const & y,
-
84  typename genType::value_type const & epsilon);
-
85 
-
90  template <typename genType>
-
91  GLM_FUNC_DECL bool epsilonNotEqual(
-
92  genType const & x,
-
93  genType const & y,
-
94  genType const & epsilon);
-
95 
-
97 }//namespace glm
-
98 
-
99 #include "epsilon.inl"
-
100 
-
101 #endif//GLM_GTC_epsilon
-
GLM_FUNC_DECL genType epsilon()
Return the epsilon constant for floating point types.
-
GLM_FUNC_DECL vecType< bool, P > epsilonEqual(vecType< T, P > const &x, vecType< T, P > const &y, T const &epsilon)
Returns the component-wise comparison of |x - y| &lt; epsilon.
-
GLM_FUNC_DECL genType::boolType epsilonNotEqual(genType const &x, genType const &y, typename genType::value_type const &epsilon)
Returns the component-wise comparison of |x - y| &lt; epsilon.
+
1 
+
57 #pragma once
+
58 
+
59 #if(defined(GLM_MESSAGES) && !defined(GLM_MESSAGE_EXT_INCLUDED_DISPLAYED))
+
60 # define GLM_MESSAGE_EXT_INCLUDED_DISPLAYED
+
61 # pragma message("GLM: All extensions included (not recommanded)")
+
62 #endif//GLM_MESSAGES
+
63 
+
64 #include "./gtc/bitfield.hpp"
+
65 #include "./gtc/constants.hpp"
+
66 #include "./gtc/epsilon.hpp"
+
67 #include "./gtc/integer.hpp"
+
68 #include "./gtc/matrix_access.hpp"
+
69 #include "./gtc/matrix_integer.hpp"
+
70 #include "./gtc/matrix_inverse.hpp"
+ +
72 #include "./gtc/noise.hpp"
+
73 #include "./gtc/packing.hpp"
+
74 #include "./gtc/quaternion.hpp"
+
75 #include "./gtc/random.hpp"
+
76 #include "./gtc/reciprocal.hpp"
+
77 #include "./gtc/round.hpp"
+
78 #include "./gtc/type_precision.hpp"
+
79 #include "./gtc/type_ptr.hpp"
+
80 #include "./gtc/ulp.hpp"
+
81 #include "./gtc/vec1.hpp"
+
82 
+ +
84 #include "./gtx/bit.hpp"
+
85 #include "./gtx/closest_point.hpp"
+
86 #include "./gtx/color_space.hpp"
+ +
88 #include "./gtx/compatibility.hpp"
+
89 #include "./gtx/component_wise.hpp"
+ +
91 #include "./gtx/euler_angles.hpp"
+
92 #include "./gtx/extend.hpp"
+ + + + +
97 #include "./gtx/gradient_paint.hpp"
+ +
99 #include "./gtx/integer.hpp"
+
100 #include "./gtx/intersect.hpp"
+
101 #include "./gtx/log_base.hpp"
+ + + + +
106 #include "./gtx/matrix_query.hpp"
+
107 #include "./gtx/mixed_product.hpp"
+
108 #include "./gtx/norm.hpp"
+
109 #include "./gtx/normal.hpp"
+
110 #include "./gtx/normalize_dot.hpp"
+ +
112 #include "./gtx/optimum_pow.hpp"
+
113 #include "./gtx/orthonormalize.hpp"
+
114 #include "./gtx/perpendicular.hpp"
+ +
116 #include "./gtx/projection.hpp"
+
117 #include "./gtx/quaternion.hpp"
+
118 #include "./gtx/raw_data.hpp"
+
119 #include "./gtx/rotate_vector.hpp"
+
120 #include "./gtx/spline.hpp"
+
121 #include "./gtx/std_based_type.hpp"
+
122 #if !(GLM_COMPILER & GLM_COMPILER_CUDA)
+
123 # include "./gtx/string_cast.hpp"
+
124 #endif
+
125 #include "./gtx/transform.hpp"
+
126 #include "./gtx/transform2.hpp"
+
127 #include "./gtx/type_aligned.hpp"
+
128 #include "./gtx/vector_angle.hpp"
+
129 #include "./gtx/vector_query.hpp"
+
130 #include "./gtx/wrap.hpp"
+
131 
+
132 #if GLM_HAS_TEMPLATE_ALIASES
+ +
134 #endif
+
135 
+
136 #if GLM_HAS_RANGE_FOR
+
137 # include "./gtx/range.hpp"
+
138 #endif
+
139 
+
140 #if GLM_ARCH & GLM_ARCH_SSE2
+
141 # include "./gtx/simd_vec4.hpp"
+
142 # include "./gtx/simd_mat4.hpp"
+
143 #endif
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
diff --git a/doc/api/a00023.html b/doc/api/a00023.html new file mode 100644 index 00000000..f892cf04 --- /dev/null +++ b/doc/api/a00023.html @@ -0,0 +1,83 @@ + + + + + + +0.9.6: extend.hpp File Reference + + + + + + +
+
+ + + + + + + +
+
0.9.6 +
+
+
+ + + + + +
+
+ +
+
extend.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + +

+Functions

template<typename genType >
GLM_FUNC_DECL genType extend (genType const &Origin, genType const &Source, typename genType::value_type const Length)
 
+

Detailed Description

+

OpenGL Mathematics (glm.g-truc.net)

+

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+

GLM_GTX_extend

+
Date
2006-01-07 / 2011-06-07
+
Author
Christophe Riccio
+
See also
GLM Core (dependence)
+ +

Definition in file extend.hpp.

+
+ + + + diff --git a/doc/api/a00023_source.html b/doc/api/a00023_source.html index 7c679bc3..5b13ac6d 100644 --- a/doc/api/a00023_source.html +++ b/doc/api/a00023_source.html @@ -3,8 +3,8 @@ - -GLM: epsilon.hpp Source File + +0.9.6: extend.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,27 +41,44 @@
-
gtx/epsilon.hpp
+
extend.hpp
-
1 
-
24 #if(defined(GLM_MESSAGES))
-
25 # pragma message("GLM: GLM_GTX_epsilon extension is deprecated, include GLM_GTC_epsilon (glm/gtc/epsilon) instead")
-
26 #endif
-
27 
-
28 // Promoted:
-
29 #include "../gtc/epsilon.hpp"
+Go to the documentation of this file.
1 
+
42 #pragma once
+
43 
+
44 // Dependency:
+
45 #include "../glm.hpp"
+
46 
+
47 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+
48 # pragma message("GLM: GLM_GTX_extend extension included")
+
49 #endif
+
50 
+
51 namespace glm
+
52 {
+
55 
+
58  template <typename genType>
+
59  GLM_FUNC_DECL genType extend(
+
60  genType const & Origin,
+
61  genType const & Source,
+
62  typename genType::value_type const Length);
+
63 
+
65 }//namespace glm
+
66 
+
67 #include "extend.inl"
+
GLM_FUNC_DECL genType extend(genType const &Origin, genType const &Source, typename genType::value_type const Length)
Extends of Length the Origin position using the (Source - Origin) direction.
+
Definition: _noise.hpp:39
diff --git a/doc/api/a00024.html b/doc/api/a00024.html index 28f7fc26..f6891f1f 100644 --- a/doc/api/a00024.html +++ b/doc/api/a00024.html @@ -3,8 +3,8 @@ - -GLM: euler_angles.hpp File Reference + +0.9.6: extented_min_max.hpp File Reference @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,92 +41,78 @@
-Namespaces | Functions
-
euler_angles.hpp File Reference
+
extented_min_max.hpp File Reference

Go to the source code of this file.

- - - -

-Namespaces

 glm
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Functions

template<typename T >
detail::tmat4x4< T, defaultp > eulerAngleX (T const &angleX)
 
template<typename T >
detail::tmat4x4< T, defaultp > eulerAngleXY (T const &angleX, T const &angleY)
 
template<typename T >
detail::tmat4x4< T, defaultp > eulerAngleXZ (T const &angleX, T const &angleZ)
 
template<typename T >
detail::tmat4x4< T, defaultp > eulerAngleY (T const &angleY)
 
template<typename T >
detail::tmat4x4< T, defaultp > eulerAngleYX (T const &angleY, T const &angleX)
 
template<typename T >
detail::tmat4x4< T, defaultp > eulerAngleYXZ (T const &yaw, T const &pitch, T const &roll)
 
template<typename T >
detail::tmat4x4< T, defaultp > eulerAngleYZ (T const &angleY, T const &angleZ)
 
template<typename T >
detail::tmat4x4< T, defaultp > eulerAngleZ (T const &angleZ)
 
template<typename T >
detail::tmat4x4< T, defaultp > eulerAngleZX (T const &angle, T const &angleX)
 
template<typename T >
detail::tmat4x4< T, defaultp > eulerAngleZY (T const &angleZ, T const &angleY)
 
template<typename T >
detail::tmat2x2< T, defaultp > orientate2 (T const &angle)
 
template<typename T >
detail::tmat3x3< T, defaultp > orientate3 (T const &angle)
 
template<typename T , precision P>
detail::tmat3x3< T, P > orientate3 (detail::tvec3< T, P > const &angles)
 
template<typename T , precision P>
detail::tmat4x4< T, P > orientate4 (detail::tvec3< T, P > const &angles)
 
template<typename T >
detail::tmat4x4< T, defaultp > yawPitchRoll (T const &yaw, T const &pitch, T const &roll)
 
template<typename T >
GLM_FUNC_DECL T max (T const &x, T const &y, T const &z)
 
template<typename T , template< typename > class C>
GLM_FUNC_DECL C< T > max (C< T > const &x, typename C< T >::T const &y, typename C< T >::T const &z)
 
template<typename T , template< typename > class C>
GLM_FUNC_DECL C< T > max (C< T > const &x, C< T > const &y, C< T > const &z)
 
template<typename T >
GLM_FUNC_DECL T max (T const &x, T const &y, T const &z, T const &w)
 
template<typename T , template< typename > class C>
GLM_FUNC_DECL C< T > max (C< T > const &x, typename C< T >::T const &y, typename C< T >::T const &z, typename C< T >::T const &w)
 
template<typename T , template< typename > class C>
GLM_FUNC_DECL C< T > max (C< T > const &x, C< T > const &y, C< T > const &z, C< T > const &w)
 
template<typename T >
GLM_FUNC_DECL T min (T const &x, T const &y, T const &z)
 
template<typename T , template< typename > class C>
GLM_FUNC_DECL C< T > min (C< T > const &x, typename C< T >::T const &y, typename C< T >::T const &z)
 
template<typename T , template< typename > class C>
GLM_FUNC_DECL C< T > min (C< T > const &x, C< T > const &y, C< T > const &z)
 
template<typename T >
GLM_FUNC_DECL T min (T const &x, T const &y, T const &z, T const &w)
 
template<typename T , template< typename > class C>
GLM_FUNC_DECL C< T > min (C< T > const &x, typename C< T >::T const &y, typename C< T >::T const &z, typename C< T >::T const &w)
 
template<typename T , template< typename > class C>
GLM_FUNC_DECL C< T > min (C< T > const &x, C< T > const &y, C< T > const &z, C< T > const &w)
 

Detailed Description

OpenGL Mathematics (glm.g-truc.net)

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_euler_angles

-
Date
2005-12-21 / 2011-06-07
+

GLM_GTX_extented_min_max

+
Date
2007-03-14 / 2011-06-07
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
+
See also
GLM Core (dependence)
-gtc_half_float (dependence)
+gtx_half_float (dependence)
-

Definition in file euler_angles.hpp.

+

Definition in file extented_min_max.hpp.

diff --git a/doc/api/a00024_source.html b/doc/api/a00024_source.html index e295b215..8dbd8cdc 100644 --- a/doc/api/a00024_source.html +++ b/doc/api/a00024_source.html @@ -3,8 +3,8 @@ - -GLM: euler_angles.hpp Source File + +0.9.6: extented_min_max.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,123 +41,117 @@
-
euler_angles.hpp
+
extented_min_max.hpp
Go to the documentation of this file.
1 
-
39 #ifndef GLM_GTX_euler_angles
-
40 #define GLM_GTX_euler_angles
-
41 
-
42 // Dependency:
-
43 #include "../glm.hpp"
+
43 #pragma once
44 
-
45 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
46 # pragma message("GLM: GLM_GTX_euler_angles extension included")
-
47 #endif
-
48 
-
49 namespace glm
-
50 {
-
53 
-
56  template <typename T>
-
57  detail::tmat4x4<T, defaultp> eulerAngleX(
-
58  T const & angleX);
-
59 
-
62  template <typename T>
-
63  detail::tmat4x4<T, defaultp> eulerAngleY(
-
64  T const & angleY);
-
65 
-
68  template <typename T>
-
69  detail::tmat4x4<T, defaultp> eulerAngleZ(
-
70  T const & angleZ);
-
71 
-
74  template <typename T>
-
75  detail::tmat4x4<T, defaultp> eulerAngleXY(
-
76  T const & angleX,
-
77  T const & angleY);
-
78 
-
81  template <typename T>
-
82  detail::tmat4x4<T, defaultp> eulerAngleYX(
-
83  T const & angleY,
-
84  T const & angleX);
-
85 
-
88  template <typename T>
-
89  detail::tmat4x4<T, defaultp> eulerAngleXZ(
-
90  T const & angleX,
-
91  T const & angleZ);
-
92 
-
95  template <typename T>
-
96  detail::tmat4x4<T, defaultp> eulerAngleZX(
-
97  T const & angle,
-
98  T const & angleX);
-
99 
-
102  template <typename T>
-
103  detail::tmat4x4<T, defaultp> eulerAngleYZ(
-
104  T const & angleY,
-
105  T const & angleZ);
-
106 
-
109  template <typename T>
-
110  detail::tmat4x4<T, defaultp> eulerAngleZY(
-
111  T const & angleZ,
-
112  T const & angleY);
-
113 
-
116  template <typename T>
-
117  detail::tmat4x4<T, defaultp> eulerAngleYXZ(
-
118  T const & yaw,
-
119  T const & pitch,
-
120  T const & roll);
-
121 
-
124  template <typename T>
-
125  detail::tmat4x4<T, defaultp> yawPitchRoll(
-
126  T const & yaw,
-
127  T const & pitch,
-
128  T const & roll);
-
129 
-
132  template <typename T>
-
133  detail::tmat2x2<T, defaultp> orientate2(T const & angle);
-
134 
-
137  template <typename T>
-
138  detail::tmat3x3<T, defaultp> orientate3(T const & angle);
-
139 
-
142  template <typename T, precision P>
-
143  detail::tmat3x3<T, P> orientate3(detail::tvec3<T, P> const & angles);
-
144 
-
147  template <typename T, precision P>
-
148  detail::tmat4x4<T, P> orientate4(detail::tvec3<T, P> const & angles);
+
45 // Dependency:
+
46 #include "../glm.hpp"
+
47 
+
48 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+
49 # pragma message("GLM: GLM_GTX_extented_min_max extension included")
+
50 #endif
+
51 
+
52 namespace glm
+
53 {
+
56 
+
59  template <typename T>
+
60  GLM_FUNC_DECL T min(
+
61  T const & x,
+
62  T const & y,
+
63  T const & z);
+
64 
+
67  template <typename T, template <typename> class C>
+
68  GLM_FUNC_DECL C<T> min(
+
69  C<T> const & x,
+
70  typename C<T>::T const & y,
+
71  typename C<T>::T const & z);
+
72 
+
75  template <typename T, template <typename> class C>
+
76  GLM_FUNC_DECL C<T> min(
+
77  C<T> const & x,
+
78  C<T> const & y,
+
79  C<T> const & z);
+
80 
+
83  template <typename T>
+
84  GLM_FUNC_DECL T min(
+
85  T const & x,
+
86  T const & y,
+
87  T const & z,
+
88  T const & w);
+
89 
+
92  template <typename T, template <typename> class C>
+
93  GLM_FUNC_DECL C<T> min(
+
94  C<T> const & x,
+
95  typename C<T>::T const & y,
+
96  typename C<T>::T const & z,
+
97  typename C<T>::T const & w);
+
98 
+
101  template <typename T, template <typename> class C>
+
102  GLM_FUNC_DECL C<T> min(
+
103  C<T> const & x,
+
104  C<T> const & y,
+
105  C<T> const & z,
+
106  C<T> const & w);
+
107 
+
110  template <typename T>
+
111  GLM_FUNC_DECL T max(
+
112  T const & x,
+
113  T const & y,
+
114  T const & z);
+
115 
+
118  template <typename T, template <typename> class C>
+
119  GLM_FUNC_DECL C<T> max(
+
120  C<T> const & x,
+
121  typename C<T>::T const & y,
+
122  typename C<T>::T const & z);
+
123 
+
126  template <typename T, template <typename> class C>
+
127  GLM_FUNC_DECL C<T> max(
+
128  C<T> const & x,
+
129  C<T> const & y,
+
130  C<T> const & z);
+
131 
+
134  template <typename T>
+
135  GLM_FUNC_DECL T max(
+
136  T const & x,
+
137  T const & y,
+
138  T const & z,
+
139  T const & w);
+
140 
+
143  template <typename T, template <typename> class C>
+
144  GLM_FUNC_DECL C<T> max(
+
145  C<T> const & x,
+
146  typename C<T>::T const & y,
+
147  typename C<T>::T const & z,
+
148  typename C<T>::T const & w);
149 
-
151 }//namespace glm
-
152 
-
153 #include "euler_angles.inl"
-
154 
-
155 #endif//GLM_GTX_euler_angles
-
detail::tmat4x4< T, defaultp > yawPitchRoll(T const &yaw, T const &pitch, T const &roll)
Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z).
-
detail::tmat4x4< T, defaultp > eulerAngleZX(T const &angle, T const &angleX)
Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * X).
-
detail::tmat4x4< T, defaultp > eulerAngleYZ(T const &angleY, T const &angleZ)
Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * Z).
-
GLM_FUNC_DECL T angle(detail::tquat< T, P > const &x)
Returns the quaternion rotation angle.
-
detail::tmat4x4< T, defaultp > eulerAngleXY(T const &angleX, T const &angleY)
Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Y).
-
detail::tmat3x3< T, defaultp > orientate3(T const &angle)
Creates a 2D 4 * 4 homogeneous rotation matrix from an euler angle.
-
detail::tmat4x4< T, defaultp > eulerAngleZ(T const &angleZ)
Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle Z.
-
detail::tmat4x4< T, P > orientate4(detail::tvec3< T, P > const &angles)
Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z).
-
GLM_FUNC_DECL T roll(detail::tquat< T, P > const &x)
Returns roll value of euler angles expressed in radians if GLM_FORCE_RADIANS is defined or degrees ot...
-
detail::tmat4x4< T, defaultp > eulerAngleYXZ(T const &yaw, T const &pitch, T const &roll)
Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z).
-
detail::tmat4x4< T, defaultp > eulerAngleX(T const &angleX)
Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle X.
-
detail::tmat4x4< T, defaultp > eulerAngleYX(T const &angleY, T const &angleX)
Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X).
-
detail::tmat4x4< T, defaultp > eulerAngleY(T const &angleY)
Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle Y.
-
detail::tmat4x4< T, defaultp > eulerAngleZY(T const &angleZ, T const &angleY)
Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * Y).
-
GLM_FUNC_DECL T pitch(detail::tquat< T, P > const &x)
Returns pitch value of euler angles expressed in radians if GLM_FORCE_RADIANS is defined or degrees o...
-
detail::tmat2x2< T, defaultp > orientate2(T const &angle)
Creates a 2D 2 * 2 rotation matrix from an euler angle.
-
GLM_FUNC_DECL T yaw(detail::tquat< T, P > const &x)
Returns yaw value of euler angles expressed in radians if GLM_FORCE_RADIANS is defined or degrees oth...
-
detail::tmat4x4< T, defaultp > eulerAngleXZ(T const &angleX, T const &angleZ)
Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Z).
+
152  template <typename T, template <typename> class C>
+
153  GLM_FUNC_DECL C<T> max(
+
154  C<T> const & x,
+
155  C<T> const & y,
+
156  C<T> const & z,
+
157  C<T> const & w);
+
158 
+
160 }//namespace glm
+
161 
+
162 #include "extented_min_max.inl"
+
GLM_FUNC_DECL C< T > max(C< T > const &x, C< T > const &y, C< T > const &z, C< T > const &w)
Return the maximum component-wise values of 4 inputs.
+
Definition: _noise.hpp:39
+
GLM_FUNC_DECL C< T > min(C< T > const &x, C< T > const &y, C< T > const &z, C< T > const &w)
Return the minimum component-wise values of 4 inputs.
diff --git a/doc/api/a00025.html b/doc/api/a00025.html index 1374d566..4ba975ee 100644 --- a/doc/api/a00025.html +++ b/doc/api/a00025.html @@ -3,8 +3,8 @@ - -GLM: exponential.hpp File Reference + +0.9.6: fast_exponential.hpp File Reference @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,32 +41,78 @@
+
+Functions
-
exponential.hpp File Reference
+
fast_exponential.hpp File Reference

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename T >
GLM_FUNC_DECL T fastExp (T x)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > fastExp (vecType< T, P > const &x)
 
template<typename T >
GLM_FUNC_DECL T fastExp2 (T x)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > fastExp2 (vecType< T, P > const &x)
 
template<typename T >
GLM_FUNC_DECL T fastLog (T x)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > fastLog (vecType< T, P > const &x)
 
template<typename T >
GLM_FUNC_DECL T fastLog2 (T x)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > fastLog2 (vecType< T, P > const &x)
 
template<typename genType >
GLM_FUNC_DECL genType fastPow (genType x, genType y)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > fastPow (vecType< T, P > const &x, vecType< T, P > const &y)
 
template<typename genTypeT , typename genTypeU >
GLM_FUNC_DECL genTypeT fastPow (genTypeT x, genTypeU y)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > fastPow (vecType< T, P > const &x)
 

Detailed Description

OpenGL Mathematics (glm.g-truc.net)

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM Core

-
Date
2013-12-24 / 2013-12-24
-
Author
Christophe Riccio
+

GLM_GTX_fast_exponential

+
Date
2006-01-09 / 2011-06-07
+
Author
Christophe Riccio
+
See also
GLM Core (dependence)
+
+gtx_half_float (dependence)
-

Definition in file exponential.hpp.

+

Definition in file fast_exponential.hpp.

diff --git a/doc/api/a00025_source.html b/doc/api/a00025_source.html index d7f20e73..0b823038 100644 --- a/doc/api/a00025_source.html +++ b/doc/api/a00025_source.html @@ -3,8 +3,8 @@ - -GLM: exponential.hpp Source File + +0.9.6: fast_exponential.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,27 +41,78 @@
-
exponential.hpp
+
fast_exponential.hpp
Go to the documentation of this file.
1 
-
29 #ifndef GLM_EXPONENTIAL_INCLUDED
-
30 #define GLM_EXPONENTIAL_INCLUDED
-
31 
-
32 #include "detail/func_exponential.hpp"
-
33 
-
34 #endif//GLM_EXPONENTIAL_INCLUDED
+
43 #pragma once
+
44 
+
45 // Dependency:
+
46 #include "../glm.hpp"
+
47 
+
48 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+
49 # pragma message("GLM: GLM_GTX_fast_exponential extension included")
+
50 #endif
+
51 
+
52 namespace glm
+
53 {
+
56 
+
59  template <typename genType>
+
60  GLM_FUNC_DECL genType fastPow(genType x, genType y);
+
61 
+
64  template <typename T, precision P, template <typename, precision> class vecType>
+
65  GLM_FUNC_DECL vecType<T, P> fastPow(vecType<T, P> const & x, vecType<T, P> const & y);
+
66 
+
69  template <typename genTypeT, typename genTypeU>
+
70  GLM_FUNC_DECL genTypeT fastPow(genTypeT x, genTypeU y);
+
71 
+
74  template <typename T, precision P, template <typename, precision> class vecType>
+
75  GLM_FUNC_DECL vecType<T, P> fastPow(vecType<T, P> const & x);
+
76 
+
79  template <typename T>
+
80  GLM_FUNC_DECL T fastExp(T x);
+
81 
+
84  template <typename T, precision P, template <typename, precision> class vecType>
+
85  GLM_FUNC_DECL vecType<T, P> fastExp(vecType<T, P> const & x);
+
86 
+
89  template <typename T>
+
90  GLM_FUNC_DECL T fastLog(T x);
+
91 
+
94  template <typename T, precision P, template <typename, precision> class vecType>
+
95  GLM_FUNC_DECL vecType<T, P> fastLog(vecType<T, P> const & x);
+
96 
+
99  template <typename T>
+
100  GLM_FUNC_DECL T fastExp2(T x);
+
101 
+
104  template <typename T, precision P, template <typename, precision> class vecType>
+
105  GLM_FUNC_DECL vecType<T, P> fastExp2(vecType<T, P> const & x);
+
106 
+
109  template <typename T>
+
110  GLM_FUNC_DECL T fastLog2(T x);
+
111 
+
114  template <typename T, precision P, template <typename, precision> class vecType>
+
115  GLM_FUNC_DECL vecType<T, P> fastLog2(vecType<T, P> const & x);
+
116 
+
118 }//namespace glm
+
119 
+
120 #include "fast_exponential.inl"
+
GLM_FUNC_DECL vecType< T, P > fastLog2(vecType< T, P > const &x)
Faster than the common log2 function but less accurate.
+
GLM_FUNC_DECL vecType< T, P > fastExp2(vecType< T, P > const &x)
Faster than the common exp2 function but less accurate.
+
GLM_FUNC_DECL vecType< T, P > fastPow(vecType< T, P > const &x)
Faster than the common pow function but less accurate.
+
Definition: _noise.hpp:39
+
GLM_FUNC_DECL vecType< T, P > fastLog(vecType< T, P > const &x)
Faster than the common exp2 function but less accurate.
+
GLM_FUNC_DECL vecType< T, P > fastExp(vecType< T, P > const &x)
Faster than the common exp function but less accurate.
diff --git a/doc/api/a00026.html b/doc/api/a00026.html new file mode 100644 index 00000000..a834b7c8 --- /dev/null +++ b/doc/api/a00026.html @@ -0,0 +1,107 @@ + + + + + + +0.9.6: fast_square_root.hpp File Reference + + + + + + +
+
+ + + + + + + +
+
0.9.6 +
+
+
+ + + + + +
+
+
+Functions
+
+
fast_square_root.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename genType >
GLM_FUNC_DECL genType fastDistance (genType x, genType y)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL T fastDistance (vecType< T, P > const &x, vecType< T, P > const &y)
 
template<typename genType >
GLM_FUNC_DECL genType fastInverseSqrt (genType x)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > fastInverseSqrt (vecType< T, P > const &x)
 
template<typename genType >
GLM_FUNC_DECL genType fastLength (genType x)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL T fastLength (vecType< T, P > const &x)
 
template<typename genType >
GLM_FUNC_DECL genType fastNormalize (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType fastSqrt (genType x)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > fastSqrt (vecType< T, P > const &x)
 
+

Detailed Description

+

OpenGL Mathematics (glm.g-truc.net)

+

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+

GLM_GTX_fast_square_root

+
Date
2006-01-04 / 2011-06-07
+
Author
Christophe Riccio
+
See also
GLM Core (dependence)
+ +

Definition in file fast_square_root.hpp.

+
+ + + + diff --git a/doc/api/a00026_source.html b/doc/api/a00026_source.html index e7835c63..260e3522 100644 --- a/doc/api/a00026_source.html +++ b/doc/api/a00026_source.html @@ -3,8 +3,8 @@ - -GLM: ext.hpp Source File + +0.9.6: fast_square_root.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,162 +41,71 @@
-
ext.hpp
+
fast_square_root.hpp
-
1 
-
58 #ifndef GLM_EXT_INCLUDED
-
59 #define GLM_EXT_INCLUDED
-
60 
-
61 #if(defined(GLM_MESSAGES) && !defined(GLM_MESSAGE_EXT_INCLUDED_DISPLAYED))
-
62 # define GLM_MESSAGE_EXT_INCLUDED_DISPLAYED
-
63 # pragma message("GLM: All extensions included (not recommanded)")
-
64 #endif//GLM_MESSAGES
-
65 
-
66 #include "./gtc/constants.hpp"
-
67 #include "./gtc/epsilon.hpp"
-
68 #include "./gtc/matrix_access.hpp"
-
69 #include "./gtc/matrix_integer.hpp"
-
70 #include "./gtc/matrix_inverse.hpp"
- -
72 #include "./gtc/noise.hpp"
-
73 #include "./gtc/packing.hpp"
-
74 #include "./gtc/quaternion.hpp"
-
75 #include "./gtc/random.hpp"
-
76 #include "./gtc/reciprocal.hpp"
-
77 #include "./gtc/type_precision.hpp"
-
78 #include "./gtc/type_ptr.hpp"
-
79 #include "./gtc/ulp.hpp"
-
80 
- -
82 #include "./gtx/bit.hpp"
-
83 #include "./gtx/closest_point.hpp"
-
84 #include "./gtx/color_space.hpp"
- -
86 #include "./gtx/compatibility.hpp"
-
87 #include "./gtx/component_wise.hpp"
- -
89 #include "./gtx/euler_angles.hpp"
-
90 #include "./gtx/extend.hpp"
- - - - -
95 #include "./gtx/gradient_paint.hpp"
- -
97 #include "./gtx/inertia.hpp"
-
98 #include "./gtx/int_10_10_10_2.hpp"
-
99 #include "./gtx/integer.hpp"
-
100 #include "./gtx/intersect.hpp"
-
101 #include "./gtx/log_base.hpp"
- - - - -
106 #include "./gtx/matrix_query.hpp"
-
107 #include "./gtx/mixed_product.hpp"
-
108 #include "./gtx/multiple.hpp"
-
109 #include "./gtx/norm.hpp"
-
110 #include "./gtx/normal.hpp"
-
111 #include "./gtx/normalize_dot.hpp"
- -
113 #include "./gtx/optimum_pow.hpp"
-
114 #include "./gtx/orthonormalize.hpp"
-
115 #include "./gtx/perpendicular.hpp"
- -
117 #include "./gtx/projection.hpp"
-
118 #include "./gtx/quaternion.hpp"
-
119 #include "./gtx/raw_data.hpp"
-
120 #include "./gtx/rotate_vector.hpp"
-
121 #include "./gtx/spline.hpp"
-
122 #include "./gtx/std_based_type.hpp"
-
123 #include "./gtx/string_cast.hpp"
-
124 #include "./gtx/transform.hpp"
-
125 #include "./gtx/transform2.hpp"
-
126 #include "./gtx/vec1.hpp"
-
127 #include "./gtx/vector_angle.hpp"
-
128 #include "./gtx/vector_query.hpp"
-
129 #include "./gtx/wrap.hpp"
-
130 
-
131 #if(GLM_ARCH & GLM_ARCH_SSE2)
-
132 # include "./gtx/simd_vec4.hpp"
-
133 # include "./gtx/simd_mat4.hpp"
-
134 #endif
-
135 
-
136 #endif //GLM_EXT_INCLUDED
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
+Go to the documentation of this file.
1 
+
44 #pragma once
+
45 
+
46 // Dependency:
+
47 #include "../common.hpp"
+
48 #include "../exponential.hpp"
+
49 #include "../geometric.hpp"
+
50 
+
51 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+
52 # pragma message("GLM: GLM_GTX_fast_square_root extension included")
+
53 #endif
+
54 
+
55 namespace glm
+
56 {
+
59 
+
63  template <typename genType>
+
64  GLM_FUNC_DECL genType fastSqrt(genType x);
+
65 
+
69  template <typename T, precision P, template <typename, precision> class vecType>
+
70  GLM_FUNC_DECL vecType<T, P> fastSqrt(vecType<T, P> const & x);
+
71 
+
75  template <typename genType>
+
76  GLM_FUNC_DECL genType fastInverseSqrt(genType x);
+
77 
+
81  template <typename T, precision P, template <typename, precision> class vecType>
+
82  GLM_FUNC_DECL vecType<T, P> fastInverseSqrt(vecType<T, P> const & x);
+
83 
+
87  template <typename genType>
+
88  GLM_FUNC_DECL genType fastLength(genType x);
+
89 
+
93  template <typename T, precision P, template <typename, precision> class vecType>
+
94  GLM_FUNC_DECL T fastLength(vecType<T, P> const & x);
+
95 
+
99  template <typename genType>
+
100  GLM_FUNC_DECL genType fastDistance(genType x, genType y);
+
101 
+
105  template <typename T, precision P, template <typename, precision> class vecType>
+
106  GLM_FUNC_DECL T fastDistance(vecType<T, P> const & x, vecType<T, P> const & y);
+
107 
+
111  template <typename genType>
+
112  GLM_FUNC_DECL genType fastNormalize(genType const & x);
+
113 
+
115 }// namespace glm
+
116 
+
117 #include "fast_square_root.inl"
+
GLM_FUNC_DECL T fastLength(vecType< T, P > const &x)
Faster than the common length function but less accurate.
+
GLM_FUNC_DECL vecType< T, P > fastSqrt(vecType< T, P > const &x)
Faster than the common sqrt function but less accurate.
+
GLM_FUNC_DECL T fastDistance(vecType< T, P > const &x, vecType< T, P > const &y)
Faster than the common distance function but less accurate.
+
GLM_FUNC_DECL genType fastNormalize(genType const &x)
Faster than the common normalize function but less accurate.
+
Definition: _noise.hpp:39
+
GLM_FUNC_DECL vecType< T, P > fastInverseSqrt(vecType< T, P > const &x)
Faster than the common inversesqrt function but less accurate.
diff --git a/doc/api/a00027.html b/doc/api/a00027.html index 21f97e28..d10e0ef9 100644 --- a/doc/api/a00027.html +++ b/doc/api/a00027.html @@ -3,8 +3,8 @@ - -GLM: extend.hpp File Reference + +0.9.6: fast_trigonometry.hpp File Reference @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,48 +41,64 @@
-Namespaces | Functions
-
extend.hpp File Reference
+
fast_trigonometry.hpp File Reference

Go to the source code of this file.

- - - -

-Namespaces

 glm
 
- - - + + + + + + + + + + + + + + + + + + + + + + + +

Functions

template<typename genType >
GLM_FUNC_DECL genType extend (genType const &Origin, genType const &Source, typename genType::value_type const Length)
 
template<typename T >
GLM_FUNC_DECL T fastAcos (T angle)
 
template<typename T >
GLM_FUNC_DECL T fastAsin (T angle)
 
template<typename T >
GLM_FUNC_DECL T fastAtan (T y, T x)
 
template<typename T >
GLM_FUNC_DECL T fastAtan (T angle)
 
template<typename T >
GLM_FUNC_DECL T fastCos (T angle)
 
template<typename T >
GLM_FUNC_DECL T fastSin (T angle)
 
template<typename T >
GLM_FUNC_DECL T fastTan (T angle)
 
template<typename T >
GLM_FUNC_DECL T wrapAngle (T angle)
 

Detailed Description

OpenGL Mathematics (glm.g-truc.net)

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_extend

-
Date
2006-01-07 / 2011-06-07
+

GLM_GTX_fast_trigonometry

+
Date
2006-01-08 / 2011-06-07
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
+
See also
GLM Core (dependence)
-

Definition in file extend.hpp.

+

Definition in file fast_trigonometry.hpp.

diff --git a/doc/api/a00027_source.html b/doc/api/a00027_source.html index 31a8c9bb..968720bd 100644 --- a/doc/api/a00027_source.html +++ b/doc/api/a00027_source.html @@ -3,8 +3,8 @@ - -GLM: extend.hpp Source File + +0.9.6: fast_trigonometry.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,46 +41,69 @@
-
extend.hpp
+
fast_trigonometry.hpp
Go to the documentation of this file.
1 
-
38 #ifndef GLM_GTX_extend
-
39 #define GLM_GTX_extend
-
40 
-
41 // Dependency:
-
42 #include "../glm.hpp"
+
42 #pragma once
43 
-
44 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
45 # pragma message("GLM: GLM_GTX_extend extension included")
-
46 #endif
-
47 
-
48 namespace glm
-
49 {
-
52 
-
55  template <typename genType>
-
56  GLM_FUNC_DECL genType extend(
-
57  genType const & Origin,
-
58  genType const & Source,
-
59  typename genType::value_type const Length);
+
44 // Dependency:
+
45 #include "../gtc/constants.hpp"
+
46 
+
47 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+
48 # pragma message("GLM: GLM_GTX_fast_trigonometry extension included")
+
49 #endif
+
50 
+
51 namespace glm
+
52 {
+
55 
+
58  template <typename T>
+
59  GLM_FUNC_DECL T wrapAngle(T angle);
60 
-
62 }//namespace glm
-
63 
-
64 #include "extend.inl"
+
63  template <typename T>
+
64  GLM_FUNC_DECL T fastSin(T angle);
65 
-
66 #endif//GLM_GTX_extend
-
GLM_FUNC_DECL genType extend(genType const &Origin, genType const &Source, typename genType::value_type const Length)
Extends of Length the Origin position using the (Source - Origin) direction.
+
68  template <typename T>
+
69  GLM_FUNC_DECL T fastCos(T angle);
+
70 
+
74  template <typename T>
+
75  GLM_FUNC_DECL T fastTan(T angle);
+
76 
+
80  template <typename T>
+
81  GLM_FUNC_DECL T fastAsin(T angle);
+
82 
+
86  template <typename T>
+
87  GLM_FUNC_DECL T fastAcos(T angle);
+
88 
+
92  template <typename T>
+
93  GLM_FUNC_DECL T fastAtan(T y, T x);
+
94 
+
98  template <typename T>
+
99  GLM_FUNC_DECL T fastAtan(T angle);
+
100 
+
102 }//namespace glm
+
103 
+
104 #include "fast_trigonometry.inl"
+
GLM_FUNC_DECL T fastSin(T angle)
Faster than the common sin function but less accurate.
+
GLM_FUNC_DECL T fastCos(T angle)
Faster than the common cos function but less accurate.
+
GLM_FUNC_DECL T fastAsin(T angle)
Faster than the common asin function but less accurate.
+
GLM_FUNC_DECL T fastTan(T angle)
Faster than the common tan function but less accurate.
+
GLM_FUNC_DECL T angle(tquat< T, P > const &x)
Returns the quaternion rotation angle.
+
GLM_FUNC_DECL T fastAtan(T angle)
Faster than the common atan function but less accurate.
+
Definition: _noise.hpp:39
+
GLM_FUNC_DECL T wrapAngle(T angle)
Wrap an angle to [0 2pi[ From GLM_GTX_fast_trigonometry extension.
+
GLM_FUNC_DECL T fastAcos(T angle)
Faster than the common acos function but less accurate.
diff --git a/doc/api/a00028.html b/doc/api/a00028.html index 7cfaa141..9df55aed 100644 --- a/doc/api/a00028.html +++ b/doc/api/a00028.html @@ -3,8 +3,8 @@ - -GLM: extented_min_max.hpp File Reference + +0.9.6: func_common.hpp File Reference @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,83 +41,135 @@
-Namespaces | Functions
-
extented_min_max.hpp File Reference
+
func_common.hpp File Reference

Go to the source code of this file.

- - - -

-Namespaces

 glm
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Functions

template<typename T >
max (T const &x, T const &y, T const &z)
 
template<typename T , template< typename > class C>
C< T > max (C< T > const &x, typename C< T >::T const &y, typename C< T >::T const &z)
 
template<typename T , template< typename > class C>
C< T > max (C< T > const &x, C< T > const &y, C< T > const &z)
 
template<typename T >
max (T const &x, T const &y, T const &z, T const &w)
 
template<typename T , template< typename > class C>
C< T > max (C< T > const &x, typename C< T >::T const &y, typename C< T >::T const &z, typename C< T >::T const &w)
 
template<typename T , template< typename > class C>
C< T > max (C< T > const &x, C< T > const &y, C< T > const &z, C< T > const &w)
 
template<typename T >
min (T const &x, T const &y, T const &z)
 
template<typename T , template< typename > class C>
C< T > min (C< T > const &x, typename C< T >::T const &y, typename C< T >::T const &z)
 
template<typename T , template< typename > class C>
C< T > min (C< T > const &x, C< T > const &y, C< T > const &z)
 
template<typename T >
min (T const &x, T const &y, T const &z, T const &w)
 
template<typename T , template< typename > class C>
C< T > min (C< T > const &x, typename C< T >::T const &y, typename C< T >::T const &z, typename C< T >::T const &w)
 
template<typename T , template< typename > class C>
C< T > min (C< T > const &x, C< T > const &y, C< T > const &z, C< T > const &w)
 
template<typename genType >
GLM_FUNC_DECL genType abs (genType x)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > ceil (vecType< T, P > const &x)
 
template<typename genType >
GLM_FUNC_DECL genType clamp (genType x, genType minVal, genType maxVal)
 
GLM_FUNC_DECL int floatBitsToInt (float const &v)
 
template<template< typename, precision > class vecType, precision P>
GLM_FUNC_DECL vecType< int, P > floatBitsToInt (vecType< float, P > const &v)
 
GLM_FUNC_DECL uint floatBitsToUint (float const &v)
 
template<template< typename, precision > class vecType, precision P>
GLM_FUNC_DECL vecType< uint, P > floatBitsToUint (vecType< float, P > const &v)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > floor (vecType< T, P > const &x)
 
template<typename genType >
GLM_FUNC_DECL genType fma (genType const &a, genType const &b, genType const &c)
 
template<typename genType >
GLM_FUNC_DECL genType fract (genType x)
 
template<typename genType , typename genIType >
GLM_FUNC_DECL genType frexp (genType const &x, genIType &exp)
 
GLM_FUNC_DECL float intBitsToFloat (int const &v)
 
template<template< typename, precision > class vecType, precision P>
GLM_FUNC_DECL vecType< float, P > intBitsToFloat (vecType< int, P > const &v)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< bool, P > isinf (vecType< T, P > const &x)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< bool, P > isnan (vecType< T, P > const &x)
 
template<typename genType , typename genIType >
GLM_FUNC_DECL genType ldexp (genType const &x, genIType const &exp)
 
template<typename genType >
GLM_FUNC_DECL genType max (genType x, genType y)
 
template<typename genType >
GLM_FUNC_DECL genType min (genType x, genType y)
 
template<typename T , typename U , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > mix (vecType< T, P > const &x, vecType< T, P > const &y, vecType< U, P > const &a)
 
template<typename genType >
GLM_FUNC_DECL genType mod (genType x, genType y)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > mod (vecType< T, P > const &x, T y)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > mod (vecType< T, P > const &x, vecType< T, P > const &y)
 
template<typename genType >
GLM_FUNC_DECL genType modf (genType x, genType &i)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > round (vecType< T, P > const &x)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > roundEven (vecType< T, P > const &x)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > sign (vecType< T, P > const &x)
 
template<typename genType >
GLM_FUNC_DECL genType smoothstep (genType edge0, genType edge1, genType x)
 
template<typename genType >
GLM_FUNC_DECL genType step (genType edge, genType x)
 
template<template< typename, precision > class vecType, typename T , precision P>
GLM_FUNC_DECL vecType< T, P > step (T edge, vecType< T, P > const &x)
 
template<template< typename, precision > class vecType, typename T , precision P>
GLM_FUNC_DECL vecType< T, P > step (vecType< T, P > const &edge, vecType< T, P > const &x)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > trunc (vecType< T, P > const &x)
 
GLM_FUNC_DECL float uintBitsToFloat (uint const &v)
 
template<template< typename, precision > class vecType, precision P>
GLM_FUNC_DECL vecType< float, P > uintBitsToFloat (vecType< uint, P > const &v)
 

Detailed Description

OpenGL Mathematics (glm.g-truc.net)

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_extented_min_max

-
Date
2007-03-14 / 2011-06-07
+

GLM Core

+
Date
2008-03-08 / 2010-01-26
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
-
-gtx_half_float (dependence)
+
See also
GLSL 4.20.8 specification, section 8.3 Common Functions
-

Definition in file extented_min_max.hpp.

+

Definition in file func_common.hpp.

diff --git a/doc/api/a00028_source.html b/doc/api/a00028_source.html index c60e44f5..9f97e376 100644 --- a/doc/api/a00028_source.html +++ b/doc/api/a00028_source.html @@ -3,8 +3,8 @@ - -GLM: extented_min_max.hpp Source File + +0.9.6: func_common.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,151 +41,198 @@
-
extented_min_max.hpp
+
func_common.hpp
Go to the documentation of this file.
1 
-
39 #ifndef GLM_GTX_extented_min_max
-
40 #define GLM_GTX_extented_min_max
-
41 
-
42 // Dependency:
-
43 #include "../glm.hpp"
-
44 
-
45 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
46 # pragma message("GLM: GLM_GTX_extented_min_max extension included")
-
47 #endif
-
48 
-
49 namespace glm
-
50 {
-
53 
-
56  template <typename T>
-
57  T min(
-
58  T const & x,
-
59  T const & y,
-
60  T const & z);
-
61 
-
64  template
-
65  <
-
66  typename T,
-
67  template <typename> class C
-
68  >
-
69  C<T> min(
-
70  C<T> const & x,
-
71  typename C<T>::T const & y,
-
72  typename C<T>::T const & z);
-
73 
-
76  template
-
77  <
-
78  typename T,
-
79  template <typename> class C
-
80  >
-
81  C<T> min(
-
82  C<T> const & x,
-
83  C<T> const & y,
-
84  C<T> const & z);
-
85 
-
88  template <typename T>
-
89  T min(
-
90  T const & x,
-
91  T const & y,
-
92  T const & z,
-
93  T const & w);
-
94 
-
97  template
-
98  <
-
99  typename T,
-
100  template <typename> class C
-
101  >
-
102  C<T> min(
-
103  C<T> const & x,
-
104  typename C<T>::T const & y,
-
105  typename C<T>::T const & z,
-
106  typename C<T>::T const & w);
-
107 
-
110  template
-
111  <
-
112  typename T,
-
113  template <typename> class C
-
114  >
-
115  C<T> min(
-
116  C<T> const & x,
-
117  C<T> const & y,
-
118  C<T> const & z,
-
119  C<T> const & w);
-
120 
-
123  template <typename T>
-
124  T max(
-
125  T const & x,
-
126  T const & y,
-
127  T const & z);
-
128 
-
131  template
-
132  <
-
133  typename T,
-
134  template <typename> class C
-
135  >
-
136  C<T> max(
-
137  C<T> const & x,
-
138  typename C<T>::T const & y,
-
139  typename C<T>::T const & z);
-
140 
-
143  template
-
144  <
-
145  typename T,
-
146  template <typename> class C
-
147  >
-
148  C<T> max(
-
149  C<T> const & x,
-
150  C<T> const & y,
-
151  C<T> const & z);
-
152 
-
155  template <typename T>
-
156  T max(
-
157  T const & x,
-
158  T const & y,
-
159  T const & z,
-
160  T const & w);
-
161 
-
164  template
-
165  <
-
166  typename T,
-
167  template <typename> class C
-
168  >
-
169  C<T> max(
-
170  C<T> const & x,
-
171  typename C<T>::T const & y,
-
172  typename C<T>::T const & z,
-
173  typename C<T>::T const & w);
-
174 
-
177  template
-
178  <
-
179  typename T,
-
180  template <typename> class C
-
181  >
-
182  C<T> max(
-
183  C<T> const & x,
-
184  C<T> const & y,
-
185  C<T> const & z,
-
186  C<T> const & w);
-
187 
-
189 }//namespace glm
+
40 #pragma once
+
41 
+
42 #include "setup.hpp"
+
43 #include "precision.hpp"
+
44 #include "type_int.hpp"
+
45 #include "_fixes.hpp"
+
46 
+
47 namespace glm
+
48 {
+
51 
+
58  template <typename genType>
+
59  GLM_FUNC_DECL genType abs(genType x);
+
60 
+
61  template <typename T, precision P, template <typename, precision> class vecType>
+
62  GLM_FUNC_DECL vecType<T, P> abs(vecType<T, P> const & x);
+
63 
+
70  template <typename T, precision P, template <typename, precision> class vecType>
+
71  GLM_FUNC_DECL vecType<T, P> sign(vecType<T, P> const & x);
+
72 
+
79  template <typename T, precision P, template <typename, precision> class vecType>
+
80  GLM_FUNC_DECL vecType<T, P> floor(vecType<T, P> const & x);
+
81 
+
89  template <typename T, precision P, template <typename, precision> class vecType>
+
90  GLM_FUNC_DECL vecType<T, P> trunc(vecType<T, P> const & x);
+
91 
+
102  template <typename T, precision P, template <typename, precision> class vecType>
+
103  GLM_FUNC_DECL vecType<T, P> round(vecType<T, P> const & x);
+
104 
+
114  template <typename T, precision P, template <typename, precision> class vecType>
+
115  GLM_FUNC_DECL vecType<T, P> roundEven(vecType<T, P> const & x);
+
116 
+
124  template <typename T, precision P, template <typename, precision> class vecType>
+
125  GLM_FUNC_DECL vecType<T, P> ceil(vecType<T, P> const & x);
+
126 
+
133  template <typename genType>
+
134  GLM_FUNC_DECL genType fract(genType x);
+
135 
+
136  template <typename T, precision P, template <typename, precision> class vecType>
+
137  GLM_FUNC_DECL vecType<T, P> fract(vecType<T, P> const & x);
+
138 
+
146  template <typename genType>
+
147  GLM_FUNC_DECL genType mod(genType x, genType y);
+
148 
+
149  template <typename T, precision P, template <typename, precision> class vecType>
+
150  GLM_FUNC_DECL vecType<T, P> mod(vecType<T, P> const & x, T y);
+
151 
+
152  template <typename T, precision P, template <typename, precision> class vecType>
+
153  GLM_FUNC_DECL vecType<T, P> mod(vecType<T, P> const & x, vecType<T, P> const & y);
+
154 
+
164  template <typename genType>
+
165  GLM_FUNC_DECL genType modf(genType x, genType & i);
+
166 
+
173  template <typename genType>
+
174  GLM_FUNC_DECL genType min(genType x, genType y);
+
175 
+
176  template <typename T, precision P, template <typename, precision> class vecType>
+
177  GLM_FUNC_DECL vecType<T, P> min(vecType<T, P> const & x, T y);
+
178 
+
179  template <typename T, precision P, template <typename, precision> class vecType>
+
180  GLM_FUNC_DECL vecType<T, P> min(vecType<T, P> const & x, vecType<T, P> const & y);
+
181 
+
188  template <typename genType>
+
189  GLM_FUNC_DECL genType max(genType x, genType y);
190 
-
191 #include "extented_min_max.inl"
-
192 
-
193 #endif//GLM_GTX_extented_min_max
-
GLM_FUNC_DECL genType max(genType const &x, genType const &y)
Returns y if x &lt; y; otherwise, it returns x.
-
GLM_FUNC_DECL genType min(genType const &x, genType const &y)
Returns y if y &lt; x; otherwise, it returns x.
+
191  template <typename T, precision P, template <typename, precision> class vecType>
+
192  GLM_FUNC_DECL vecType<T, P> max(vecType<T, P> const & x, T y);
+
193 
+
194  template <typename T, precision P, template <typename, precision> class vecType>
+
195  GLM_FUNC_DECL vecType<T, P> max(vecType<T, P> const & x, vecType<T, P> const & y);
+
196 
+
204  template <typename genType>
+
205  GLM_FUNC_DECL genType clamp(genType x, genType minVal, genType maxVal);
+
206 
+
207  template <typename T, precision P, template <typename, precision> class vecType>
+
208  GLM_FUNC_DECL vecType<T, P> clamp(vecType<T, P> const & x, T minVal, T maxVal);
+
209 
+
210  template <typename T, precision P, template <typename, precision> class vecType>
+
211  GLM_FUNC_DECL vecType<T, P> clamp(vecType<T, P> const & x, vecType<T, P> const & minVal, vecType<T, P> const & maxVal);
+
212 
+
255  template <typename T, typename U, precision P, template <typename, precision> class vecType>
+
256  GLM_FUNC_DECL vecType<T, P> mix(vecType<T, P> const & x, vecType<T, P> const & y, vecType<U, P> const & a);
+
257 
+
258  template <typename T, typename U, precision P, template <typename, precision> class vecType>
+
259  GLM_FUNC_DECL vecType<T, P> mix(vecType<T, P> const & x, vecType<T, P> const & y, U a);
+
260 
+
261  template <typename genTypeT, typename genTypeU>
+
262  GLM_FUNC_DECL genTypeT mix(genTypeT x, genTypeT y, genTypeU a);
+
263 
+
268  template <typename genType>
+
269  GLM_FUNC_DECL genType step(genType edge, genType x);
+
270 
+
275  template <template <typename, precision> class vecType, typename T, precision P>
+
276  GLM_FUNC_DECL vecType<T, P> step(T edge, vecType<T, P> const & x);
+
277 
+
282  template <template <typename, precision> class vecType, typename T, precision P>
+
283  GLM_FUNC_DECL vecType<T, P> step(vecType<T, P> const & edge, vecType<T, P> const & x);
+
284 
+
299  template <typename genType>
+
300  GLM_FUNC_DECL genType smoothstep(genType edge0, genType edge1, genType x);
+
301 
+
302  template <typename T, precision P, template <typename, precision> class vecType>
+
303  GLM_FUNC_DECL vecType<T, P> smoothstep(T edge0, T edge1, vecType<T, P> const & x);
+
304 
+
305  template <typename T, precision P, template <typename, precision> class vecType>
+
306  GLM_FUNC_DECL vecType<T, P> smoothstep(vecType<T, P> const & edge0, vecType<T, P> const & edge1, vecType<T, P> const & x);
+
307 
+
320  template <typename T, precision P, template <typename, precision> class vecType>
+
321  GLM_FUNC_DECL vecType<bool, P> isnan(vecType<T, P> const & x);
+
322 
+
333  template <typename T, precision P, template <typename, precision> class vecType>
+
334  GLM_FUNC_DECL vecType<bool, P> isinf(vecType<T, P> const & x);
+
335 
+
342  GLM_FUNC_DECL int floatBitsToInt(float const & v);
+
343 
+
350  template <template <typename, precision> class vecType, precision P>
+
351  GLM_FUNC_DECL vecType<int, P> floatBitsToInt(vecType<float, P> const & v);
+
352 
+
359  GLM_FUNC_DECL uint floatBitsToUint(float const & v);
+
360 
+
367  template <template <typename, precision> class vecType, precision P>
+
368  GLM_FUNC_DECL vecType<uint, P> floatBitsToUint(vecType<float, P> const & v);
+
369 
+
378  GLM_FUNC_DECL float intBitsToFloat(int const & v);
+
379 
+
388  template <template <typename, precision> class vecType, precision P>
+
389  GLM_FUNC_DECL vecType<float, P> intBitsToFloat(vecType<int, P> const & v);
+
390 
+
399  GLM_FUNC_DECL float uintBitsToFloat(uint const & v);
+
400 
+
409  template <template <typename, precision> class vecType, precision P>
+
410  GLM_FUNC_DECL vecType<float, P> uintBitsToFloat(vecType<uint, P> const & v);
+
411 
+
418  template <typename genType>
+
419  GLM_FUNC_DECL genType fma(genType const & a, genType const & b, genType const & c);
+
420 
+
435  template <typename genType, typename genIType>
+
436  GLM_FUNC_DECL genType frexp(genType const & x, genIType & exp);
+
437 
+
449  template <typename genType, typename genIType>
+
450  GLM_FUNC_DECL genType ldexp(genType const & x, genIType const & exp);
+
451 
+
453 }//namespace glm
+
454 
+
455 #include "func_common.inl"
+
456 
+
OpenGL Mathematics (glm.g-truc.net)
+
GLM_FUNC_DECL vecType< bool, P > isnan(vecType< T, P > const &x)
Returns true if x holds a NaN (not a number) representation in the underlying implementation's set of...
+
GLM_FUNC_DECL vecType< float, P > uintBitsToFloat(vecType< uint, P > const &v)
Returns a floating-point value corresponding to a unsigned integer encoding of a floating-point value...
+
GLM_FUNC_DECL vecType< T, P > trunc(vecType< T, P > const &x)
Returns a value equal to the nearest integer to x whose absolute value is not larger than the absolut...
+
GLM_FUNC_DECL vecType< T, P > floor(vecType< T, P > const &x)
Returns a value equal to the nearest integer that is less then or equal to x.
+
GLM_FUNC_DECL vecType< int, P > floatBitsToInt(vecType< float, P > const &v)
Returns a signed integer value representing the encoding of a floating-point value.
+
unsigned int uint
Unsigned integer type.
Definition: type_int.hpp:306
+
GLM_FUNC_DECL genType min(genType x, genType y)
Returns y if y < x; otherwise, it returns 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 vecType< uint, P > floatBitsToUint(vecType< float, P > const &v)
Returns a unsigned integer value representing the encoding of a floating-point value.
+
GLM_FUNC_DECL genType clamp(genType x, genType minVal, genType maxVal)
Returns min(max(x, minVal), maxVal) for each component in x using the floating-point values minVal an...
+
OpenGL Mathematics (glm.g-truc.net)
+
GLM_FUNC_DECL genType fma(genType const &a, genType const &b, genType const &c)
Computes and returns a * b + c.
+
GLM_FUNC_DECL vecType< bool, P > isinf(vecType< T, P > const &x)
Returns true if x holds a positive infinity or negative infinity representation in the underlying imp...
+
GLM_FUNC_DECL genType fract(genType x)
Return x - floor(x).
+
GLM_FUNC_DECL vecType< T, P > exp(vecType< T, P > const &v)
Returns the natural exponentiation of x, i.e., e^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...
+
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 vecType< T, P > mix(vecType< T, P > const &x, vecType< T, P > const &y, vecType< U, P > const &a)
If genTypeU is a floating scalar or vector: Returns x * (1.0 - a) + y * a, i.e., the linear blend of ...
+
GLM_FUNC_DECL vecType< float, P > intBitsToFloat(vecType< int, P > const &v)
Returns a floating-point value corresponding to a signed integer encoding of a floating-point value...
+
GLM_FUNC_DECL genType max(genType x, genType y)
Returns y if x < y; otherwise, it returns x.
+
GLM_FUNC_DECL vecType< T, P > mod(vecType< T, P > const &x, vecType< T, P > const &y)
Modulus.
+
Definition: _noise.hpp:39
+
GLM_FUNC_DECL genType abs(genType x)
Returns x if x >= 0; otherwise, it returns -x.
+
GLM_FUNC_DECL vecType< T, P > roundEven(vecType< T, P > const &x)
Returns a value equal to the nearest integer to x.
+
GLM_FUNC_DECL vecType< T, P > sign(vecType< T, P > const &x)
Returns 1.0 if x > 0, 0.0 if x == 0, or -1.0 if x < 0.
+
GLM_FUNC_DECL vecType< T, P > ceil(vecType< T, P > const &x)
Returns a value equal to the nearest integer that is greater than or equal to 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...
+
OpenGL Mathematics (glm.g-truc.net)
+
GLM_FUNC_DECL vecType< T, P > step(vecType< T, P > const &edge, vecType< T, P > const &x)
Returns 0.0 if x < edge, otherwise it returns 1.0.
+
OpenGL Mathematics (glm.g-truc.net)
+
GLM_FUNC_DECL vecType< T, P > round(vecType< T, P > const &x)
Returns a value equal to the nearest integer to x.
diff --git a/doc/api/a00029.html b/doc/api/a00029.html index 4ff68a11..3f118a2f 100644 --- a/doc/api/a00029.html +++ b/doc/api/a00029.html @@ -3,8 +3,8 @@ - -GLM: fast_exponential.hpp File Reference + +0.9.6: func_exponential.hpp File Reference @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,68 +41,61 @@
-Namespaces | Functions
-
fast_exponential.hpp File Reference
+
func_exponential.hpp File Reference

Go to the source code of this file.

- - - -

-Namespaces

 glm
 
- - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + +

Functions

template<typename T >
fastExp (const T &x)
 
template<typename T >
fastExp2 (const T &x)
 
template<typename T >
fastLn (const T &x)
 
template<typename T >
fastLog (const T &x)
 
template<typename T >
fastLog2 (const T &x)
 
template<typename genType >
genType fastPow (genType const &x, genType const &y)
 
template<typename genTypeT , typename genTypeU >
genTypeT fastPow (genTypeT const &x, genTypeU const &y)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > exp (vecType< T, P > const &v)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > exp2 (vecType< T, P > const &v)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > inversesqrt (vecType< T, P > const &v)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > log (vecType< T, P > const &v)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > log2 (vecType< T, P > const &v)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > pow (vecType< T, P > const &base, vecType< T, P > const &exponent)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > sqrt (vecType< T, P > const &v)
 

Detailed Description

OpenGL Mathematics (glm.g-truc.net)

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_fast_exponential

-
Date
2006-01-09 / 2011-06-07
+

GLM Core

+
Date
2008-08-08 / 2011-06-14
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
-
-gtx_half_float (dependence)
+
See also
GLSL 4.20.8 specification, section 8.2 Exponential Functions
-

Definition in file fast_exponential.hpp.

+

Definition in file func_exponential.hpp.

diff --git a/doc/api/a00029_source.html b/doc/api/a00029_source.html index efa9df68..74ef660d 100644 --- a/doc/api/a00029_source.html +++ b/doc/api/a00029_source.html @@ -3,8 +3,8 @@ - -GLM: fast_exponential.hpp Source File + +0.9.6: func_exponential.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,70 +41,70 @@
-
fast_exponential.hpp
+
func_exponential.hpp
Go to the documentation of this file.
1 
-
39 #ifndef GLM_GTX_fast_exponential
-
40 #define GLM_GTX_fast_exponential
-
41 
-
42 // Dependency:
-
43 #include "../glm.hpp"
-
44 
-
45 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
46 # pragma message("GLM: GLM_GTX_fast_exponential extension included")
-
47 #endif
-
48 
-
49 namespace glm
-
50 {
-
53 
-
56  template <typename genType>
-
57  genType fastPow(
-
58  genType const & x,
-
59  genType const & y);
-
60 
-
63  template <typename genTypeT, typename genTypeU>
-
64  genTypeT fastPow(
-
65  genTypeT const & x,
-
66  genTypeU const & y);
-
67 
-
70  template <typename T>
-
71  T fastExp(const T& x);
-
72 
-
75  template <typename T>
-
76  T fastLog(const T& x);
-
77 
-
80  template <typename T>
-
81  T fastExp2(const T& x);
-
82 
-
85  template <typename T>
-
86  T fastLog2(const T& x);
-
87 
-
90  template <typename T>
-
91  T fastLn(const T& x);
-
92 
-
94 }//namespace glm
+
40 #pragma once
+
41 
+
42 #include "type_vec1.hpp"
+
43 #include "type_vec2.hpp"
+
44 #include "type_vec3.hpp"
+
45 #include "type_vec4.hpp"
+
46 #include <cmath>
+
47 
+
48 namespace glm
+
49 {
+
52 
+
61  template <typename T, precision P, template <typename, precision> class vecType>
+
62  GLM_FUNC_DECL vecType<T, P> pow(vecType<T, P> const & base, vecType<T, P> const & exponent);
+
63 
+
71  template <typename T, precision P, template <typename, precision> class vecType>
+
72  GLM_FUNC_DECL vecType<T, P> exp(vecType<T, P> const & v);
+
73 
+
83  template <typename T, precision P, template <typename, precision> class vecType>
+
84  GLM_FUNC_DECL vecType<T, P> log(vecType<T, P> const & v);
+
85 
+
93  template <typename T, precision P, template <typename, precision> class vecType>
+
94  GLM_FUNC_DECL vecType<T, P> exp2(vecType<T, P> const & v);
95 
-
96 #include "fast_exponential.inl"
-
97 
-
98 #endif//GLM_GTX_fast_exponential
-
T fastLn(const T &x)
Faster than the common ln function but less accurate.
-
T fastLog(const T &x)
Faster than the common log function but less accurate.
-
T fastExp(const T &x)
Faster than the common exp function but less accurate.
-
T fastExp2(const T &x)
Faster than the common exp2 function but less accurate.
-
genType fastPow(genType const &x, genType const &y)
Faster than the common pow function but less accurate.
-
T fastLog2(const T &x)
Faster than the common log2 function but less accurate.
+
104  template <typename T, precision P, template <typename, precision> class vecType>
+
105  GLM_FUNC_DECL vecType<T, P> log2(vecType<T, P> const & v);
+
106 
+
114  //template <typename genType>
+
115  //GLM_FUNC_DECL genType sqrt(genType const & x);
+
116  template <typename T, precision P, template <typename, precision> class vecType>
+
117  GLM_FUNC_DECL vecType<T, P> sqrt(vecType<T, P> const & v);
+
118 
+
126  template <typename T, precision P, template <typename, precision> class vecType>
+
127  GLM_FUNC_DECL vecType<T, P> inversesqrt(vecType<T, P> const & v);
+
128 
+
130 }//namespace glm
+
131 
+
132 #include "func_exponential.inl"
+
GLM_FUNC_DECL vecType< T, P > inversesqrt(vecType< T, P > const &v)
Returns the reciprocal of the positive square root of v.
+
GLM_FUNC_DECL vecType< T, P > pow(vecType< T, P > const &base, vecType< T, P > const &exponent)
Returns 'base' raised to the power 'exponent'.
+
OpenGL Mathematics (glm.g-truc.net)
+
GLM_FUNC_DECL vecType< T, P > log(vecType< T, P > const &v)
Returns the natural logarithm of v, i.e., returns the value y which satisfies the equation x = e^y...
+
GLM_FUNC_DECL vecType< T, P > exp(vecType< T, P > const &v)
Returns the natural exponentiation of x, i.e., e^x.
+
OpenGL Mathematics (glm.g-truc.net)
+
GLM_FUNC_DECL vecType< T, P > exp2(vecType< T, P > const &v)
Returns 2 raised to the v power.
+
OpenGL Mathematics (glm.g-truc.net)
+
GLM_FUNC_DECL vecType< T, P > log2(vecType< T, P > const &v)
Returns the base 2 log of x, i.e., returns the value y, which satisfies the equation x = 2 ^ y...
+
Definition: _noise.hpp:39
+
OpenGL Mathematics (glm.g-truc.net)
+
GLM_FUNC_DECL vecType< T, P > sqrt(vecType< T, P > const &v)
Returns the positive square root of v.
diff --git a/doc/api/a00030.html b/doc/api/a00030.html index 37c4ca1a..32a2c274 100644 --- a/doc/api/a00030.html +++ b/doc/api/a00030.html @@ -3,8 +3,8 @@ - -GLM: fast_square_root.hpp File Reference + +0.9.6: func_geometric.hpp File Reference @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,60 +41,64 @@
-Namespaces | Functions
-
fast_square_root.hpp File Reference
+
func_geometric.hpp File Reference

Go to the source code of this file.

- - - -

-Namespaces

 glm
 
- - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + +

Functions

template<typename genType >
genType::value_type fastDistance (genType const &x, genType const &y)
 
template<typename genType >
genType fastInverseSqrt (genType const &x)
 
template<typename genType >
genType::value_type fastLength (genType const &x)
 
template<typename genType >
genType fastNormalize (genType const &x)
 
template<typename genType >
genType fastSqrt (genType const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL tvec3< T, P > cross (tvec3< T, P > const &x, tvec3< T, P > const &y)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL T distance (vecType< T, P > const &p0, vecType< T, P > const &p1)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL T dot (vecType< T, P > const &x, vecType< T, P > const &y)
 
template<typename genType >
GLM_FUNC_DECL genType faceforward (genType const &N, genType const &I, genType const &Nref)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL T length (vecType< T, P > const &x)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > normalize (vecType< T, P > const &x)
 
template<typename genType >
GLM_FUNC_DECL genType reflect (genType const &I, genType const &N)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > refract (vecType< T, P > const &I, vecType< T, P > const &N, T eta)
 

Detailed Description

OpenGL Mathematics (glm.g-truc.net)

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_fast_square_root

-
Date
2006-01-04 / 2011-06-07
+

GLM Core

+
Date
2008-08-03 / 2011-06-14
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
+
See also
GLSL 4.20.8 specification, section 8.5 Geometric Functions
-

Definition in file fast_square_root.hpp.

+

Definition in file func_geometric.hpp.

diff --git a/doc/api/a00030_source.html b/doc/api/a00030_source.html index b1d65f7a..210ebc51 100644 --- a/doc/api/a00030_source.html +++ b/doc/api/a00030_source.html @@ -3,8 +3,8 @@ - -GLM: fast_square_root.hpp Source File + +0.9.6: func_geometric.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,59 +41,81 @@
-
fast_square_root.hpp
+
func_geometric.hpp
Go to the documentation of this file.
1 
-
40 #ifndef GLM_GTX_fast_square_root
-
41 #define GLM_GTX_fast_square_root
-
42 
-
43 // Dependency:
-
44 #include "../glm.hpp"
-
45 
-
46 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
47 # pragma message("GLM: GLM_GTX_fast_square_root extension included")
-
48 #endif
-
49 
-
50 namespace glm
-
51 {
-
54 
-
57  template <typename genType>
-
58  genType fastSqrt(genType const & x);
-
59 
-
62  template <typename genType>
-
63  genType fastInverseSqrt(genType const & x);
-
64 
-
67  template <typename genType>
-
68  typename genType::value_type fastLength(genType const & x);
+
40 #pragma once
+
41 
+
42 #include "type_vec3.hpp"
+
43 
+
44 namespace glm
+
45 {
+
48 
+
55  template <typename T, precision P, template <typename, precision> class vecType>
+
56  GLM_FUNC_DECL T length(
+
57  vecType<T, P> const & x);
+
58 
+
65  template <typename T, precision P, template <typename, precision> class vecType>
+
66  GLM_FUNC_DECL T distance(
+
67  vecType<T, P> const & p0,
+
68  vecType<T, P> const & p1);
69 
-
72  template <typename genType>
-
73  typename genType::value_type fastDistance(genType const & x, genType const & y);
-
74 
-
77  template <typename genType>
-
78  genType fastNormalize(genType const & x);
-
79 
-
81 }// namespace glm
-
82 
-
83 #include "fast_square_root.inl"
-
84 
-
85 #endif//GLM_GTX_fast_square_root
-
genType fastSqrt(genType const &x)
Faster than the common sqrt function but less accurate.
-
genType fastInverseSqrt(genType const &x)
Faster than the common inversesqrt function but less accurate.
-
genType::value_type fastDistance(genType const &x, genType const &y)
Faster than the common distance function but less accurate.
-
genType fastNormalize(genType const &x)
Faster than the common normalize function but less accurate.
-
genType::value_type fastLength(genType const &x)
Faster than the common length function but less accurate.
+
76  template <typename T, precision P, template <typename, precision> class vecType>
+
77  GLM_FUNC_DECL T dot(
+
78  vecType<T, P> const & x,
+
79  vecType<T, P> const & y);
+
80 
+
87  template <typename T, precision P>
+
88  GLM_FUNC_DECL tvec3<T, P> cross(
+
89  tvec3<T, P> const & x,
+
90  tvec3<T, P> const & y);
+
91 
+
97  template <typename T, precision P, template <typename, precision> class vecType>
+
98  GLM_FUNC_DECL vecType<T, P> normalize(
+
99  vecType<T, P> const & x);
+
100 
+
107  template <typename genType>
+
108  GLM_FUNC_DECL genType faceforward(
+
109  genType const & N,
+
110  genType const & I,
+
111  genType const & Nref);
+
112 
+
120  template <typename genType>
+
121  GLM_FUNC_DECL genType reflect(
+
122  genType const & I,
+
123  genType const & N);
+
124 
+
133  template <typename T, precision P, template <typename, precision> class vecType>
+
134  GLM_FUNC_DECL vecType<T, P> refract(
+
135  vecType<T, P> const & I,
+
136  vecType<T, P> const & N,
+
137  T eta);
+
138 
+
140 }//namespace glm
+
141 
+
142 #include "func_geometric.inl"
+
GLM_FUNC_DECL vecType< T, P > refract(vecType< T, P > const &I, vecType< T, P > const &N, T eta)
For the incident vector I and surface normal N, and the ratio of indices of refraction eta...
+
GLM_FUNC_DECL genType reflect(genType const &I, genType const &N)
For the incident vector I and surface orientation N, returns the reflection direction : result = I - ...
+
GLM_FUNC_DECL T distance(vecType< T, P > const &p0, vecType< T, P > const &p1)
Returns the distance betwwen p0 and p1, i.e., length(p0 - p1).
+
GLM_FUNC_DECL genType faceforward(genType const &N, genType const &I, genType const &Nref)
If dot(Nref, I) < 0.0, return N, otherwise, return -N.
+
GLM_FUNC_DECL T dot(vecType< T, P > const &x, vecType< T, P > const &y)
Returns the dot product of x and y, i.e., result = x * y.
+
OpenGL Mathematics (glm.g-truc.net)
+
GLM_FUNC_DECL T length(vecType< T, P > const &x)
Returns the length of x, i.e., sqrt(x * x).
+
GLM_FUNC_DECL vecType< T, P > normalize(vecType< T, P > const &x)
Returns a vector in the same direction as x but with length of 1.
+
GLM_FUNC_DECL tvec3< T, P > cross(tvec3< T, P > const &x, tvec3< T, P > const &y)
Returns the cross product of x and y.
+
Definition: _noise.hpp:39
diff --git a/doc/api/a00031.html b/doc/api/a00031.html index e73f867e..f3c34b41 100644 --- a/doc/api/a00031.html +++ b/doc/api/a00031.html @@ -3,8 +3,8 @@ - -GLM: fast_trigonometry.hpp File Reference + +0.9.6: func_integer.hpp File Reference @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,66 +41,79 @@
-Namespaces | Functions
-
fast_trigonometry.hpp File Reference
+
func_integer.hpp File Reference

Go to the source code of this file.

- - - -

-Namespaces

 glm
 
- - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Functions

template<typename T >
fastAcos (const T &angle)
 
template<typename T >
fastAsin (const T &angle)
 
template<typename T >
fastAtan (const T &y, const T &x)
 
template<typename T >
fastAtan (const T &angle)
 
template<typename T >
fastCos (const T &angle)
 
template<typename T >
fastSin (const T &angle)
 
template<typename T >
fastTan (const T &angle)
 
template<typename genType >
GLM_FUNC_DECL int bitCount (genType v)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< int, P > bitCount (vecType< T, P > const &v)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > bitfieldExtract (vecType< T, P > const &Value, int Offset, int Bits)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > bitfieldInsert (vecType< T, P > const &Base, vecType< T, P > const &Insert, int Offset, int Bits)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > bitfieldReverse (vecType< T, P > const &v)
 
template<typename genIUType >
GLM_FUNC_DECL int findLSB (genIUType x)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< int, P > findLSB (vecType< T, P > const &v)
 
template<typename genIUType >
GLM_FUNC_DECL int findMSB (genIUType x)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< int, P > findMSB (vecType< T, P > const &v)
 
template<precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL void imulExtended (vecType< int, P > const &x, vecType< int, P > const &y, vecType< int, P > &msb, vecType< int, P > &lsb)
 
template<precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< uint, P > uaddCarry (vecType< uint, P > const &x, vecType< uint, P > const &y, vecType< uint, P > &carry)
 
template<precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL void umulExtended (vecType< uint, P > const &x, vecType< uint, P > const &y, vecType< uint, P > &msb, vecType< uint, P > &lsb)
 
template<precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< uint, P > usubBorrow (vecType< uint, P > const &x, vecType< uint, P > const &y, vecType< uint, P > &borrow)
 

Detailed Description

OpenGL Mathematics (glm.g-truc.net)

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_fast_trigonometry

-
Date
2006-01-08 / 2011-06-07
+

GLM Core

+
Date
2010-03-17 / 2011-06-18
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
+
See also
GLSL 4.20.8 specification, section 8.8 Integer Functions
-

Definition in file fast_trigonometry.hpp.

+

Definition in file func_integer.hpp.

diff --git a/doc/api/a00031_source.html b/doc/api/a00031_source.html index ba8da12a..31733110 100644 --- a/doc/api/a00031_source.html +++ b/doc/api/a00031_source.html @@ -3,8 +3,8 @@ - -GLM: fast_trigonometry.hpp Source File + +0.9.6: func_integer.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,67 +41,109 @@
-
fast_trigonometry.hpp
+
func_integer.hpp
Go to the documentation of this file.
1 
-
38 #ifndef GLM_GTX_fast_trigonometry
-
39 #define GLM_GTX_fast_trigonometry
-
40 
-
41 // Dependency:
-
42 #include "../glm.hpp"
+
42 #pragma once
43 
-
44 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
45 # pragma message("GLM: GLM_GTX_fast_trigonometry extension included")
-
46 #endif
-
47 
-
48 namespace glm
-
49 {
-
52 
-
56  template <typename T>
-
57  T fastSin(const T& angle);
-
58 
-
62  template <typename T>
-
63  T fastCos(const T& angle);
-
64 
-
68  template <typename T>
-
69  T fastTan(const T& angle);
-
70 
-
74  template <typename T>
-
75  T fastAsin(const T& angle);
-
76 
-
80  template <typename T>
-
81  T fastAcos(const T& angle);
-
82 
-
86  template <typename T>
-
87  T fastAtan(const T& y, const T& x);
-
88 
-
92  template <typename T>
-
93  T fastAtan(const T& angle);
-
94 
-
96 }//namespace glm
-
97 
-
98 #include "fast_trigonometry.inl"
-
99 
-
100 #endif//GLM_GTX_fast_trigonometry
-
T fastAcos(const T &angle)
Faster than the common acos function but less accurate.
-
T fastAtan(const T &y, const T &x)
Faster than the common atan function but less accurate.
-
GLM_FUNC_DECL T angle(detail::tquat< T, P > const &x)
Returns the quaternion rotation angle.
-
T fastAsin(const T &angle)
Faster than the common asin function but less accurate.
-
T fastTan(const T &angle)
Faster than the common tan function but less accurate.
-
T fastSin(const T &angle)
Faster than the common sin function but less accurate.
-
T fastCos(const T &angle)
Faster than the common cos function but less accurate.
+
44 #include "setup.hpp"
+
45 #include "precision.hpp"
+
46 #include "func_common.hpp"
+ +
48 
+
49 namespace glm
+
50 {
+
53 
+
62  template <precision P, template <typename, precision> class vecType>
+
63  GLM_FUNC_DECL vecType<uint, P> uaddCarry(
+
64  vecType<uint, P> const & x,
+
65  vecType<uint, P> const & y,
+
66  vecType<uint, P> & carry);
+
67 
+
76  template <precision P, template <typename, precision> class vecType>
+
77  GLM_FUNC_DECL vecType<uint, P> usubBorrow(
+
78  vecType<uint, P> const & x,
+
79  vecType<uint, P> const & y,
+
80  vecType<uint, P> & borrow);
+
81 
+
90  template <precision P, template <typename, precision> class vecType>
+
91  GLM_FUNC_DECL void umulExtended(
+
92  vecType<uint, P> const & x,
+
93  vecType<uint, P> const & y,
+
94  vecType<uint, P> & msb,
+
95  vecType<uint, P> & lsb);
+
96 
+
105  template <precision P, template <typename, precision> class vecType>
+
106  GLM_FUNC_DECL void imulExtended(
+
107  vecType<int, P> const & x,
+
108  vecType<int, P> const & y,
+
109  vecType<int, P> & msb,
+
110  vecType<int, P> & lsb);
+
111 
+
127  template <typename T, precision P, template <typename, precision> class vecType>
+
128  GLM_FUNC_DECL vecType<T, P> bitfieldExtract(
+
129  vecType<T, P> const & Value,
+
130  int Offset,
+
131  int Bits);
+
132 
+
147  template <typename T, precision P, template <typename, precision> class vecType>
+
148  GLM_FUNC_DECL vecType<T, P> bitfieldInsert(
+
149  vecType<T, P> const & Base,
+
150  vecType<T, P> const & Insert,
+
151  int Offset,
+
152  int Bits);
+
153 
+
162  template <typename T, precision P, template <typename, precision> class vecType>
+
163  GLM_FUNC_DECL vecType<T, P> bitfieldReverse(vecType<T, P> const & v);
+
164 
+
171  template <typename genType>
+
172  GLM_FUNC_DECL int bitCount(genType v);
+
173 
+
180  template <typename T, precision P, template <typename, precision> class vecType>
+
181  GLM_FUNC_DECL vecType<int, P> bitCount(vecType<T, P> const & v);
+
182 
+
191  template <typename genIUType>
+
192  GLM_FUNC_DECL int findLSB(genIUType x);
+
193 
+
202  template <typename T, precision P, template <typename, precision> class vecType>
+
203  GLM_FUNC_DECL vecType<int, P> findLSB(vecType<T, P> const & v);
+
204 
+
214  template <typename genIUType>
+
215  GLM_FUNC_DECL int findMSB(genIUType x);
+
216 
+
226  template <typename T, precision P, template <typename, precision> class vecType>
+
227  GLM_FUNC_DECL vecType<int, P> findMSB(vecType<T, P> const & v);
+
228 
+
230 }//namespace glm
+
231 
+
232 #include "func_integer.inl"
+
OpenGL Mathematics (glm.g-truc.net)
+
GLM_FUNC_DECL void imulExtended(vecType< int, P > const &x, vecType< int, P > const &y, vecType< int, P > &msb, vecType< int, P > &lsb)
Multiplies 32-bit integers x and y, producing a 64-bit result.
+
GLM_FUNC_DECL vecType< T, P > bitfieldInsert(vecType< T, P > const &Base, vecType< T, P > const &Insert, int Offset, int Bits)
Returns the insertion the bits least-significant bits of insert into base.
+
GLM_FUNC_DECL vecType< uint, P > usubBorrow(vecType< uint, P > const &x, vecType< uint, P > const &y, vecType< uint, P > &borrow)
Subtracts the 32-bit unsigned integer y from x, returning the difference if non-negative, or pow(2, 32) plus the difference otherwise.
+
GLM_FUNC_DECL vecType< int, P > findLSB(vecType< T, P > const &v)
Returns the bit number of the least significant bit set to 1 in the binary representation of value...
+
GLM_FUNC_DECL vecType< int, P > bitCount(vecType< T, P > const &v)
Returns the number of bits set to 1 in the binary representation of value.
+
GLM_FUNC_DECL vecType< uint, P > uaddCarry(vecType< uint, P > const &x, vecType< uint, P > const &y, vecType< uint, P > &carry)
Adds 32-bit unsigned integer x and y, returning the sum modulo pow(2, 32).
+
GLM_FUNC_DECL vecType< T, P > bitfieldExtract(vecType< T, P > const &Value, int Offset, int Bits)
Extracts bits [offset, offset + bits - 1] from value, returning them in the least significant bits of...
+
GLM_FUNC_DECL vecType< T, P > bitfieldReverse(vecType< T, P > const &v)
Returns the reversal of the bits of value.
+
Definition: _noise.hpp:39
+
OpenGL Mathematics (glm.g-truc.net)
+
GLM_FUNC_DECL vecType< int, P > findMSB(vecType< T, P > const &v)
Returns the bit number of the most significant bit in the binary representation of value...
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
GLM_FUNC_DECL void umulExtended(vecType< uint, P > const &x, vecType< uint, P > const &y, vecType< uint, P > &msb, vecType< uint, P > &lsb)
Multiplies 32-bit integers x and y, producing a 64-bit result.
diff --git a/doc/api/a00032.html b/doc/api/a00032.html new file mode 100644 index 00000000..0fbe575a --- /dev/null +++ b/doc/api/a00032.html @@ -0,0 +1,94 @@ + + + + + + +0.9.6: func_matrix.hpp File Reference + + + + + + +
+
+ + + + + + + +
+
0.9.6 +
+
+
+ + + + + +
+
+
+Functions
+
+
func_matrix.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + +

+Functions

template<typename T , precision P, template< typename, precision > class matType>
GLM_FUNC_DECL T determinant (matType< T, P > const &m)
 
template<typename T , precision P, template< typename, precision > class matType>
GLM_FUNC_DECL matType< T, P > inverse (matType< T, P > const &m)
 
template<typename T , precision P, template< typename, precision > class matType>
GLM_FUNC_DECL matType< T, P > matrixCompMult (matType< T, P > const &x, matType< T, P > const &y)
 
template<typename T , precision P, template< typename, precision > class vecTypeA, template< typename, precision > class vecTypeB>
GLM_FUNC_DECL
+detail::outerProduct_trait< T,
+P, vecTypeA, vecTypeB >::type 
outerProduct (vecTypeA< T, P > const &c, vecTypeB< T, P > const &r)
 
+

Detailed Description

+

OpenGL Mathematics (glm.g-truc.net)

+

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+

GLM Core

+
Date
2008-08-03 / 2011-06-15
+
Author
Christophe Riccio
+
See also
GLSL 4.20.8 specification, section 8.6 Matrix Functions
+ +

Definition in file func_matrix.hpp.

+
+ + + + diff --git a/doc/api/a00032_source.html b/doc/api/a00032_source.html index 77dc7e0d..3788eb1f 100644 --- a/doc/api/a00032_source.html +++ b/doc/api/a00032_source.html @@ -3,8 +3,8 @@ - -GLM: func_common.hpp Source File + +0.9.6: func_matrix.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,198 +41,125 @@
-
func_common.hpp
+
func_matrix.hpp
-
1 
-
36 #ifndef GLM_FUNC_COMMON_INCLUDED
-
37 #define GLM_FUNC_COMMON_INCLUDED
-
38 
-
39 #include "setup.hpp"
-
40 #include "precision.hpp"
-
41 #include "type_int.hpp"
-
42 #include "_fixes.hpp"
-
43 
-
44 namespace glm
-
45 {
-
48 
-
55  template <typename genType>
-
56  GLM_FUNC_DECL genType abs(genType const & x);
-
57 
-
64  template <typename genType>
-
65  GLM_FUNC_DECL genType sign(genType const & x);
-
66 
-
73  template <typename genType>
-
74  GLM_FUNC_DECL genType floor(genType const & x);
-
75 
-
83  template <typename genType>
-
84  GLM_FUNC_DECL genType trunc(genType const & x);
-
85 
-
96  template <typename genType>
-
97  GLM_FUNC_DECL genType round(genType const & x);
-
98 
-
108  template <typename genType>
-
109  GLM_FUNC_DECL genType roundEven(genType const & x);
-
110 
-
118  template <typename genType>
-
119  GLM_FUNC_DECL genType ceil(genType const & x);
-
120 
-
127  template <typename genType>
-
128  GLM_FUNC_DECL genType fract(genType const & x);
-
129 
-
137  template <typename genType>
-
138  GLM_FUNC_DECL genType mod(
-
139  genType const & x,
-
140  genType const & y);
-
141 
-
149  template <typename genType>
-
150  GLM_FUNC_DECL genType mod(
-
151  genType const & x,
-
152  typename genType::value_type const & y);
-
153 
-
163  template <typename genType>
-
164  GLM_FUNC_DECL genType modf(
-
165  genType const & x,
-
166  genType & i);
-
167 
-
174  template <typename genType>
-
175  GLM_FUNC_DECL genType min(
-
176  genType const & x,
-
177  genType const & y);
-
178 
-
179  template <typename genType>
-
180  GLM_FUNC_DECL genType min(
-
181  genType const & x,
-
182  typename genType::value_type const & y);
-
183 
-
190  template <typename genType>
-
191  GLM_FUNC_DECL genType max(
-
192  genType const & x,
-
193  genType const & y);
-
194 
-
195  template <typename genType>
-
196  GLM_FUNC_DECL genType max(
-
197  genType const & x,
-
198  typename genType::value_type const & y);
-
199 
-
207  template <typename genType>
-
208  GLM_FUNC_DECL genType clamp(
-
209  genType const & x,
-
210  genType const & minVal,
-
211  genType const & maxVal);
-
212 
-
213  template <typename genType, precision P>
-
214  GLM_FUNC_DECL genType clamp(
-
215  genType const & x,
-
216  typename genType::value_type const & minVal,
-
217  typename genType::value_type const & maxVal);
-
218 
-
261  template <typename genTypeT, typename genTypeU>
-
262  GLM_FUNC_DECL genTypeT mix(
-
263  genTypeT const & x,
-
264  genTypeT const & y,
-
265  genTypeU const & a);
-
266 
-
271  template <typename genType>
-
272  GLM_FUNC_DECL genType step(
-
273  genType const & edge,
-
274  genType const & x);
-
275 
-
280  template <template <typename, precision> class vecType, typename T, precision P>
-
281  GLM_FUNC_DECL vecType<T, P> step(
-
282  T const & edge,
-
283  vecType<T, P> const & x);
-
284 
-
299  template <typename genType>
-
300  GLM_FUNC_DECL genType smoothstep(
-
301  genType const & edge0,
-
302  genType const & edge1,
-
303  genType const & x);
-
304 
-
305  template <typename genType>
-
306  GLM_FUNC_DECL genType smoothstep(
-
307  typename genType::value_type const & edge0,
-
308  typename genType::value_type const & edge1,
-
309  genType const & x);
-
310 
-
323  template <typename genType>
-
324  GLM_FUNC_DECL typename genType::bool_type isnan(genType const & x);
-
325 
-
336  template <typename genType>
-
337  GLM_FUNC_DECL typename genType::bool_type isinf(genType const & x);
-
338 
-
345  GLM_FUNC_DECL int floatBitsToInt(float const & v);
-
346 
-
353  template <template <typename, precision> class vecType, precision P>
-
354  GLM_FUNC_DECL vecType<int, P> floatBitsToInt(vecType<float, P> const & v);
-
355 
-
362  GLM_FUNC_DECL uint floatBitsToUint(float const & v);
-
363 
-
370  template <template <typename, precision> class vecType, precision P>
-
371  GLM_FUNC_DECL vecType<uint, P> floatBitsToUint(vecType<float, P> const & v);
-
372 
-
381  GLM_FUNC_DECL float intBitsToFloat(int const & v);
-
382 
-
391  template <template <typename, precision> class vecType, precision P>
-
392  GLM_FUNC_DECL vecType<float, P> intBitsToFloat(vecType<int, P> const & v);
-
393 
-
402  GLM_FUNC_DECL float uintBitsToFloat(uint const & v);
-
403 
-
412  template <template <typename, precision> class vecType, precision P>
-
413  GLM_FUNC_DECL vecType<float, P> uintBitsToFloat(vecType<uint, P> const & v);
-
414 
-
421  template <typename genType>
-
422  GLM_FUNC_DECL genType fma(genType const & a, genType const & b, genType const & c);
-
423 
-
438  template <typename genType, typename genIType>
-
439  GLM_FUNC_DECL genType frexp(genType const & x, genIType & exp);
-
440 
-
452  template <typename genType, typename genIType>
-
453  GLM_FUNC_DECL genType ldexp(genType const & x, genIType const & exp);
-
454 
-
456 }//namespace glm
-
457 
-
458 #include "func_common.inl"
-
459 
-
460 #endif//GLM_FUNC_COMMON_INCLUDED
-
GLM_FUNC_DECL genType floor(genType const &x)
Returns a value equal to the nearest integer that is less then or equal to x.
-
GLM_FUNC_DECL genTypeT mix(genTypeT const &x, genTypeT const &y, genTypeU const &a)
If genTypeU is a floating scalar or vector: Returns x * (1.0 - a) + y * a, i.e., the linear blend of ...
-
unsigned int uint
Unsigned integer type.
Definition: type_int.hpp:171
-
GLM_FUNC_DECL genType mod(genType const &x, genType const &y)
Modulus.
-
GLM_FUNC_DECL genType modf(genType const &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 genType exp(genType const &x)
Returns the natural exponentiation of x, i.e., e^x.
-
GLM_FUNC_DECL genType fract(genType const &x)
Return x - floor(x).
-
GLM_FUNC_DECL genType ceil(genType const &x)
Returns a value equal to the nearest integer that is greater than or equal to x.
-
GLM_FUNC_DECL genType::bool_type isnan(genType const &x)
Returns true if x holds a NaN (not a number) representation in the underlying implementation&#39;s set of...
-
GLM_FUNC_DECL genType fma(genType const &a, genType const &b, genType const &c)
Computes and returns a * b + c.
-
GLM_FUNC_DECL float intBitsToFloat(int const &v)
Returns a floating-point value corresponding to a signed integer encoding of a floating-point value...
-
GLM_FUNC_DECL genType step(genType const &edge, genType const &x)
Returns 0.0 if x &lt; edge, otherwise it returns 1.0 for each component of a genType.
-
GLM_FUNC_DECL int floatBitsToInt(float const &v)
Returns a signed integer value representing the encoding of a floating-point value.
-
GLM_FUNC_DECL genType trunc(genType const &x)
Returns a value equal to the nearest integer to x whose absolute value is not larger than the absolut...
-
GLM_FUNC_DECL genType roundEven(genType const &x)
Returns a value equal to the nearest integer to x.
-
GLM_FUNC_DECL genType round(genType const &x)
Returns a value equal to the nearest integer to x.
-
GLM_FUNC_DECL float uintBitsToFloat(uint const &v)
Returns a floating-point value corresponding to a unsigned integer encoding of a floating-point value...
-
GLM_FUNC_DECL uint floatBitsToUint(float const &v)
Returns a unsigned integer value representing the encoding of a floating-point value.
-
GLM_FUNC_DECL genType abs(genType const &x)
Returns x if x &gt;= 0; otherwise, it returns -x.
-
GLM_FUNC_DECL genType::bool_type isinf(genType const &x)
Returns true if x holds a positive infinity or negative infinity representation in the underlying imp...
-
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 genType smoothstep(genType const &edge0, genType const &edge1, genType const &x)
Returns 0.0 if x &lt;= edge0 and 1.0 if x &gt;= edge1 and performs smooth Hermite interpolation between 0 a...
-
GLM_FUNC_DECL genType clamp(genType const &x, genType const &minVal, genType const &maxVal)
Returns min(max(x, minVal), maxVal) for each component in x using the floating-point values minVal an...
-
GLM_FUNC_DECL genType max(genType const &x, genType const &y)
Returns y if x &lt; y; otherwise, it returns x.
-
GLM_FUNC_DECL genType sign(genType const &x)
Returns 1.0 if x &gt; 0, 0.0 if x == 0, or -1.0 if x &lt; 0.
-
GLM_FUNC_DECL genType min(genType const &x, genType const &y)
Returns y if y &lt; x; otherwise, it returns 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...
+Go to the documentation of this file.
1 
+
44 #pragma once
+
45 
+
46 // Dependencies
+
47 #include "../detail/precision.hpp"
+
48 #include "../detail/setup.hpp"
+
49 #include "../detail/type_mat.hpp"
+
50 #include "../vec2.hpp"
+
51 #include "../vec3.hpp"
+
52 #include "../vec4.hpp"
+
53 #include "../mat2x2.hpp"
+
54 #include "../mat2x3.hpp"
+
55 #include "../mat2x4.hpp"
+
56 #include "../mat3x2.hpp"
+
57 #include "../mat3x3.hpp"
+
58 #include "../mat3x4.hpp"
+
59 #include "../mat4x2.hpp"
+
60 #include "../mat4x3.hpp"
+
61 #include "../mat4x4.hpp"
+
62 
+
63 namespace glm{
+
64 namespace detail
+
65 {
+
66  template <typename T, precision P>
+
67  struct outerProduct_trait<T, P, tvec2, tvec2>
+
68  {
+
69  typedef tmat2x2<T, P> type;
+
70  };
+
71 
+
72  template <typename T, precision P>
+
73  struct outerProduct_trait<T, P, tvec2, tvec3>
+
74  {
+
75  typedef tmat2x3<T, P> type;
+
76  };
+
77 
+
78  template <typename T, precision P>
+
79  struct outerProduct_trait<T, P, tvec2, tvec4>
+
80  {
+
81  typedef tmat2x4<T, P> type;
+
82  };
+
83 
+
84  template <typename T, precision P>
+
85  struct outerProduct_trait<T, P, tvec3, tvec2>
+
86  {
+
87  typedef tmat3x2<T, P> type;
+
88  };
+
89 
+
90  template <typename T, precision P>
+
91  struct outerProduct_trait<T, P, tvec3, tvec3>
+
92  {
+
93  typedef tmat3x3<T, P> type;
+
94  };
+
95 
+
96  template <typename T, precision P>
+
97  struct outerProduct_trait<T, P, tvec3, tvec4>
+
98  {
+
99  typedef tmat3x4<T, P> type;
+
100  };
+
101 
+
102  template <typename T, precision P>
+
103  struct outerProduct_trait<T, P, tvec4, tvec2>
+
104  {
+
105  typedef tmat4x2<T, P> type;
+
106  };
+
107 
+
108  template <typename T, precision P>
+
109  struct outerProduct_trait<T, P, tvec4, tvec3>
+
110  {
+
111  typedef tmat4x3<T, P> type;
+
112  };
+
113 
+
114  template <typename T, precision P>
+
115  struct outerProduct_trait<T, P, tvec4, tvec4>
+
116  {
+
117  typedef tmat4x4<T, P> type;
+
118  };
+
119 
+
120 }//namespace detail
+
121 
+
124 
+
132  template <typename T, precision P, template <typename, precision> class matType>
+
133  GLM_FUNC_DECL matType<T, P> matrixCompMult(matType<T, P> const & x, matType<T, P> const & y);
+
134 
+
143  template <typename T, precision P, template <typename, precision> class vecTypeA, template <typename, precision> class vecTypeB>
+
144  GLM_FUNC_DECL typename detail::outerProduct_trait<T, P, vecTypeA, vecTypeB>::type outerProduct(vecTypeA<T, P> const & c, vecTypeB<T, P> const & r);
+
145 
+
152 # if((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC2012))
+
153  template <typename T, precision P, template <typename, precision> class matType>
+
154  GLM_FUNC_DECL typename matType<T, P>::transpose_type transpose(matType<T, P> const & x);
+
155 # endif
+
156 
+
163  template <typename T, precision P, template <typename, precision> class matType>
+
164  GLM_FUNC_DECL T determinant(matType<T, P> const & m);
+
165 
+
172  template <typename T, precision P, template <typename, precision> class matType>
+
173  GLM_FUNC_DECL matType<T, P> inverse(matType<T, P> const & m);
+
174 
+
176 }//namespace glm
+
177 
+
178 #include "func_matrix.inl"
+
GLM_FUNC_DECL detail::outerProduct_trait< T, P, vecTypeA, vecTypeB >::type outerProduct(vecTypeA< T, P > const &c, vecTypeB< T, P > const &r)
Treats the first parameter c as a column vector and the second parameter r as a row vector and does a...
+
Definition: _noise.hpp:39
+
GLM_FUNC_DECL matType< T, P > inverse(matType< T, P > const &m)
Return the inverse of a squared matrix.
+
GLM_FUNC_DECL matType< T, P > matrixCompMult(matType< T, P > const &x, matType< T, P > const &y)
Multiply matrix x by matrix y component-wise, i.e., result[i][j] is the scalar product of x[i][j] and...
+
GLM_FUNC_DECL T determinant(matType< T, P > const &m)
Returns the transposed matrix of x.
diff --git a/doc/api/a00033.html b/doc/api/a00033.html new file mode 100644 index 00000000..bbb20282 --- /dev/null +++ b/doc/api/a00033.html @@ -0,0 +1,95 @@ + + + + + + +0.9.6: func_noise.hpp File Reference + + + + + + +
+
+ + + + + + + +
+
0.9.6 +
+
+
+ + + + + +
+
+ +
+
func_noise.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + +

+Functions

template<typename genType >
GLM_FUNC_DECL genType::value_type noise1 (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL tvec2< typename
+genType::value_type, defaultp > 
noise2 (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL tvec3< typename
+genType::value_type, defaultp > 
noise3 (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL tvec4< typename
+genType::value_type, defaultp > 
noise4 (genType const &x)
 
+

Detailed Description

+

OpenGL Mathematics (glm.g-truc.net)

+

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+

GLM Core

+
Date
2008-08-01 / 2011-06-18
+
Author
Christophe Riccio
+
See also
GLSL 4.20.8 specification, section 8.13 Noise Functions
+ +

Definition in file func_noise.hpp.

+
+ + + + diff --git a/doc/api/a00033_source.html b/doc/api/a00033_source.html index bb10b784..1d2a5e81 100644 --- a/doc/api/a00033_source.html +++ b/doc/api/a00033_source.html @@ -3,8 +3,8 @@ - -GLM: func_exponential.hpp Source File + +0.9.6: func_noise.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,66 +41,55 @@
-
func_exponential.hpp
+
func_noise.hpp
-
1 
-
36 #ifndef glm_core_func_exponential
-
37 #define glm_core_func_exponential
-
38 
-
39 #include "type_vec1.hpp"
-
40 #include "type_vec2.hpp"
-
41 #include "type_vec3.hpp"
-
42 #include "type_vec4.hpp"
-
43 #include <cmath>
-
44 
-
45 namespace glm
-
46 {
-
49 
-
58  template <typename genType>
-
59  GLM_FUNC_DECL genType pow(genType const & base, genType const & exponent);
-
60 
-
68  template <typename genType>
-
69  GLM_FUNC_DECL genType exp(genType const & x);
-
70 
-
80  template <typename genType>
-
81  GLM_FUNC_DECL genType log(genType const & x);
-
82 
-
90  template <typename genType>
-
91  GLM_FUNC_DECL genType exp2(genType const & x);
+Go to the documentation of this file.
1 
+
42 #pragma once
+
43 
+
44 #include "type_vec1.hpp"
+
45 #include "type_vec2.hpp"
+
46 #include "type_vec3.hpp"
+
47 #include "setup.hpp"
+
48 
+
49 namespace glm
+
50 {
+
53 
+
60  template <typename genType>
+
61  GLM_FUNC_DECL typename genType::value_type noise1(genType const & x);
+
62 
+
69  template <typename genType>
+
70  GLM_FUNC_DECL tvec2<typename genType::value_type, defaultp> noise2(genType const & x);
+
71 
+
78  template <typename genType>
+
79  GLM_FUNC_DECL tvec3<typename genType::value_type, defaultp> noise3(genType const & x);
+
80 
+
87  template <typename genType>
+
88  GLM_FUNC_DECL tvec4<typename genType::value_type, defaultp> noise4(genType const & x);
+
89 
+
91 }//namespace glm
92 
-
101  template <typename genType>
-
102  GLM_FUNC_DECL genType log2(genType const & x);
-
103 
-
111  template <typename genType>
-
112  GLM_FUNC_DECL genType sqrt(genType const & x);
-
113 
-
121  template <typename genType>
-
122  GLM_FUNC_DECL genType inversesqrt(genType const & x);
-
123 
-
125 }//namespace glm
-
126 
-
127 #include "func_exponential.inl"
-
128 
-
129 #endif//glm_core_func_exponential
-
GLM_FUNC_DECL genType sqrt(genType const &x)
Returns the positive square root of x.
-
GLM_FUNC_DECL genType inversesqrt(genType const &x)
Returns the reciprocal of the positive square root of x.
-
GLM_FUNC_DECL genType exp(genType const &x)
Returns the natural exponentiation of x, i.e., e^x.
-
GLM_FUNC_DECL genType log2(genType const &x)
Returns the base 2 log of x, i.e., returns the value y, which satisfies the equation x = 2 ^ y...
-
GLM_FUNC_DECL genType pow(genType const &base, genType const &exponent)
Returns &#39;base&#39; raised to the power &#39;exponent&#39;.
-
GLM_FUNC_DECL genType exp2(genType const &x)
Returns 2 raised to the x power.
-
GLM_FUNC_DECL genType log(genType const &x)
Returns the natural logarithm of x, i.e., returns the value y which satisfies the equation x = e^y...
+
93 #include "func_noise.inl"
+
GLM_FUNC_DECL tvec3< typename genType::value_type, defaultp > noise3(genType const &x)
Returns a 3D noise value based on the input value x.
+
GLM_FUNC_DECL tvec2< typename genType::value_type, defaultp > noise2(genType const &x)
Returns a 2D noise value based on the input value x.
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
Definition: _noise.hpp:39
+
OpenGL Mathematics (glm.g-truc.net)
+
GLM_FUNC_DECL genType::value_type noise1(genType const &x)
Returns a 1D noise value based on the input value x.
+
GLM_FUNC_DECL tvec4< typename genType::value_type, defaultp > noise4(genType const &x)
Returns a 4D noise value based on the input value x.
+
OpenGL Mathematics (glm.g-truc.net)
diff --git a/doc/api/a00034.html b/doc/api/a00034.html new file mode 100644 index 00000000..8971ddc9 --- /dev/null +++ b/doc/api/a00034.html @@ -0,0 +1,106 @@ + + + + + + +0.9.6: func_packing.hpp File Reference + + + + + + +
+
+ + + + + + + +
+
0.9.6 +
+
+
+ + + + + +
+
+ +
+
func_packing.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

GLM_FUNC_DECL double packDouble2x32 (uvec2 const &v)
 
GLM_FUNC_DECL uint packHalf2x16 (vec2 const &v)
 
GLM_FUNC_DECL uint packSnorm2x16 (vec2 const &v)
 
GLM_FUNC_DECL uint packSnorm4x8 (vec4 const &v)
 
GLM_FUNC_DECL uint packUnorm2x16 (vec2 const &v)
 
GLM_FUNC_DECL uint packUnorm4x8 (vec4 const &v)
 
GLM_FUNC_DECL uvec2 unpackDouble2x32 (double const &v)
 
GLM_FUNC_DECL vec2 unpackHalf2x16 (uint const &v)
 
GLM_FUNC_DECL vec2 unpackSnorm2x16 (uint const &p)
 
GLM_FUNC_DECL vec4 unpackSnorm4x8 (uint const &p)
 
GLM_FUNC_DECL vec2 unpackUnorm2x16 (uint const &p)
 
GLM_FUNC_DECL vec4 unpackUnorm4x8 (uint const &p)
 
+

Detailed Description

+

OpenGL Mathematics (glm.g-truc.net)

+

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+

GLM Core

+
Date
2010-03-17 / 2011-06-15
+
Author
Christophe Riccio
+
See also
GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+
+GLM_GTC_packing
+ +

Definition in file func_packing.hpp.

+
+ + + + diff --git a/doc/api/a00034_source.html b/doc/api/a00034_source.html index f57c5137..a08214f7 100644 --- a/doc/api/a00034_source.html +++ b/doc/api/a00034_source.html @@ -3,8 +3,8 @@ - -GLM: func_geometric.hpp Source File + +0.9.6: func_packing.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,87 +41,75 @@
-
func_geometric.hpp
+
func_packing.hpp
-
1 
-
36 #ifndef glm_core_func_geometric
-
37 #define glm_core_func_geometric
-
38 
-
39 #include "type_vec3.hpp"
-
40 
-
41 namespace glm
-
42 {
+Go to the documentation of this file.
1 
+
41 #pragma once
+
42 
+
43 #include "type_vec2.hpp"
+
44 #include "type_vec4.hpp"
45 
-
52  template <typename genType>
-
53  GLM_FUNC_DECL typename genType::value_type length(
-
54  genType const & x);
-
55 
-
62  template <typename genType>
-
63  GLM_FUNC_DECL typename genType::value_type distance(
-
64  genType const & p0,
-
65  genType const & p1);
-
66 
-
73  template <typename T, precision P, template <typename, precision> class vecType>
-
74  GLM_FUNC_DECL T dot(
-
75  vecType<T, P> const & x,
-
76  vecType<T, P> const & y);
-
77 
-
84  template <typename genType>
-
85  GLM_FUNC_DECL genType dot(
-
86  genType const & x,
-
87  genType const & y);
-
88 
-
95  template <typename T, precision P>
-
96  GLM_FUNC_DECL detail::tvec3<T, P> cross(
-
97  detail::tvec3<T, P> const & x,
-
98  detail::tvec3<T, P> const & y);
-
99 
-
104  template <typename genType>
-
105  GLM_FUNC_DECL genType normalize(
-
106  genType const & x);
-
107 
-
114  template <typename genType>
-
115  GLM_FUNC_DECL genType faceforward(
-
116  genType const & N,
-
117  genType const & I,
-
118  genType const & Nref);
-
119 
-
127  template <typename genType>
-
128  GLM_FUNC_DECL genType reflect(
-
129  genType const & I,
-
130  genType const & N);
-
131 
-
140  template <typename T, precision P, template <typename, precision> class vecType>
-
141  GLM_FUNC_DECL vecType<T, P> refract(
-
142  vecType<T, P> const & I,
-
143  vecType<T, P> const & N,
-
144  T const & eta);
-
145 
-
147 }//namespace glm
-
148 
-
149 #include "func_geometric.inl"
-
150 
-
151 #endif//glm_core_func_geometric
-
GLM_FUNC_DECL genType faceforward(genType const &N, genType const &I, genType const &Nref)
If dot(Nref, I) &lt; 0.0, return N, otherwise, return -N.
-
GLM_FUNC_DECL T dot(vecType< T, P > const &x, vecType< T, P > const &y)
Returns the dot product of x and y, i.e., result = x * y.
-
GLM_FUNC_DECL detail::tvec3< T, P > cross(detail::tvec3< T, P > const &x, detail::tvec3< T, P > const &y)
Returns the cross product of x and y.
-
GLM_FUNC_DECL genType normalize(genType const &x)
Returns a vector in the same direction as x but with length of 1.
-
GLM_FUNC_DECL genType::value_type length(genType const &x)
Returns the length of x, i.e., sqrt(x * x).
-
GLM_FUNC_DECL vecType< T, P > refract(vecType< T, P > const &I, vecType< T, P > const &N, T const &eta)
For the incident vector I and surface normal N, and the ratio of indices of refraction eta...
-
GLM_FUNC_DECL genType reflect(genType const &I, genType const &N)
For the incident vector I and surface orientation N, returns the reflection direction : result = I - ...
-
GLM_FUNC_DECL genType::value_type distance(genType const &p0, genType const &p1)
Returns the distance betwwen p0 and p1, i.e., length(p0 - p1).
+
46 namespace glm
+
47 {
+
50 
+
62  GLM_FUNC_DECL uint packUnorm2x16(vec2 const & v);
+
63 
+
75  GLM_FUNC_DECL uint packSnorm2x16(vec2 const & v);
+
76 
+
88  GLM_FUNC_DECL uint packUnorm4x8(vec4 const & v);
+
89 
+
101  GLM_FUNC_DECL uint packSnorm4x8(vec4 const & v);
+
102 
+
114  GLM_FUNC_DECL vec2 unpackUnorm2x16(uint const & p);
+
115 
+
127  GLM_FUNC_DECL vec2 unpackSnorm2x16(uint const & p);
+
128 
+
140  GLM_FUNC_DECL vec4 unpackUnorm4x8(uint const & p);
+
141 
+
153  GLM_FUNC_DECL vec4 unpackSnorm4x8(uint const & p);
+
154 
+
163  GLM_FUNC_DECL double packDouble2x32(uvec2 const & v);
+
164 
+
172  GLM_FUNC_DECL uvec2 unpackDouble2x32(double const & v);
+
173 
+
182  GLM_FUNC_DECL uint packHalf2x16(vec2 const & v);
+
183 
+
192  GLM_FUNC_DECL vec2 unpackHalf2x16(uint const & v);
+
193 
+
195 }//namespace glm
+
196 
+
197 #include "func_packing.inl"
+
highp_vec4 vec4
4 components vector of floating-point numbers.
Definition: type_vec.hpp:402
+
GLM_FUNC_DECL uint packUnorm4x8(vec4 const &v)
First, converts each component of the normalized floating-point value v into 8- or 16-bit integer val...
+
OpenGL Mathematics (glm.g-truc.net)
+
unsigned int uint
Unsigned integer type.
Definition: type_int.hpp:306
+
GLM_FUNC_DECL uint packUnorm2x16(vec2 const &v)
First, converts each component of the normalized floating-point value v into 8- or 16-bit integer val...
+
GLM_FUNC_DECL vec2 unpackHalf2x16(uint const &v)
Returns a two-component floating-point vector with components obtained by unpacking a 32-bit unsigned...
+
GLM_FUNC_DECL vec4 unpackUnorm4x8(uint const &p)
First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers.
+
GLM_FUNC_DECL double packDouble2x32(uvec2 const &v)
Returns a double-precision value obtained by packing the components of v into a 64-bit value...
+
GLM_FUNC_DECL uint packSnorm4x8(vec4 const &v)
First, converts each component of the normalized floating-point value v into 8- or 16-bit integer val...
+
GLM_FUNC_DECL uint packSnorm2x16(vec2 const &v)
First, converts each component of the normalized floating-point value v into 8- or 16-bit integer val...
+
highp_uvec2 uvec2
2 components vector of unsigned integer numbers.
Definition: type_vec.hpp:476
+
GLM_FUNC_DECL uint packHalf2x16(vec2 const &v)
Returns an unsigned integer obtained by converting the components of a two-component floating-point v...
+
Definition: _noise.hpp:39
+
OpenGL Mathematics (glm.g-truc.net)
+
GLM_FUNC_DECL vec4 unpackSnorm4x8(uint const &p)
First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers.
+
GLM_FUNC_DECL uvec2 unpackDouble2x32(double const &v)
Returns a two-component unsigned integer vector representation of v.
+
highp_vec2 vec2
2 components vector of floating-point numbers.
Definition: type_vec.hpp:392
+
GLM_FUNC_DECL vec2 unpackUnorm2x16(uint const &p)
First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers.
+
GLM_FUNC_DECL vec2 unpackSnorm2x16(uint const &p)
First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers.
diff --git a/doc/api/a00035.html b/doc/api/a00035.html new file mode 100644 index 00000000..06964a54 --- /dev/null +++ b/doc/api/a00035.html @@ -0,0 +1,125 @@ + + + + + + +0.9.6: func_trigonometric.hpp File Reference + + + + + + +
+
+ + + + + + + +
+
0.9.6 +
+
+
+ + + + + +
+
+ +
+
func_trigonometric.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > acos (vecType< T, P > const &x)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > acosh (vecType< T, P > const &x)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > asin (vecType< T, P > const &x)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > asinh (vecType< T, P > const &x)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > atan (vecType< T, P > const &y, vecType< T, P > const &x)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > atan (vecType< T, P > const &y_over_x)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > atanh (vecType< T, P > const &x)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > cos (vecType< T, P > const &angle)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > cosh (vecType< T, P > const &angle)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > degrees (vecType< T, P > const &radians)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > radians (vecType< T, P > const &degrees)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > sin (vecType< T, P > const &angle)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > sinh (vecType< T, P > const &angle)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > tan (vecType< T, P > const &angle)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > tanh (vecType< T, P > const &angle)
 
+

Detailed Description

+

OpenGL Mathematics (glm.g-truc.net)

+

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+

GLM Core

+
Date
2008-08-01 / 2011-06-15
+
Author
Christophe Riccio
+
See also
GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
+ +

Definition in file func_trigonometric.hpp.

+
+ + + + diff --git a/doc/api/a00035_source.html b/doc/api/a00035_source.html index 48dcadb4..b924350e 100644 --- a/doc/api/a00035_source.html +++ b/doc/api/a00035_source.html @@ -3,8 +3,8 @@ - -GLM: func_integer.hpp Source File + +0.9.6: func_trigonometric.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,96 +41,95 @@
-
func_integer.hpp
+
func_trigonometric.hpp
-
1 
-
38 #ifndef glm_core_func_integer
-
39 #define glm_core_func_integer
-
40 
-
41 #include "setup.hpp"
-
42 
-
43 namespace glm
-
44 {
-
47 
-
56  template <typename genUType>
-
57  GLM_FUNC_DECL genUType uaddCarry(
-
58  genUType const & x,
-
59  genUType const & y,
-
60  genUType & carry);
-
61 
-
70  template <typename genUType>
-
71  GLM_FUNC_DECL genUType usubBorrow(
-
72  genUType const & x,
-
73  genUType const & y,
-
74  genUType & borrow);
-
75 
-
84  template <typename genUType>
-
85  GLM_FUNC_DECL void umulExtended(
-
86  genUType const & x,
-
87  genUType const & y,
-
88  genUType & msb,
-
89  genUType & lsb);
-
90 
-
99  template <typename genIType>
-
100  GLM_FUNC_DECL void imulExtended(
-
101  genIType const & x,
-
102  genIType const & y,
-
103  genIType & msb,
-
104  genIType & lsb);
-
105 
-
121  template <typename genIUType>
-
122  GLM_FUNC_DECL genIUType bitfieldExtract(
-
123  genIUType const & Value,
-
124  int const & Offset,
-
125  int const & Bits);
-
126 
-
141  template <typename genIUType>
-
142  GLM_FUNC_DECL genIUType bitfieldInsert(
-
143  genIUType const & Base,
-
144  genIUType const & Insert,
-
145  int const & Offset,
-
146  int const & Bits);
-
147 
-
156  template <typename genIUType>
-
157  GLM_FUNC_DECL genIUType bitfieldReverse(genIUType const & Value);
-
158 
-
167  template <typename T, template <typename> class genIUType>
-
168  GLM_FUNC_DECL typename genIUType<T>::signed_type bitCount(genIUType<T> const & Value);
-
169 
-
180  template <typename T, template <typename> class genIUType>
-
181  GLM_FUNC_DECL typename genIUType<T>::signed_type findLSB(genIUType<T> const & Value);
-
182 
-
194  template <typename T, template <typename> class genIUType>
-
195  GLM_FUNC_DECL typename genIUType<T>::signed_type findMSB(genIUType<T> const & Value);
-
196 
-
198 }//namespace glm
-
199 
-
200 #include "func_integer.inl"
+Go to the documentation of this file.
1 
+
44 #pragma once
+
45 
+
46 #include "setup.hpp"
+
47 #include "precision.hpp"
+
48 
+
49 namespace glm
+
50 {
+
53 
+
60  template <typename T, precision P, template <typename, precision> class vecType>
+
61  GLM_FUNC_DECL vecType<T, P> radians(vecType<T, P> const & degrees);
+
62 
+
69  template <typename T, precision P, template <typename, precision> class vecType>
+
70  GLM_FUNC_DECL vecType<T, P> degrees(vecType<T, P> const & radians);
+
71 
+
79  template <typename T, precision P, template <typename, precision> class vecType>
+
80  GLM_FUNC_DECL vecType<T, P> sin(vecType<T, P> const & angle);
+
81 
+
89  template <typename T, precision P, template <typename, precision> class vecType>
+
90  GLM_FUNC_DECL vecType<T, P> cos(vecType<T, P> const & angle);
+
91 
+
98  template <typename T, precision P, template <typename, precision> class vecType>
+
99  GLM_FUNC_DECL vecType<T, P> tan(vecType<T, P> const & angle);
+
100 
+
109  template <typename T, precision P, template <typename, precision> class vecType>
+
110  GLM_FUNC_DECL vecType<T, P> asin(vecType<T, P> const & x);
+
111 
+
120  template <typename T, precision P, template <typename, precision> class vecType>
+
121  GLM_FUNC_DECL vecType<T, P> acos(vecType<T, P> const & x);
+
122 
+
133  template <typename T, precision P, template <typename, precision> class vecType>
+
134  GLM_FUNC_DECL vecType<T, P> atan(vecType<T, P> const & y, vecType<T, P> const & x);
+
135 
+
143  template <typename T, precision P, template <typename, precision> class vecType>
+
144  GLM_FUNC_DECL vecType<T, P> atan(vecType<T, P> const & y_over_x);
+
145 
+
152  template <typename T, precision P, template <typename, precision> class vecType>
+
153  GLM_FUNC_DECL vecType<T, P> sinh(vecType<T, P> const & angle);
+
154 
+
161  template <typename T, precision P, template <typename, precision> class vecType>
+
162  GLM_FUNC_DECL vecType<T, P> cosh(vecType<T, P> const & angle);
+
163 
+
170  template <typename T, precision P, template <typename, precision> class vecType>
+
171  GLM_FUNC_DECL vecType<T, P> tanh(vecType<T, P> const & angle);
+
172 
+
179  template <typename T, precision P, template <typename, precision> class vecType>
+
180  GLM_FUNC_DECL vecType<T, P> asinh(vecType<T, P> const & x);
+
181 
+
189  template <typename T, precision P, template <typename, precision> class vecType>
+
190  GLM_FUNC_DECL vecType<T, P> acosh(vecType<T, P> const & x);
+
191 
+
199  template <typename T, precision P, template <typename, precision> class vecType>
+
200  GLM_FUNC_DECL vecType<T, P> atanh(vecType<T, P> const & x);
201 
-
202 #endif//glm_core_func_integer
-
203 
-
GLM_FUNC_DECL genIUType< T >::signed_type findLSB(genIUType< T > const &Value)
Returns the bit number of the least significant bit set to 1 in the binary representation of value...
-
GLM_FUNC_DECL genIUType< T >::signed_type bitCount(genIUType< T > const &Value)
Returns the number of bits set to 1 in the binary representation of value.
-
GLM_FUNC_DECL void imulExtended(genIType const &x, genIType const &y, genIType &msb, genIType &lsb)
Multiplies 32-bit integers x and y, producing a 64-bit result.
-
GLM_FUNC_DECL genIUType bitfieldExtract(genIUType const &Value, int const &Offset, int const &Bits)
Extracts bits [offset, offset + bits - 1] from value, returning them in the least significant bits of...
-
GLM_FUNC_DECL genIUType bitfieldReverse(genIUType const &Value)
Returns the reversal of the bits of value.
-
GLM_FUNC_DECL void umulExtended(genUType const &x, genUType const &y, genUType &msb, genUType &lsb)
Multiplies 32-bit integers x and y, producing a 64-bit result.
-
GLM_FUNC_DECL genIUType bitfieldInsert(genIUType const &Base, genIUType const &Insert, int const &Offset, int const &Bits)
Returns the insertion the bits least-significant bits of insert into base.
-
GLM_FUNC_DECL genIUType< T >::signed_type findMSB(genIUType< T > const &Value)
Returns the bit number of the most significant bit in the binary representation of value...
-
GLM_FUNC_DECL genUType uaddCarry(genUType const &x, genUType const &y, genUType &carry)
Adds 32-bit unsigned integer x and y, returning the sum modulo pow(2, 32).
-
GLM_FUNC_DECL genUType usubBorrow(genUType const &x, genUType const &y, genUType &borrow)
Subtracts the 32-bit unsigned integer y from x, returning the difference if non-negative, or pow(2, 32) plus the difference otherwise.
+
203 }//namespace glm
+
204 
+
205 #include "func_trigonometric.inl"
+
GLM_FUNC_DECL vecType< T, P > acos(vecType< T, P > const &x)
Arc cosine.
+
GLM_FUNC_DECL vecType< T, P > tanh(vecType< T, P > const &angle)
Returns the hyperbolic tangent function, sinh(angle) / cosh(angle)
+
GLM_FUNC_DECL vecType< T, P > cosh(vecType< T, P > const &angle)
Returns the hyperbolic cosine function, (exp(x) + exp(-x)) / 2.
+
OpenGL Mathematics (glm.g-truc.net)
+
GLM_FUNC_DECL vecType< T, P > asinh(vecType< T, P > const &x)
Arc hyperbolic sine; returns the inverse of sinh.
+
GLM_FUNC_DECL vecType< T, P > radians(vecType< T, P > const &degrees)
Converts degrees to radians and returns the result.
+
GLM_FUNC_DECL vecType< T, P > cos(vecType< T, P > const &angle)
The standard trigonometric cosine function.
+
GLM_FUNC_DECL vecType< T, P > sinh(vecType< T, P > const &angle)
Returns the hyperbolic sine function, (exp(x) - exp(-x)) / 2.
+
GLM_FUNC_DECL vecType< T, P > degrees(vecType< T, P > const &radians)
Converts radians to degrees and returns the result.
+
GLM_FUNC_DECL vecType< T, P > sin(vecType< T, P > const &angle)
The standard trigonometric sine function.
+
GLM_FUNC_DECL T angle(tquat< T, P > const &x)
Returns the quaternion rotation angle.
+
GLM_FUNC_DECL vecType< T, P > tan(vecType< T, P > const &angle)
The standard trigonometric tangent function.
+
GLM_FUNC_DECL vecType< T, P > acosh(vecType< T, P > const &x)
Arc hyperbolic cosine; returns the non-negative inverse of cosh.
+
Definition: _noise.hpp:39
+
GLM_FUNC_DECL vecType< T, P > atanh(vecType< T, P > const &x)
Arc hyperbolic tangent; returns the inverse of tanh.
+
OpenGL Mathematics (glm.g-truc.net)
+
GLM_FUNC_DECL vecType< T, P > atan(vecType< T, P > const &y_over_x)
Arc tangent.
+
GLM_FUNC_DECL vecType< T, P > asin(vecType< T, P > const &x)
Arc sine.
diff --git a/doc/api/a00036.html b/doc/api/a00036.html new file mode 100644 index 00000000..e9ef94bb --- /dev/null +++ b/doc/api/a00036.html @@ -0,0 +1,107 @@ + + + + + + +0.9.6: func_vector_relational.hpp File Reference + + + + + + +
+
+ + + + + + + +
+
0.9.6 +
+
+
+ + + + + +
+
+ +
+
func_vector_relational.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL bool all (vecType< bool, P > const &v)
 
template<precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL bool any (vecType< bool, P > const &v)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< bool, P > equal (vecType< T, P > const &x, vecType< T, P > const &y)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< bool, P > greaterThan (vecType< T, P > const &x, vecType< T, P > const &y)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< bool, P > greaterThanEqual (vecType< T, P > const &x, vecType< T, P > const &y)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< bool, P > lessThan (vecType< T, P > const &x, vecType< T, P > const &y)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< bool, P > lessThanEqual (vecType< T, P > const &x, vecType< T, P > const &y)
 
template<precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< bool, P > not_ (vecType< bool, P > const &v)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< bool, P > notEqual (vecType< T, P > const &x, vecType< T, P > const &y)
 
+

Detailed Description

+

OpenGL Mathematics (glm.g-truc.net)

+

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+

GLM Core

+
Date
2008-08-03 / 2011-06-15
+
Author
Christophe Riccio
+
See also
GLSL 4.20.8 specification, section 8.7 Vector Relational Functions
+ +

Definition in file func_vector_relational.hpp.

+
+ + + + diff --git a/doc/api/a00036_source.html b/doc/api/a00036_source.html index ac54cfd7..0fe4be52 100644 --- a/doc/api/a00036_source.html +++ b/doc/api/a00036_source.html @@ -3,8 +3,8 @@ - -GLM: func_matrix.hpp Source File + +0.9.6: func_vector_relational.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,124 +41,71 @@
-
func_matrix.hpp
+
func_vector_relational.hpp
-
1 
-
40 #ifndef GLM_CORE_func_matrix
-
41 #define GLM_CORE_func_matrix
-
42 
-
43 // Dependencies
-
44 #include "../detail/precision.hpp"
-
45 #include "../detail/setup.hpp"
-
46 #include "../detail/type_mat.hpp"
-
47 #include "../vec2.hpp"
-
48 #include "../vec3.hpp"
-
49 #include "../vec4.hpp"
-
50 #include "../mat2x2.hpp"
-
51 #include "../mat2x3.hpp"
-
52 #include "../mat2x4.hpp"
-
53 #include "../mat3x2.hpp"
-
54 #include "../mat3x3.hpp"
-
55 #include "../mat3x4.hpp"
-
56 #include "../mat4x2.hpp"
-
57 #include "../mat4x3.hpp"
-
58 #include "../mat4x4.hpp"
-
59 
-
60 namespace glm{
-
61 namespace detail
-
62 {
-
63  template <typename T, precision P>
-
64  struct outerProduct_trait<T, P, tvec2, tvec2>
-
65  {
-
66  typedef tmat2x2<T, P> type;
-
67  };
-
68 
-
69  template <typename T, precision P>
-
70  struct outerProduct_trait<T, P, tvec2, tvec3>
-
71  {
-
72  typedef tmat2x3<T, P> type;
-
73  };
-
74 
-
75  template <typename T, precision P>
-
76  struct outerProduct_trait<T, P, tvec2, tvec4>
-
77  {
-
78  typedef tmat2x4<T, P> type;
-
79  };
-
80 
-
81  template <typename T, precision P>
-
82  struct outerProduct_trait<T, P, tvec3, tvec2>
-
83  {
-
84  typedef tmat3x2<T, P> type;
-
85  };
-
86 
-
87  template <typename T, precision P>
-
88  struct outerProduct_trait<T, P, tvec3, tvec3>
-
89  {
-
90  typedef tmat3x3<T, P> type;
-
91  };
-
92 
-
93  template <typename T, precision P>
-
94  struct outerProduct_trait<T, P, tvec3, tvec4>
-
95  {
-
96  typedef tmat3x4<T, P> type;
-
97  };
-
98 
-
99  template <typename T, precision P>
-
100  struct outerProduct_trait<T, P, tvec4, tvec2>
-
101  {
-
102  typedef tmat4x2<T, P> type;
-
103  };
-
104 
-
105  template <typename T, precision P>
-
106  struct outerProduct_trait<T, P, tvec4, tvec3>
-
107  {
-
108  typedef tmat4x3<T, P> type;
-
109  };
-
110 
-
111  template <typename T, precision P>
-
112  struct outerProduct_trait<T, P, tvec4, tvec4>
-
113  {
-
114  typedef tmat4x4<T, P> type;
-
115  };
-
116 
-
117 }//namespace detail
-
118 
-
121 
-
129  template <typename T, precision P, template <typename, precision> class matType>
-
130  GLM_FUNC_DECL matType<T, P> matrixCompMult(matType<T, P> const & x, matType<T, P> const & y);
-
131 
-
142  template <typename T, precision P, template <typename, precision> class vecTypeA, template <typename, precision> class vecTypeB>
-
143  GLM_FUNC_DECL typename detail::outerProduct_trait<T, P, vecTypeA, vecTypeB>::type outerProduct(vecTypeA<T, P> const & c, vecTypeB<T, P> const & r);
-
144 
-
151 # if((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC11))
-
152  template <typename T, precision P, template <typename, precision> class matType>
-
153  GLM_FUNC_DECL typename matType<T, P>::transpose_type transpose(matType<T, P> const & x);
-
154 # endif
-
155 
-
162  template <typename T, precision P, template <typename, precision> class matType>
-
163  GLM_FUNC_DECL T determinant(matType<T, P> const & m);
-
164 
-
171  template <typename T, precision P, template <typename, precision> class matType>
-
172  GLM_FUNC_DECL matType<T, P> inverse(matType<T, P> const & m);
-
173 
-
175 }//namespace glm
-
176 
-
177 #include "func_matrix.inl"
-
178 
-
179 #endif//GLM_CORE_func_matrix
-
GLM_FUNC_DECL detail::tquat< T, P > inverse(detail::tquat< T, P > const &q)
Returns the q inverse.
+Go to the documentation of this file.
1 
+
45 #pragma once
+
46 
+
47 #include "precision.hpp"
+
48 #include "setup.hpp"
+
49 
+
50 namespace glm
+
51 {
+
54 
+
61  template <typename T, precision P, template <typename, precision> class vecType>
+
62  GLM_FUNC_DECL vecType<bool, P> lessThan(vecType<T, P> const & x, vecType<T, P> const & y);
+
63 
+
70  template <typename T, precision P, template <typename, precision> class vecType>
+
71  GLM_FUNC_DECL vecType<bool, P> lessThanEqual(vecType<T, P> const & x, vecType<T, P> const & y);
+
72 
+
79  template <typename T, precision P, template <typename, precision> class vecType>
+
80  GLM_FUNC_DECL vecType<bool, P> greaterThan(vecType<T, P> const & x, vecType<T, P> const & y);
+
81 
+
88  template <typename T, precision P, template <typename, precision> class vecType>
+
89  GLM_FUNC_DECL vecType<bool, P> greaterThanEqual(vecType<T, P> const & x, vecType<T, P> const & y);
+
90 
+
97  template <typename T, precision P, template <typename, precision> class vecType>
+
98  GLM_FUNC_DECL vecType<bool, P> equal(vecType<T, P> const & x, vecType<T, P> const & y);
+
99 
+
106  template <typename T, precision P, template <typename, precision> class vecType>
+
107  GLM_FUNC_DECL vecType<bool, P> notEqual(vecType<T, P> const & x, vecType<T, P> const & y);
+
108 
+
115  template <precision P, template <typename, precision> class vecType>
+
116  GLM_FUNC_DECL bool any(vecType<bool, P> const & v);
+
117 
+
124  template <precision P, template <typename, precision> class vecType>
+
125  GLM_FUNC_DECL bool all(vecType<bool, P> const & v);
+
126 
+
134  template <precision P, template <typename, precision> class vecType>
+
135  GLM_FUNC_DECL vecType<bool, P> not_(vecType<bool, P> const & v);
+
136 
+
138 }//namespace glm
+
139 
+
140 #include "func_vector_relational.inl"
+
OpenGL Mathematics (glm.g-truc.net)
+
GLM_FUNC_DECL vecType< bool, P > lessThan(vecType< T, P > const &x, vecType< T, P > const &y)
Returns the component-wise comparison result of x < y.
+
GLM_FUNC_DECL vecType< bool, P > greaterThan(vecType< T, P > const &x, vecType< T, P > const &y)
Returns the component-wise comparison of result x > y.
+
GLM_FUNC_DECL vecType< bool, P > greaterThanEqual(vecType< T, P > const &x, vecType< T, P > const &y)
Returns the component-wise comparison of result x >= y.
+
GLM_FUNC_DECL vecType< bool, P > equal(vecType< T, P > const &x, vecType< T, P > const &y)
Returns the component-wise comparison of result x == y.
+
GLM_FUNC_DECL bool any(vecType< bool, P > const &v)
Returns true if any component of x is true.
+
GLM_FUNC_DECL bool all(vecType< bool, P > const &v)
Returns true if all components of x are true.
+
GLM_FUNC_DECL vecType< bool, P > lessThanEqual(vecType< T, P > const &x, vecType< T, P > const &y)
Returns the component-wise comparison of result x <= y.
+
Definition: _noise.hpp:39
+
GLM_FUNC_DECL vecType< bool, P > not_(vecType< bool, P > const &v)
Returns the component-wise logical complement of x.
+
GLM_FUNC_DECL vecType< bool, P > notEqual(vecType< T, P > const &x, vecType< T, P > const &y)
Returns the component-wise comparison of result x != y.
+
OpenGL Mathematics (glm.g-truc.net)
diff --git a/doc/api/a00037.html b/doc/api/a00037.html new file mode 100644 index 00000000..d12720dc --- /dev/null +++ b/doc/api/a00037.html @@ -0,0 +1,986 @@ + + + + + + +0.9.6: fwd.hpp File Reference + + + + + + +
+
+ + + + + + + +
+
0.9.6 +
+
+
+ + + + + +
+
+ +
+
fwd.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Typedefs

typedef highp_dquat dquat
 
typedef highp_float32_t f32
 
typedef f32mat2x2 f32mat2
 
typedef highp_f32mat2x2 f32mat2x2
 
typedef highp_f32mat2x3 f32mat2x3
 
typedef highp_f32mat2x4 f32mat2x4
 
typedef f32mat3x3 f32mat3
 
typedef highp_f32mat3x2 f32mat3x2
 
typedef highp_f32mat3x3 f32mat3x3
 
typedef highp_f32mat3x4 f32mat3x4
 
typedef f32mat4x4 f32mat4
 
typedef highp_f32mat4x2 f32mat4x2
 
typedef highp_f32mat4x3 f32mat4x3
 
typedef highp_f32mat4x4 f32mat4x4
 
typedef highp_f32quat f32quat
 
typedef highp_f32vec1 f32vec1
 
typedef highp_f32vec2 f32vec2
 
typedef highp_f32vec3 f32vec3
 
typedef highp_f32vec4 f32vec4
 
typedef highp_float64_t f64
 
typedef f64mat2x2 f64mat2
 
typedef highp_f64mat2x2 f64mat2x2
 
typedef highp_f64mat2x3 f64mat2x3
 
typedef highp_f64mat2x4 f64mat2x4
 
typedef f64mat3x3 f64mat3
 
typedef highp_f64mat3x2 f64mat3x2
 
typedef highp_f64mat3x3 f64mat3x3
 
typedef highp_f64mat3x4 f64mat3x4
 
typedef f64mat4x4 f64mat4
 
typedef highp_f64mat4x2 f64mat4x2
 
typedef highp_f64mat4x3 f64mat4x3
 
typedef highp_f64mat4x4 f64mat4x4
 
typedef highp_f64quat f64quat
 
typedef highp_f64vec1 f64vec1
 
typedef highp_f64vec2 f64vec2
 
typedef highp_f64vec3 f64vec3
 
typedef highp_f64vec4 f64vec4
 
typedef highp_float32_t float32_t
 
typedef highp_float64_t float64_t
 
typedef fmat2x2 fmat2
 
typedef highp_f32mat2x2 fmat2x2
 
typedef highp_f32mat2x3 fmat2x3
 
typedef highp_f32mat2x4 fmat2x4
 
typedef fmat3x3 fmat3
 
typedef highp_f32mat3x2 fmat3x2
 
typedef highp_f32mat3x3 fmat3x3
 
typedef highp_f32mat3x4 fmat3x4
 
typedef fmat4x4 fmat4
 
typedef highp_f32mat4x2 fmat4x2
 
typedef highp_f32mat4x3 fmat4x3
 
typedef highp_f32mat4x4 fmat4x4
 
typedef quat fquat
 
typedef highp_f32vec1 fvec1
 
typedef highp_f32vec2 fvec2
 
typedef highp_f32vec3 fvec3
 
typedef highp_f32vec4 fvec4
 
typedef tquat< double, highp > highp_dquat
 
typedef float32 highp_f32
 
typedef highp_f32mat2x2 highp_f32mat2
 
typedef tmat2x2< f32, highp > highp_f32mat2x2
 
typedef tmat2x3< f32, highp > highp_f32mat2x3
 
typedef tmat2x4< f32, highp > highp_f32mat2x4
 
typedef highp_f32mat3x3 highp_f32mat3
 
typedef tmat3x2< f32, highp > highp_f32mat3x2
 
typedef tmat3x3< f32, highp > highp_f32mat3x3
 
typedef tmat3x4< f32, highp > highp_f32mat3x4
 
typedef highp_f32mat4x4 highp_f32mat4
 
typedef tmat4x2< f32, highp > highp_f32mat4x2
 
typedef tmat4x3< f32, highp > highp_f32mat4x3
 
typedef tmat4x4< f32, highp > highp_f32mat4x4
 
typedef tquat< f32, highp > highp_f32quat
 
typedef tvec1< f32, highp > highp_f32vec1
 
typedef tvec2< f32, highp > highp_f32vec2
 
typedef tvec3< f32, highp > highp_f32vec3
 
typedef tvec4< f32, highp > highp_f32vec4
 
typedef float64 highp_f64
 
typedef highp_f64mat2x2 highp_f64mat2
 
typedef tmat2x2< f64, highp > highp_f64mat2x2
 
typedef tmat2x3< f64, highp > highp_f64mat2x3
 
typedef tmat2x4< f64, highp > highp_f64mat2x4
 
typedef highp_f64mat3x3 highp_f64mat3
 
typedef tmat3x2< f64, highp > highp_f64mat3x2
 
typedef tmat3x3< f64, highp > highp_f64mat3x3
 
typedef tmat3x4< f64, highp > highp_f64mat3x4
 
typedef highp_f64mat4x4 highp_f64mat4
 
typedef tmat4x2< f64, highp > highp_f64mat4x2
 
typedef tmat4x3< f64, highp > highp_f64mat4x3
 
typedef tmat4x4< f64, highp > highp_f64mat4x4
 
typedef tquat< f64, highp > highp_f64quat
 
typedef tvec1< f64, highp > highp_f64vec1
 
typedef tvec2< f64, highp > highp_f64vec2
 
typedef tvec3< f64, highp > highp_f64vec3
 
typedef tvec4< f64, highp > highp_f64vec4
 
typedef detail::float32 highp_float32
 
typedef detail::float32 highp_float32_t
 
typedef detail::float64 highp_float64
 
typedef detail::float64 highp_float64_t
 
typedef highp_fmat2x2 highp_fmat2
 
typedef tmat2x2< f32, highp > highp_fmat2x2
 
typedef tmat2x3< f32, highp > highp_fmat2x3
 
typedef tmat2x4< f32, highp > highp_fmat2x4
 
typedef highp_fmat3x3 highp_fmat3
 
typedef tmat3x2< f32, highp > highp_fmat3x2
 
typedef tmat3x3< f32, highp > highp_fmat3x3
 
typedef tmat3x4< f32, highp > highp_fmat3x4
 
typedef highp_fmat4x4 highp_fmat4
 
typedef tmat4x2< f32, highp > highp_fmat4x2
 
typedef tmat4x3< f32, highp > highp_fmat4x3
 
typedef tmat4x4< f32, highp > highp_fmat4x4
 
typedef highp_quat highp_fquat
 
typedef tvec1< float, highp > highp_fvec1
 
typedef tvec2< float, highp > highp_fvec2
 
typedef tvec3< float, highp > highp_fvec3
 
typedef tvec4< float, highp > highp_fvec4
 
typedef detail::int16 highp_i16
 
typedef tvec1< i16, highp > highp_i16vec1
 
typedef tvec2< i16, highp > highp_i16vec2
 
typedef tvec3< i16, highp > highp_i16vec3
 
typedef tvec4< i16, highp > highp_i16vec4
 
typedef detail::int32 highp_i32
 
typedef tvec1< i32, highp > highp_i32vec1
 
typedef tvec2< i32, highp > highp_i32vec2
 
typedef tvec3< i32, highp > highp_i32vec3
 
typedef tvec4< i32, highp > highp_i32vec4
 
typedef detail::int64 highp_i64
 
typedef tvec1< i64, highp > highp_i64vec1
 
typedef tvec2< i64, highp > highp_i64vec2
 
typedef tvec3< i64, highp > highp_i64vec3
 
typedef tvec4< i64, highp > highp_i64vec4
 
typedef detail::int8 highp_i8
 
typedef tvec1< i8, highp > highp_i8vec1
 
typedef tvec2< i8, highp > highp_i8vec2
 
typedef tvec3< i8, highp > highp_i8vec3
 
typedef tvec4< i8, highp > highp_i8vec4
 
typedef detail::int16 highp_int16
 
typedef detail::int16 highp_int16_t
 
typedef detail::int32 highp_int32
 
typedef detail::int32 highp_int32_t
 
typedef detail::int64 highp_int64
 
typedef detail::int64 highp_int64_t
 
typedef detail::int8 highp_int8
 
typedef detail::int8 highp_int8_t
 
typedef tquat< float, highp > highp_quat
 
typedef detail::uint16 highp_u16
 
typedef tvec1< u16, highp > highp_u16vec1
 
typedef tvec2< u16, highp > highp_u16vec2
 
typedef tvec3< u16, highp > highp_u16vec3
 
typedef tvec4< u16, highp > highp_u16vec4
 
typedef detail::uint32 highp_u32
 
typedef tvec1< u32, highp > highp_u32vec1
 
typedef tvec2< u32, highp > highp_u32vec2
 
typedef tvec3< u32, highp > highp_u32vec3
 
typedef tvec4< u32, highp > highp_u32vec4
 
typedef detail::uint64 highp_u64
 
typedef tvec1< u64, highp > highp_u64vec1
 
typedef tvec2< u64, highp > highp_u64vec2
 
typedef tvec3< u64, highp > highp_u64vec3
 
typedef tvec4< u64, highp > highp_u64vec4
 
typedef detail::uint8 highp_u8
 
typedef tvec1< u8, highp > highp_u8vec1
 
typedef tvec2< u8, highp > highp_u8vec2
 
typedef tvec3< u8, highp > highp_u8vec3
 
typedef tvec4< u8, highp > highp_u8vec4
 
typedef detail::uint16 highp_uint16
 
typedef detail::uint16 highp_uint16_t
 
typedef detail::uint32 highp_uint32
 
typedef detail::uint32 highp_uint32_t
 
typedef detail::uint64 highp_uint64
 
typedef detail::uint64 highp_uint64_t
 
typedef detail::uint8 highp_uint8
 
typedef detail::uint8 highp_uint8_t
 
typedef tvec1< float, highp > highp_vec1
 
typedef detail::int16 i16
 
typedef highp_i16vec1 i16vec1
 
typedef highp_i16vec2 i16vec2
 
typedef highp_i16vec3 i16vec3
 
typedef highp_i16vec4 i16vec4
 
typedef detail::int32 i32
 
typedef highp_i32vec1 i32vec1
 
typedef highp_i32vec2 i32vec2
 
typedef highp_i32vec3 i32vec3
 
typedef highp_i32vec4 i32vec4
 
typedef detail::int64 i64
 
typedef highp_i64vec1 i64vec1
 
typedef highp_i64vec2 i64vec2
 
typedef highp_i64vec3 i64vec3
 
typedef highp_i64vec4 i64vec4
 
typedef detail::int8 i8
 
typedef highp_i8vec1 i8vec1
 
typedef highp_i8vec2 i8vec2
 
typedef highp_i8vec3 i8vec3
 
typedef highp_i8vec4 i8vec4
 
typedef detail::int16 int16_t
 
typedef detail::int32 int32_t
 
typedef detail::int64 int64_t
 
typedef detail::int8 int8_t
 
typedef tquat< double, lowp > lowp_dquat
 
typedef float32 lowp_f32
 
typedef lowp_f32mat2x2 lowp_f32mat2
 
typedef tmat2x2< f32, lowp > lowp_f32mat2x2
 
typedef tmat2x3< f32, lowp > lowp_f32mat2x3
 
typedef tmat2x4< f32, lowp > lowp_f32mat2x4
 
typedef lowp_f32mat3x3 lowp_f32mat3
 
typedef tmat3x2< f32, lowp > lowp_f32mat3x2
 
typedef tmat3x3< f32, lowp > lowp_f32mat3x3
 
typedef tmat3x4< f32, lowp > lowp_f32mat3x4
 
typedef lowp_f32mat4x4 lowp_f32mat4
 
typedef tmat4x2< f32, lowp > lowp_f32mat4x2
 
typedef tmat4x3< f32, lowp > lowp_f32mat4x3
 
typedef tmat4x4< f32, lowp > lowp_f32mat4x4
 
typedef tquat< f32, lowp > lowp_f32quat
 
typedef tvec1< f32, lowp > lowp_f32vec1
 
typedef tvec2< f32, lowp > lowp_f32vec2
 
typedef tvec3< f32, lowp > lowp_f32vec3
 
typedef tvec4< f32, lowp > lowp_f32vec4
 
typedef float64 lowp_f64
 
typedef lowp_f64mat2x2 lowp_f64mat2
 
typedef tmat2x2< f64, lowp > lowp_f64mat2x2
 
typedef tmat2x3< f64, lowp > lowp_f64mat2x3
 
typedef tmat2x4< f64, lowp > lowp_f64mat2x4
 
typedef lowp_f64mat3x3 lowp_f64mat3
 
typedef tmat3x2< f64, lowp > lowp_f64mat3x2
 
typedef tmat3x3< f64, lowp > lowp_f64mat3x3
 
typedef tmat3x4< f64, lowp > lowp_f64mat3x4
 
typedef lowp_f64mat4x4 lowp_f64mat4
 
typedef tmat4x2< f64, lowp > lowp_f64mat4x2
 
typedef tmat4x3< f64, lowp > lowp_f64mat4x3
 
typedef tmat4x4< f64, lowp > lowp_f64mat4x4
 
typedef tquat< f64, lowp > lowp_f64quat
 
typedef tvec1< f64, lowp > lowp_f64vec1
 
typedef tvec2< f64, lowp > lowp_f64vec2
 
typedef tvec3< f64, lowp > lowp_f64vec3
 
typedef tvec4< f64, lowp > lowp_f64vec4
 
typedef detail::float32 lowp_float32
 
typedef detail::float32 lowp_float32_t
 
typedef detail::float64 lowp_float64
 
typedef detail::float64 lowp_float64_t
 
typedef lowp_fmat2x2 lowp_fmat2
 
typedef tmat2x2< f32, lowp > lowp_fmat2x2
 
typedef tmat2x3< f32, lowp > lowp_fmat2x3
 
typedef tmat2x4< f32, lowp > lowp_fmat2x4
 
typedef lowp_fmat3x3 lowp_fmat3
 
typedef tmat3x2< f32, lowp > lowp_fmat3x2
 
typedef tmat3x3< f32, lowp > lowp_fmat3x3
 
typedef tmat3x4< f32, lowp > lowp_fmat3x4
 
typedef lowp_fmat4x4 lowp_fmat4
 
typedef tmat4x2< f32, lowp > lowp_fmat4x2
 
typedef tmat4x3< f32, lowp > lowp_fmat4x3
 
typedef tmat4x4< f32, lowp > lowp_fmat4x4
 
typedef lowp_quat lowp_fquat
 
typedef tvec1< float, lowp > lowp_fvec1
 
typedef tvec2< float, lowp > lowp_fvec2
 
typedef tvec3< float, lowp > lowp_fvec3
 
typedef tvec4< float, lowp > lowp_fvec4
 
typedef detail::int16 lowp_i16
 
typedef tvec1< i16, lowp > lowp_i16vec1
 
typedef tvec2< i16, lowp > lowp_i16vec2
 
typedef tvec3< i16, lowp > lowp_i16vec3
 
typedef tvec4< i16, lowp > lowp_i16vec4
 
typedef detail::int32 lowp_i32
 
typedef tvec1< i32, lowp > lowp_i32vec1
 
typedef tvec2< i32, lowp > lowp_i32vec2
 
typedef tvec3< i32, lowp > lowp_i32vec3
 
typedef tvec4< i32, lowp > lowp_i32vec4
 
typedef detail::int64 lowp_i64
 
typedef tvec1< i64, lowp > lowp_i64vec1
 
typedef tvec2< i64, lowp > lowp_i64vec2
 
typedef tvec3< i64, lowp > lowp_i64vec3
 
typedef tvec4< i64, lowp > lowp_i64vec4
 
typedef detail::int8 lowp_i8
 
typedef tvec1< i8, lowp > lowp_i8vec1
 
typedef tvec2< i8, lowp > lowp_i8vec2
 
typedef tvec3< i8, lowp > lowp_i8vec3
 
typedef tvec4< i8, lowp > lowp_i8vec4
 
typedef detail::int16 lowp_int16
 
typedef detail::int16 lowp_int16_t
 
typedef detail::int32 lowp_int32
 
typedef detail::int32 lowp_int32_t
 
typedef detail::int64 lowp_int64
 
typedef detail::int64 lowp_int64_t
 
typedef detail::int8 lowp_int8
 
typedef detail::int8 lowp_int8_t
 
typedef tquat< float, lowp > lowp_quat
 
typedef detail::uint16 lowp_u16
 
typedef tvec1< u16, lowp > lowp_u16vec1
 
typedef tvec2< u16, lowp > lowp_u16vec2
 
typedef tvec3< u16, lowp > lowp_u16vec3
 
typedef tvec4< u16, lowp > lowp_u16vec4
 
typedef detail::uint32 lowp_u32
 
typedef tvec1< u32, lowp > lowp_u32vec1
 
typedef tvec2< u32, lowp > lowp_u32vec2
 
typedef tvec3< u32, lowp > lowp_u32vec3
 
typedef tvec4< u32, lowp > lowp_u32vec4
 
typedef detail::uint64 lowp_u64
 
typedef tvec1< u64, lowp > lowp_u64vec1
 
typedef tvec2< u64, lowp > lowp_u64vec2
 
typedef tvec3< u64, lowp > lowp_u64vec3
 
typedef tvec4< u64, lowp > lowp_u64vec4
 
typedef detail::uint8 lowp_u8
 
typedef tvec1< u8, lowp > lowp_u8vec1
 
typedef tvec2< u8, lowp > lowp_u8vec2
 
typedef tvec3< u8, lowp > lowp_u8vec3
 
typedef tvec4< u8, lowp > lowp_u8vec4
 
typedef detail::uint16 lowp_uint16
 
typedef detail::uint16 lowp_uint16_t
 
typedef detail::uint32 lowp_uint32
 
typedef detail::uint32 lowp_uint32_t
 
typedef detail::uint64 lowp_uint64
 
typedef detail::uint64 lowp_uint64_t
 
typedef detail::uint8 lowp_uint8
 
typedef detail::uint8 lowp_uint8_t
 
typedef tvec1< float, lowp > lowp_vec1
 
typedef tquat< double, mediump > mediump_dquat
 
typedef float32 mediump_f32
 
typedef mediump_f32mat2x2 mediump_f32mat2
 
typedef tmat2x2< f32, mediump > mediump_f32mat2x2
 
typedef tmat2x3< f32, mediump > mediump_f32mat2x3
 
typedef tmat2x4< f32, mediump > mediump_f32mat2x4
 
typedef mediump_f32mat3x3 mediump_f32mat3
 
typedef tmat3x2< f32, mediump > mediump_f32mat3x2
 
typedef tmat3x3< f32, mediump > mediump_f32mat3x3
 
typedef tmat3x4< f32, mediump > mediump_f32mat3x4
 
typedef mediump_f32mat4x4 mediump_f32mat4
 
typedef tmat4x2< f32, mediump > mediump_f32mat4x2
 
typedef tmat4x3< f32, mediump > mediump_f32mat4x3
 
typedef tmat4x4< f32, mediump > mediump_f32mat4x4
 
typedef tquat< f32, mediump > mediump_f32quat
 
typedef tvec1< f32, mediump > mediump_f32vec1
 
typedef tvec2< f32, mediump > mediump_f32vec2
 
typedef tvec3< f32, mediump > mediump_f32vec3
 
typedef tvec4< f32, mediump > mediump_f32vec4
 
typedef float64 mediump_f64
 
typedef mediump_f64mat2x2 mediump_f64mat2
 
typedef tmat2x2< f64, mediump > mediump_f64mat2x2
 
typedef tmat2x3< f64, mediump > mediump_f64mat2x3
 
typedef tmat2x4< f64, mediump > mediump_f64mat2x4
 
typedef mediump_f64mat3x3 mediump_f64mat3
 
typedef tmat3x2< f64, mediump > mediump_f64mat3x2
 
typedef tmat3x3< f64, mediump > mediump_f64mat3x3
 
typedef tmat3x4< f64, mediump > mediump_f64mat3x4
 
typedef mediump_f64mat4x4 mediump_f64mat4
 
typedef tmat4x2< f64, mediump > mediump_f64mat4x2
 
typedef tmat4x3< f64, mediump > mediump_f64mat4x3
 
typedef tmat4x4< f64, mediump > mediump_f64mat4x4
 
typedef tquat< f64, mediump > mediump_f64quat
 
typedef tvec1< f64, mediump > mediump_f64vec1
 
typedef tvec2< f64, mediump > mediump_f64vec2
 
typedef tvec3< f64, mediump > mediump_f64vec3
 
typedef tvec4< f64, mediump > mediump_f64vec4
 
typedef detail::float32 mediump_float32
 
typedef detail::float32 mediump_float32_t
 
typedef detail::float64 mediump_float64
 
typedef detail::float64 mediump_float64_t
 
typedef mediump_fmat2x2 mediump_fmat2
 
typedef tmat2x2< f32, mediump > mediump_fmat2x2
 
typedef tmat2x3< f32, mediump > mediump_fmat2x3
 
typedef tmat2x4< f32, mediump > mediump_fmat2x4
 
typedef mediump_fmat3x3 mediump_fmat3
 
typedef tmat3x2< f32, mediump > mediump_fmat3x2
 
typedef tmat3x3< f32, mediump > mediump_fmat3x3
 
typedef tmat3x4< f32, mediump > mediump_fmat3x4
 
typedef mediump_fmat4x4 mediump_fmat4
 
typedef tmat4x2< f32, mediump > mediump_fmat4x2
 
typedef tmat4x3< f32, mediump > mediump_fmat4x3
 
typedef tmat4x4< f32, mediump > mediump_fmat4x4
 
typedef mediump_quat mediump_fquat
 
typedef tvec1< float, mediump > mediump_fvec1
 
typedef tvec2< float, mediump > mediump_fvec2
 
typedef tvec3< float, mediump > mediump_fvec3
 
typedef tvec4< float, mediump > mediump_fvec4
 
typedef detail::int16 mediump_i16
 
typedef tvec1< i16, mediump > mediump_i16vec1
 
typedef tvec2< i16, mediump > mediump_i16vec2
 
typedef tvec3< i16, mediump > mediump_i16vec3
 
typedef tvec4< i16, mediump > mediump_i16vec4
 
typedef detail::int32 mediump_i32
 
typedef tvec1< i32, mediump > mediump_i32vec1
 
typedef tvec2< i32, mediump > mediump_i32vec2
 
typedef tvec3< i32, mediump > mediump_i32vec3
 
typedef tvec4< i32, mediump > mediump_i32vec4
 
typedef detail::int64 mediump_i64
 
typedef tvec1< i64, mediump > mediump_i64vec1
 
typedef tvec2< i64, mediump > mediump_i64vec2
 
typedef tvec3< i64, mediump > mediump_i64vec3
 
typedef tvec4< i64, mediump > mediump_i64vec4
 
typedef detail::int8 mediump_i8
 
typedef tvec1< i8, mediump > mediump_i8vec1
 
typedef tvec2< i8, mediump > mediump_i8vec2
 
typedef tvec3< i8, mediump > mediump_i8vec3
 
typedef tvec4< i8, mediump > mediump_i8vec4
 
typedef detail::int16 mediump_int16
 
typedef detail::int16 mediump_int16_t
 
typedef detail::int32 mediump_int32
 
typedef detail::int32 mediump_int32_t
 
typedef detail::int64 mediump_int64
 
typedef detail::int64 mediump_int64_t
 
typedef detail::int8 mediump_int8
 
typedef detail::int8 mediump_int8_t
 
typedef tquat< float, mediump > mediump_quat
 
typedef detail::uint16 mediump_u16
 
typedef tvec1< u16, mediump > mediump_u16vec1
 
typedef tvec2< u16, mediump > mediump_u16vec2
 
typedef tvec3< u16, mediump > mediump_u16vec3
 
typedef tvec4< u16, mediump > mediump_u16vec4
 
typedef detail::uint32 mediump_u32
 
typedef tvec1< u32, mediump > mediump_u32vec1
 
typedef tvec2< u32, mediump > mediump_u32vec2
 
typedef tvec3< u32, mediump > mediump_u32vec3
 
typedef tvec4< u32, mediump > mediump_u32vec4
 
typedef detail::uint64 mediump_u64
 
typedef tvec1< u64, mediump > mediump_u64vec1
 
typedef tvec2< u64, mediump > mediump_u64vec2
 
typedef tvec3< u64, mediump > mediump_u64vec3
 
typedef tvec4< u64, mediump > mediump_u64vec4
 
typedef detail::uint8 mediump_u8
 
typedef tvec1< u8, mediump > mediump_u8vec1
 
typedef tvec2< u8, mediump > mediump_u8vec2
 
typedef tvec3< u8, mediump > mediump_u8vec3
 
typedef tvec4< u8, mediump > mediump_u8vec4
 
typedef detail::uint16 mediump_uint16
 
typedef detail::uint16 mediump_uint16_t
 
typedef detail::uint32 mediump_uint32
 
typedef detail::uint32 mediump_uint32_t
 
typedef detail::uint64 mediump_uint64
 
typedef detail::uint64 mediump_uint64_t
 
typedef detail::uint8 mediump_uint8
 
typedef detail::uint8 mediump_uint8_t
 
typedef tvec1< float, mediump > mediump_vec1
 
+typedef highp_quat quat
 
typedef detail::uint16 u16
 
typedef highp_u16vec1 u16vec1
 
typedef highp_u16vec2 u16vec2
 
typedef highp_u16vec3 u16vec3
 
typedef highp_u16vec4 u16vec4
 
typedef detail::uint32 u32
 
typedef highp_u32vec1 u32vec1
 
typedef highp_u32vec2 u32vec2
 
typedef highp_u32vec3 u32vec3
 
typedef highp_u32vec4 u32vec4
 
typedef detail::uint64 u64
 
typedef highp_u64vec1 u64vec1
 
typedef highp_u64vec2 u64vec2
 
typedef highp_u64vec3 u64vec3
 
typedef highp_u64vec4 u64vec4
 
typedef detail::uint8 u8
 
typedef highp_u8vec1 u8vec1
 
typedef highp_u8vec2 u8vec2
 
typedef highp_u8vec3 u8vec3
 
typedef highp_u8vec4 u8vec4
 
typedef detail::uint16 uint16_t
 
typedef detail::uint32 uint32_t
 
typedef detail::uint64 uint64_t
 
typedef detail::uint8 uint8_t
 
+

Detailed Description

+

OpenGL Mathematics (glm.g-truc.net)

+

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+

GLM Core

+
Date
2013-03-30 / 2013-03-31
+
Author
Christophe Riccio
+ +

Definition in file fwd.hpp.

+
+ + + + diff --git a/doc/api/a00037_source.html b/doc/api/a00037_source.html index 8240faee..d9423274 100644 --- a/doc/api/a00037_source.html +++ b/doc/api/a00037_source.html @@ -3,8 +3,8 @@ - -GLM: func_noise.hpp Source File + +0.9.6: fwd.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,53 +41,1944 @@
-
func_noise.hpp
+
fwd.hpp
-
1 
-
38 #ifndef glm_core_func_noise
-
39 #define glm_core_func_noise
-
40 
-
41 #include "type_vec1.hpp"
-
42 #include "type_vec2.hpp"
-
43 #include "type_vec3.hpp"
-
44 #include "setup.hpp"
+Go to the documentation of this file.
1 
+
33 #pragma once
+
34 
+
35 #include "detail/type_int.hpp"
+
36 #include "detail/type_float.hpp"
+
37 #include "detail/type_vec.hpp"
+
38 #include "detail/type_mat.hpp"
+
39 
+
41 // GLM_GTC_quaternion
+
42 namespace glm
+
43 {
+
44  template <typename T, precision P> struct tquat;
45 
-
46 namespace glm
-
47 {
+
49  typedef tquat<float, lowp> lowp_quat;
50 
-
57  template <typename genType>
-
58  GLM_FUNC_DECL typename genType::value_type noise1(genType const & x);
-
59 
-
66  template <typename genType>
-
67  GLM_FUNC_DECL detail::tvec2<typename genType::value_type, defaultp> noise2(genType const & x);
-
68 
-
75  template <typename genType>
-
76  GLM_FUNC_DECL detail::tvec3<typename genType::value_type, defaultp> noise3(genType const & x);
-
77 
-
84  template <typename genType>
-
85  GLM_FUNC_DECL detail::tvec4<typename genType::value_type, defaultp> noise4(genType const & x);
+
54  typedef tquat<float, mediump> mediump_quat;
+
55 
+
59  typedef tquat<float, highp> highp_quat;
+
60 
+
61 #if(defined(GLM_PRECISION_HIGHP_FLOAT) && !defined(GLM_PRECISION_MEDIUMP_FLOAT) && !defined(GLM_PRECISION_LOWP_FLOAT))
+
62  typedef highp_quat quat;
+
63 #elif(!defined(GLM_PRECISION_HIGHP_FLOAT) && defined(GLM_PRECISION_MEDIUMP_FLOAT) && !defined(GLM_PRECISION_LOWP_FLOAT))
+
64  typedef mediump_quat quat;
+
65 #elif(!defined(GLM_PRECISION_HIGHP_FLOAT) && !defined(GLM_PRECISION_MEDIUMP_FLOAT) && defined(GLM_PRECISION_LOWP_FLOAT))
+
66  typedef lowp_quat quat;
+
67 #elif(!defined(GLM_PRECISION_HIGHP_FLOAT) && !defined(GLM_PRECISION_MEDIUMP_FLOAT) && !defined(GLM_PRECISION_LOWP_FLOAT))
+
68  typedef highp_quat quat;
+
70 #endif
+
71 
+
75  typedef lowp_quat lowp_fquat;
+
76 
+
80  typedef mediump_quat mediump_fquat;
+
81 
+
85  typedef highp_quat highp_fquat;
86 
-
88 }//namespace glm
-
89 
-
90 #include "func_noise.inl"
+
90  typedef quat fquat;
91 
-
92 #endif//glm_core_func_noise
-
GLM_FUNC_DECL genType::value_type noise1(genType const &x)
Returns a 1D noise value based on the input value x.
-
GLM_FUNC_DECL detail::tvec2< typename genType::value_type, defaultp > noise2(genType const &x)
Returns a 2D noise value based on the input value x.
-
GLM_FUNC_DECL detail::tvec4< typename genType::value_type, defaultp > noise4(genType const &x)
Returns a 4D noise value based on the input value x.
-
GLM_FUNC_DECL detail::tvec3< typename genType::value_type, defaultp > noise3(genType const &x)
Returns a 3D noise value based on the input value x.
+
92 
+
96  typedef tquat<double, lowp> lowp_dquat;
+
97 
+
101  typedef tquat<double, mediump> mediump_dquat;
+
102 
+
106  typedef tquat<double, highp> highp_dquat;
+
107 
+
108 #if(defined(GLM_PRECISION_HIGHP_DOUBLE) && !defined(GLM_PRECISION_MEDIUMP_DOUBLE) && !defined(GLM_PRECISION_LOWP_DOUBLE))
+
109  typedef highp_dquat dquat;
+
110 #elif(!defined(GLM_PRECISION_HIGHP_DOUBLE) && defined(GLM_PRECISION_MEDIUMP_DOUBLE) && !defined(GLM_PRECISION_LOWP_DOUBLE))
+
111  typedef mediump_dquat dquat;
+
112 #elif(!defined(GLM_PRECISION_HIGHP_DOUBLE) && !defined(GLM_PRECISION_MEDIUMP_DOUBLE) && defined(GLM_PRECISION_LOWP_DOUBLE))
+
113  typedef lowp_dquat dquat;
+
114 #elif(!defined(GLM_PRECISION_HIGHP_DOUBLE) && !defined(GLM_PRECISION_MEDIUMP_DOUBLE) && !defined(GLM_PRECISION_LOWP_DOUBLE))
+
115  typedef highp_dquat dquat;
+
119 #endif
+
120 
+
121 }//namespace glm
+
122 
+
124 // GLM_GTC_precision
+
125 namespace glm
+
126 {
+
129 
+
132  typedef detail::int8 lowp_int8;
+
133 
+
136  typedef detail::int16 lowp_int16;
+
137 
+
140  typedef detail::int32 lowp_int32;
+
141 
+
144  typedef detail::int64 lowp_int64;
+
145 
+
148  typedef detail::int8 lowp_int8_t;
+
149 
+
152  typedef detail::int16 lowp_int16_t;
+
153 
+
156  typedef detail::int32 lowp_int32_t;
+
157 
+
160  typedef detail::int64 lowp_int64_t;
+
161 
+
164  typedef detail::int8 lowp_i8;
+
165 
+
168  typedef detail::int16 lowp_i16;
+
169 
+
172  typedef detail::int32 lowp_i32;
+
173 
+
176  typedef detail::int64 lowp_i64;
+
177 
+
180  typedef detail::int8 mediump_int8;
+
181 
+
184  typedef detail::int16 mediump_int16;
+
185 
+
188  typedef detail::int32 mediump_int32;
+
189 
+
192  typedef detail::int64 mediump_int64;
+
193 
+
196  typedef detail::int8 mediump_int8_t;
+
197 
+
200  typedef detail::int16 mediump_int16_t;
+
201 
+
204  typedef detail::int32 mediump_int32_t;
+
205 
+
208  typedef detail::int64 mediump_int64_t;
+
209 
+
212  typedef detail::int8 mediump_i8;
+
213 
+
216  typedef detail::int16 mediump_i16;
+
217 
+
220  typedef detail::int32 mediump_i32;
+
221 
+
224  typedef detail::int64 mediump_i64;
+
225 
+
228  typedef detail::int8 highp_int8;
+
229 
+
232  typedef detail::int16 highp_int16;
+
233 
+
236  typedef detail::int32 highp_int32;
+
237 
+
240  typedef detail::int64 highp_int64;
+
241 
+
244  typedef detail::int8 highp_int8_t;
+
245 
+
248  typedef detail::int16 highp_int16_t;
+
249 
+
252  typedef detail::int32 highp_int32_t;
+
253 
+
256  typedef detail::int64 highp_int64_t;
+
257 
+
260  typedef detail::int8 highp_i8;
+
261 
+
264  typedef detail::int16 highp_i16;
+
265 
+
268  typedef detail::int32 highp_i32;
+
269 
+
272  typedef detail::int64 highp_i64;
+
273 
+
274 
+
277  typedef detail::int8 int8;
+
278 
+
281  typedef detail::int16 int16;
+
282 
+
285  typedef detail::int32 int32;
+
286 
+
289  typedef detail::int64 int64;
+
290 
+
291 
+
292 #if GLM_HAS_EXTENDED_INTEGER_TYPE
+
293  using std::int8_t;
+
294  using std::int16_t;
+
295  using std::int32_t;
+
296  using std::int64_t;
+
297 #else
+
298  typedef detail::int8 int8_t;
+
301 
+
304  typedef detail::int16 int16_t;
+
305 
+
308  typedef detail::int32 int32_t;
+
309 
+
312  typedef detail::int64 int64_t;
+
313 #endif
+
314 
+
317  typedef detail::int8 i8;
+
318 
+
321  typedef detail::int16 i16;
+
322 
+
325  typedef detail::int32 i32;
+
326 
+
329  typedef detail::int64 i64;
+
330 
+
331 
+
332 
+
335  typedef tvec1<i8, lowp> lowp_i8vec1;
+
336 
+
339  typedef tvec2<i8, lowp> lowp_i8vec2;
+
340 
+
343  typedef tvec3<i8, lowp> lowp_i8vec3;
+
344 
+
347  typedef tvec4<i8, lowp> lowp_i8vec4;
+
348 
+
349 
+
352  typedef tvec1<i8, mediump> mediump_i8vec1;
+
353 
+
356  typedef tvec2<i8, mediump> mediump_i8vec2;
+
357 
+
360  typedef tvec3<i8, mediump> mediump_i8vec3;
+
361 
+
364  typedef tvec4<i8, mediump> mediump_i8vec4;
+
365 
+
366 
+
369  typedef tvec1<i8, highp> highp_i8vec1;
+
370 
+
373  typedef tvec2<i8, highp> highp_i8vec2;
+
374 
+
377  typedef tvec3<i8, highp> highp_i8vec3;
+
378 
+
381  typedef tvec4<i8, highp> highp_i8vec4;
+
382 
+
383 #if(defined(GLM_PRECISION_LOWP_INT))
+
384  typedef lowp_i8vec1 i8vec1;
+
385  typedef lowp_i8vec2 i8vec2;
+
386  typedef lowp_i8vec3 i8vec3;
+
387  typedef lowp_i8vec4 i8vec4;
+
388 #elif(defined(GLM_PRECISION_MEDIUMP_INT))
+
389  typedef mediump_i8vec1 i8vec1;
+
390  typedef mediump_i8vec2 i8vec2;
+
391  typedef mediump_i8vec3 i8vec3;
+
392  typedef mediump_i8vec4 i8vec4;
+
393 #else
+
394  typedef highp_i8vec1 i8vec1;
+
397 
+
400  typedef highp_i8vec2 i8vec2;
+
401 
+
404  typedef highp_i8vec3 i8vec3;
+
405 
+
408  typedef highp_i8vec4 i8vec4;
+
409 #endif
+
410 
+
411 
+
414  typedef tvec1<i16, lowp> lowp_i16vec1;
+
415 
+
418  typedef tvec2<i16, lowp> lowp_i16vec2;
+
419 
+
422  typedef tvec3<i16, lowp> lowp_i16vec3;
+
423 
+
426  typedef tvec4<i16, lowp> lowp_i16vec4;
+
427 
+
428 
+
431  typedef tvec1<i16, mediump> mediump_i16vec1;
+
432 
+
435  typedef tvec2<i16, mediump> mediump_i16vec2;
+
436 
+
439  typedef tvec3<i16, mediump> mediump_i16vec3;
+
440 
+
443  typedef tvec4<i16, mediump> mediump_i16vec4;
+
444 
+
445 
+
448  typedef tvec1<i16, highp> highp_i16vec1;
+
449 
+
452  typedef tvec2<i16, highp> highp_i16vec2;
+
453 
+
456  typedef tvec3<i16, highp> highp_i16vec3;
+
457 
+
460  typedef tvec4<i16, highp> highp_i16vec4;
+
461 
+
462 
+
463 #if(defined(GLM_PRECISION_LOWP_INT))
+
464  typedef lowp_i16vec1 i16vec1;
+
465  typedef lowp_i16vec2 i16vec2;
+
466  typedef lowp_i16vec3 i16vec3;
+
467  typedef lowp_i16vec4 i16vec4;
+
468 #elif(defined(GLM_PRECISION_MEDIUMP_INT))
+
469  typedef mediump_i16vec1 i16vec1;
+
470  typedef mediump_i16vec2 i16vec2;
+
471  typedef mediump_i16vec3 i16vec3;
+
472  typedef mediump_i16vec4 i16vec4;
+
473 #else
+
474  typedef highp_i16vec1 i16vec1;
+
477 
+
480  typedef highp_i16vec2 i16vec2;
+
481 
+
484  typedef highp_i16vec3 i16vec3;
+
485 
+
488  typedef highp_i16vec4 i16vec4;
+
489 #endif
+
490 
+
491 
+
494  typedef tvec1<i32, lowp> lowp_i32vec1;
+
495 
+
498  typedef tvec2<i32, lowp> lowp_i32vec2;
+
499 
+
502  typedef tvec3<i32, lowp> lowp_i32vec3;
+
503 
+
506  typedef tvec4<i32, lowp> lowp_i32vec4;
+
507 
+
508 
+
511  typedef tvec1<i32, mediump> mediump_i32vec1;
+
512 
+
515  typedef tvec2<i32, mediump> mediump_i32vec2;
+
516 
+
519  typedef tvec3<i32, mediump> mediump_i32vec3;
+
520 
+
523  typedef tvec4<i32, mediump> mediump_i32vec4;
+
524 
+
525 
+
528  typedef tvec1<i32, highp> highp_i32vec1;
+
529 
+
532  typedef tvec2<i32, highp> highp_i32vec2;
+
533 
+
536  typedef tvec3<i32, highp> highp_i32vec3;
+
537 
+
540  typedef tvec4<i32, highp> highp_i32vec4;
+
541 
+
542 #if(defined(GLM_PRECISION_LOWP_INT))
+
543  typedef lowp_i32vec1 i32vec1;
+
544  typedef lowp_i32vec2 i32vec2;
+
545  typedef lowp_i32vec3 i32vec3;
+
546  typedef lowp_i32vec4 i32vec4;
+
547 #elif(defined(GLM_PRECISION_MEDIUMP_INT))
+
548  typedef mediump_i32vec1 i32vec1;
+
549  typedef mediump_i32vec2 i32vec2;
+
550  typedef mediump_i32vec3 i32vec3;
+
551  typedef mediump_i32vec4 i32vec4;
+
552 #else
+
553  typedef highp_i32vec1 i32vec1;
+
556 
+
559  typedef highp_i32vec2 i32vec2;
+
560 
+
563  typedef highp_i32vec3 i32vec3;
+
564 
+
567  typedef highp_i32vec4 i32vec4;
+
568 #endif
+
569 
+
570 
+
573  typedef tvec1<i32, lowp> lowp_i32vec1;
+
574 
+
577  typedef tvec2<i32, lowp> lowp_i32vec2;
+
578 
+
581  typedef tvec3<i32, lowp> lowp_i32vec3;
+
582 
+
585  typedef tvec4<i32, lowp> lowp_i32vec4;
+
586 
+
587 
+
590  typedef tvec1<i32, mediump> mediump_i32vec1;
+
591 
+
594  typedef tvec2<i32, mediump> mediump_i32vec2;
+
595 
+
598  typedef tvec3<i32, mediump> mediump_i32vec3;
+
599 
+
602  typedef tvec4<i32, mediump> mediump_i32vec4;
+
603 
+
604 
+
607  typedef tvec1<i32, highp> highp_i32vec1;
+
608 
+
611  typedef tvec2<i32, highp> highp_i32vec2;
+
612 
+
615  typedef tvec3<i32, highp> highp_i32vec3;
+
616 
+
619  typedef tvec4<i32, highp> highp_i32vec4;
+
620 
+
621 #if(defined(GLM_PRECISION_LOWP_INT))
+
622  typedef lowp_i32vec1 i32vec1;
+
623  typedef lowp_i32vec2 i32vec2;
+
624  typedef lowp_i32vec3 i32vec3;
+
625  typedef lowp_i32vec4 i32vec4;
+
626 #elif(defined(GLM_PRECISION_MEDIUMP_INT))
+
627  typedef mediump_i32vec1 i32vec1;
+
628  typedef mediump_i32vec2 i32vec2;
+
629  typedef mediump_i32vec3 i32vec3;
+
630  typedef mediump_i32vec4 i32vec4;
+
631 #else
+
632  typedef highp_i32vec1 i32vec1;
+
635 
+
638  typedef highp_i32vec2 i32vec2;
+
639 
+
642  typedef highp_i32vec3 i32vec3;
+
643 
+
646  typedef highp_i32vec4 i32vec4;
+
647 #endif
+
648 
+
649 
+
650 
+
653  typedef tvec1<i64, lowp> lowp_i64vec1;
+
654 
+
657  typedef tvec2<i64, lowp> lowp_i64vec2;
+
658 
+
661  typedef tvec3<i64, lowp> lowp_i64vec3;
+
662 
+
665  typedef tvec4<i64, lowp> lowp_i64vec4;
+
666 
+
667 
+
670  typedef tvec1<i64, mediump> mediump_i64vec1;
+
671 
+
674  typedef tvec2<i64, mediump> mediump_i64vec2;
+
675 
+
678  typedef tvec3<i64, mediump> mediump_i64vec3;
+
679 
+
682  typedef tvec4<i64, mediump> mediump_i64vec4;
+
683 
+
684 
+
687  typedef tvec1<i64, highp> highp_i64vec1;
+
688 
+
691  typedef tvec2<i64, highp> highp_i64vec2;
+
692 
+
695  typedef tvec3<i64, highp> highp_i64vec3;
+
696 
+
699  typedef tvec4<i64, highp> highp_i64vec4;
+
700 
+
701 #if(defined(GLM_PRECISION_LOWP_INT))
+
702  typedef lowp_i64vec1 i64vec1;
+
703  typedef lowp_i64vec2 i64vec2;
+
704  typedef lowp_i64vec3 i64vec3;
+
705  typedef lowp_i64vec4 i64vec4;
+
706 #elif(defined(GLM_PRECISION_MEDIUMP_INT))
+
707  typedef mediump_i64vec1 i64vec1;
+
708  typedef mediump_i64vec2 i64vec2;
+
709  typedef mediump_i64vec3 i64vec3;
+
710  typedef mediump_i64vec4 i64vec4;
+
711 #else
+
712  typedef highp_i64vec1 i64vec1;
+
715 
+
718  typedef highp_i64vec2 i64vec2;
+
719 
+
722  typedef highp_i64vec3 i64vec3;
+
723 
+
726  typedef highp_i64vec4 i64vec4;
+
727 #endif
+
728 
+
729 
+
731  // Unsigned int vector types
+
732 
+
735  typedef detail::uint8 lowp_uint8;
+
736 
+
739  typedef detail::uint16 lowp_uint16;
+
740 
+
743  typedef detail::uint32 lowp_uint32;
+
744 
+
747  typedef detail::uint64 lowp_uint64;
+
748 
+
749 
+
752  typedef detail::uint8 lowp_uint8_t;
+
753 
+
756  typedef detail::uint16 lowp_uint16_t;
+
757 
+
760  typedef detail::uint32 lowp_uint32_t;
+
761 
+
764  typedef detail::uint64 lowp_uint64_t;
+
765 
+
766 
+
769  typedef detail::uint8 lowp_u8;
+
770 
+
773  typedef detail::uint16 lowp_u16;
+
774 
+
777  typedef detail::uint32 lowp_u32;
+
778 
+
781  typedef detail::uint64 lowp_u64;
+
782 
+
783 
+
784 
+
787  typedef detail::uint8 mediump_uint8;
+
788 
+
791  typedef detail::uint16 mediump_uint16;
+
792 
+
795  typedef detail::uint32 mediump_uint32;
+
796 
+
799  typedef detail::uint64 mediump_uint64;
+
800 
+
803  typedef detail::uint8 mediump_uint8_t;
+
804 
+
807  typedef detail::uint16 mediump_uint16_t;
+
808 
+
811  typedef detail::uint32 mediump_uint32_t;
+
812 
+
815  typedef detail::uint64 mediump_uint64_t;
+
816 
+
819  typedef detail::uint8 mediump_u8;
+
820 
+
823  typedef detail::uint16 mediump_u16;
+
824 
+
827  typedef detail::uint32 mediump_u32;
+
828 
+
831  typedef detail::uint64 mediump_u64;
+
832 
+
833 
+
834 
+
837  typedef detail::uint8 highp_uint8;
+
838 
+
841  typedef detail::uint16 highp_uint16;
+
842 
+
845  typedef detail::uint32 highp_uint32;
+
846 
+
849  typedef detail::uint64 highp_uint64;
+
850 
+
853  typedef detail::uint8 highp_uint8_t;
+
854 
+
857  typedef detail::uint16 highp_uint16_t;
+
858 
+
861  typedef detail::uint32 highp_uint32_t;
+
862 
+
865  typedef detail::uint64 highp_uint64_t;
+
866 
+
869  typedef detail::uint8 highp_u8;
+
870 
+
873  typedef detail::uint16 highp_u16;
+
874 
+
877  typedef detail::uint32 highp_u32;
+
878 
+
881  typedef detail::uint64 highp_u64;
+
882 
+
883 
+
884 
+
887  typedef detail::uint8 uint8;
+
888 
+
891  typedef detail::uint16 uint16;
+
892 
+
895  typedef detail::uint32 uint32;
+
896 
+
899  typedef detail::uint64 uint64;
+
900 
+
901 #if GLM_HAS_EXTENDED_INTEGER_TYPE
+
902  using std::uint8_t;
+
903  using std::uint16_t;
+
904  using std::uint32_t;
+
905  using std::uint64_t;
+
906 #else
+
907  typedef detail::uint8 uint8_t;
+
910 
+
913  typedef detail::uint16 uint16_t;
+
914 
+
917  typedef detail::uint32 uint32_t;
+
918 
+
921  typedef detail::uint64 uint64_t;
+
922 #endif
+
923 
+
926  typedef detail::uint8 u8;
+
927 
+
930  typedef detail::uint16 u16;
+
931 
+
934  typedef detail::uint32 u32;
+
935 
+
938  typedef detail::uint64 u64;
+
939 
+
940 
+
941 
+
944  typedef tvec1<u8, lowp> lowp_u8vec1;
+
945 
+
948  typedef tvec2<u8, lowp> lowp_u8vec2;
+
949 
+
952  typedef tvec3<u8, lowp> lowp_u8vec3;
+
953 
+
956  typedef tvec4<u8, lowp> lowp_u8vec4;
+
957 
+
958 
+
961  typedef tvec1<u8, mediump> mediump_u8vec1;
+
962 
+
965  typedef tvec2<u8, mediump> mediump_u8vec2;
+
966 
+
969  typedef tvec3<u8, mediump> mediump_u8vec3;
+
970 
+
973  typedef tvec4<u8, mediump> mediump_u8vec4;
+
974 
+
975 
+
978  typedef tvec1<u8, highp> highp_u8vec1;
+
979 
+
982  typedef tvec2<u8, highp> highp_u8vec2;
+
983 
+
986  typedef tvec3<u8, highp> highp_u8vec3;
+
987 
+
990  typedef tvec4<u8, highp> highp_u8vec4;
+
991 
+
992 #if(defined(GLM_PRECISION_LOWP_INT))
+
993  typedef lowp_u8vec1 u8vec1;
+
994  typedef lowp_u8vec2 u8vec2;
+
995  typedef lowp_u8vec3 u8vec3;
+
996  typedef lowp_u8vec4 u8vec4;
+
997 #elif(defined(GLM_PRECISION_MEDIUMP_INT))
+
998  typedef mediump_u8vec1 u8vec1;
+
999  typedef mediump_u8vec2 u8vec2;
+
1000  typedef mediump_u8vec3 u8vec3;
+
1001  typedef mediump_u8vec4 u8vec4;
+
1002 #else
+
1003  typedef highp_u8vec1 u8vec1;
+
1006 
+
1009  typedef highp_u8vec2 u8vec2;
+
1010 
+
1013  typedef highp_u8vec3 u8vec3;
+
1014 
+
1017  typedef highp_u8vec4 u8vec4;
+
1018 #endif
+
1019 
+
1020 
+
1023  typedef tvec1<u16, lowp> lowp_u16vec1;
+
1024 
+
1027  typedef tvec2<u16, lowp> lowp_u16vec2;
+
1028 
+
1031  typedef tvec3<u16, lowp> lowp_u16vec3;
+
1032 
+
1035  typedef tvec4<u16, lowp> lowp_u16vec4;
+
1036 
+
1037 
+
1040  typedef tvec1<u16, mediump> mediump_u16vec1;
+
1041 
+
1044  typedef tvec2<u16, mediump> mediump_u16vec2;
+
1045 
+
1048  typedef tvec3<u16, mediump> mediump_u16vec3;
+
1049 
+
1052  typedef tvec4<u16, mediump> mediump_u16vec4;
+
1053 
+
1054 
+
1057  typedef tvec1<u16, highp> highp_u16vec1;
+
1058 
+
1061  typedef tvec2<u16, highp> highp_u16vec2;
+
1062 
+
1065  typedef tvec3<u16, highp> highp_u16vec3;
+
1066 
+
1069  typedef tvec4<u16, highp> highp_u16vec4;
+
1070 
+
1071 
+
1072 #if(defined(GLM_PRECISION_LOWP_INT))
+
1073  typedef lowp_u16vec1 u16vec1;
+
1074  typedef lowp_u16vec2 u16vec2;
+
1075  typedef lowp_u16vec3 u16vec3;
+
1076  typedef lowp_u16vec4 u16vec4;
+
1077 #elif(defined(GLM_PRECISION_MEDIUMP_INT))
+
1078  typedef mediump_u16vec1 u16vec1;
+
1079  typedef mediump_u16vec2 u16vec2;
+
1080  typedef mediump_u16vec3 u16vec3;
+
1081  typedef mediump_u16vec4 u16vec4;
+
1082 #else
+
1083  typedef highp_u16vec1 u16vec1;
+
1086 
+
1089  typedef highp_u16vec2 u16vec2;
+
1090 
+
1093  typedef highp_u16vec3 u16vec3;
+
1094 
+
1097  typedef highp_u16vec4 u16vec4;
+
1098 #endif
+
1099 
+
1100 
+
1103  typedef tvec1<u32, lowp> lowp_u32vec1;
+
1104 
+
1107  typedef tvec2<u32, lowp> lowp_u32vec2;
+
1108 
+
1111  typedef tvec3<u32, lowp> lowp_u32vec3;
+
1112 
+
1115  typedef tvec4<u32, lowp> lowp_u32vec4;
+
1116 
+
1117 
+
1120  typedef tvec1<u32, mediump> mediump_u32vec1;
+
1121 
+
1124  typedef tvec2<u32, mediump> mediump_u32vec2;
+
1125 
+
1128  typedef tvec3<u32, mediump> mediump_u32vec3;
+
1129 
+
1132  typedef tvec4<u32, mediump> mediump_u32vec4;
+
1133 
+
1134 
+
1137  typedef tvec1<u32, highp> highp_u32vec1;
+
1138 
+
1141  typedef tvec2<u32, highp> highp_u32vec2;
+
1142 
+
1145  typedef tvec3<u32, highp> highp_u32vec3;
+
1146 
+
1149  typedef tvec4<u32, highp> highp_u32vec4;
+
1150 
+
1151 #if(defined(GLM_PRECISION_LOWP_INT))
+
1152  typedef lowp_u32vec1 u32vec1;
+
1153  typedef lowp_u32vec2 u32vec2;
+
1154  typedef lowp_u32vec3 u32vec3;
+
1155  typedef lowp_u32vec4 u32vec4;
+
1156 #elif(defined(GLM_PRECISION_MEDIUMP_INT))
+
1157  typedef mediump_u32vec1 u32vec1;
+
1158  typedef mediump_u32vec2 u32vec2;
+
1159  typedef mediump_u32vec3 u32vec3;
+
1160  typedef mediump_u32vec4 u32vec4;
+
1161 #else
+
1162  typedef highp_u32vec1 u32vec1;
+
1165 
+
1168  typedef highp_u32vec2 u32vec2;
+
1169 
+
1172  typedef highp_u32vec3 u32vec3;
+
1173 
+
1176  typedef highp_u32vec4 u32vec4;
+
1177 #endif
+
1178 
+
1179 
+
1182  typedef tvec1<u32, lowp> lowp_u32vec1;
+
1183 
+
1186  typedef tvec2<u32, lowp> lowp_u32vec2;
+
1187 
+
1190  typedef tvec3<u32, lowp> lowp_u32vec3;
+
1191 
+
1194  typedef tvec4<u32, lowp> lowp_u32vec4;
+
1195 
+
1196 
+
1199  typedef tvec1<u32, mediump> mediump_u32vec1;
+
1200 
+
1203  typedef tvec2<u32, mediump> mediump_u32vec2;
+
1204 
+
1207  typedef tvec3<u32, mediump> mediump_u32vec3;
+
1208 
+
1211  typedef tvec4<u32, mediump> mediump_u32vec4;
+
1212 
+
1213 
+
1216  typedef tvec1<u32, highp> highp_u32vec1;
+
1217 
+
1220  typedef tvec2<u32, highp> highp_u32vec2;
+
1221 
+
1224  typedef tvec3<u32, highp> highp_u32vec3;
+
1225 
+
1228  typedef tvec4<u32, highp> highp_u32vec4;
+
1229 
+
1230 #if(defined(GLM_PRECISION_LOWP_INT))
+
1231  typedef lowp_u32vec1 u32vec1;
+
1232  typedef lowp_u32vec2 u32vec2;
+
1233  typedef lowp_u32vec3 u32vec3;
+
1234  typedef lowp_u32vec4 u32vec4;
+
1235 #elif(defined(GLM_PRECISION_MEDIUMP_INT))
+
1236  typedef mediump_u32vec1 u32vec1;
+
1237  typedef mediump_u32vec2 u32vec2;
+
1238  typedef mediump_u32vec3 u32vec3;
+
1239  typedef mediump_u32vec4 u32vec4;
+
1240 #else
+
1241  typedef highp_u32vec1 u32vec1;
+
1244 
+
1247  typedef highp_u32vec2 u32vec2;
+
1248 
+
1251  typedef highp_u32vec3 u32vec3;
+
1252 
+
1255  typedef highp_u32vec4 u32vec4;
+
1256 #endif
+
1257 
+
1258 
+
1259 
+
1262  typedef tvec1<u64, lowp> lowp_u64vec1;
+
1263 
+
1266  typedef tvec2<u64, lowp> lowp_u64vec2;
+
1267 
+
1270  typedef tvec3<u64, lowp> lowp_u64vec3;
+
1271 
+
1274  typedef tvec4<u64, lowp> lowp_u64vec4;
+
1275 
+
1276 
+
1279  typedef tvec1<u64, mediump> mediump_u64vec1;
+
1280 
+
1283  typedef tvec2<u64, mediump> mediump_u64vec2;
+
1284 
+
1287  typedef tvec3<u64, mediump> mediump_u64vec3;
+
1288 
+
1291  typedef tvec4<u64, mediump> mediump_u64vec4;
+
1292 
+
1293 
+
1296  typedef tvec1<u64, highp> highp_u64vec1;
+
1297 
+
1300  typedef tvec2<u64, highp> highp_u64vec2;
+
1301 
+
1304  typedef tvec3<u64, highp> highp_u64vec3;
+
1305 
+
1308  typedef tvec4<u64, highp> highp_u64vec4;
+
1309 
+
1310 #if(defined(GLM_PRECISION_LOWP_UINT))
+
1311  typedef lowp_u64vec1 u64vec1;
+
1312  typedef lowp_u64vec2 u64vec2;
+
1313  typedef lowp_u64vec3 u64vec3;
+
1314  typedef lowp_u64vec4 u64vec4;
+
1315 #elif(defined(GLM_PRECISION_MEDIUMP_UINT))
+
1316  typedef mediump_u64vec1 u64vec1;
+
1317  typedef mediump_u64vec2 u64vec2;
+
1318  typedef mediump_u64vec3 u64vec3;
+
1319  typedef mediump_u64vec4 u64vec4;
+
1320 #else
+
1321  typedef highp_u64vec1 u64vec1;
+
1324 
+
1327  typedef highp_u64vec2 u64vec2;
+
1328 
+
1331  typedef highp_u64vec3 u64vec3;
+
1332 
+
1335  typedef highp_u64vec4 u64vec4;
+
1336 #endif
+
1337 
+
1338 
+
1340  // Float vector types
+
1341 
+
1344  typedef detail::float32 lowp_float32;
+
1345 
+
1348  typedef detail::float64 lowp_float64;
+
1349 
+
1352  typedef detail::float32 lowp_float32_t;
+
1353 
+
1356  typedef detail::float64 lowp_float64_t;
+
1357 
+ +
1361 
+ +
1365 
+
1368  typedef detail::float32 lowp_float32;
+
1369 
+
1372  typedef detail::float64 lowp_float64;
+
1373 
+
1376  typedef detail::float32 lowp_float32_t;
+
1377 
+
1380  typedef detail::float64 lowp_float64_t;
+
1381 
+
1384  typedef float32 lowp_f32;
+
1385 
+
1388  typedef float64 lowp_f64;
+
1389 
+
1390 
+
1393  typedef detail::float32 lowp_float32;
+
1394 
+
1397  typedef detail::float64 lowp_float64;
+
1398 
+
1401  typedef detail::float32 lowp_float32_t;
+
1402 
+
1405  typedef detail::float64 lowp_float64_t;
+
1406 
+
1409  typedef float32 lowp_f32;
+
1410 
+
1413  typedef float64 lowp_f64;
+
1414 
+
1415 
+
1418  typedef detail::float32 mediump_float32;
+
1419 
+
1422  typedef detail::float64 mediump_float64;
+
1423 
+
1426  typedef detail::float32 mediump_float32_t;
+
1427 
+
1430  typedef detail::float64 mediump_float64_t;
+
1431 
+ +
1435 
+ +
1439 
+
1440 
+
1443  typedef detail::float32 highp_float32;
+
1444 
+
1447  typedef detail::float64 highp_float64;
+
1448 
+
1451  typedef detail::float32 highp_float32_t;
+
1452 
+
1455  typedef detail::float64 highp_float64_t;
+
1456 
+ +
1460 
+ +
1464 
+
1465 
+
1466 #if(defined(GLM_PRECISION_LOWP_FLOAT))
+
1467  typedef lowp_float32 float32;
+
1470 
+
1473  typedef lowp_float64 float64;
+
1474 
+
1477  typedef lowp_float32_t float32_t;
+
1478 
+
1481  typedef lowp_float64_t float64_t;
+
1482 
+
1485  typedef lowp_f32 f32;
+
1486 
+
1489  typedef lowp_f64 f64;
+
1490 
+
1491 #elif(defined(GLM_PRECISION_MEDIUMP_FLOAT))
+
1492 
+
1495  typedef mediump_float32 float32;
+
1496 
+
1499  typedef mediump_float64 float64;
+
1500 
+
1503  typedef mediump_float32 float32_t;
+
1504 
+
1507  typedef mediump_float64 float64_t;
+
1508 
+
1511  typedef mediump_float32 f32;
+
1512 
+
1515  typedef mediump_float64 f64;
+
1516 
+
1517 #else//(defined(GLM_PRECISION_HIGHP_FLOAT))
+
1518 
+
1521  typedef highp_float32 float32;
+
1522 
+
1525  typedef highp_float64 float64;
+
1526 
+
1529  typedef highp_float32_t float32_t;
+
1530 
+
1533  typedef highp_float64_t float64_t;
+
1534 
+
1537  typedef highp_float32_t f32;
+
1538 
+
1541  typedef highp_float64_t f64;
+
1542 #endif
+
1543 
+
1544 
+
1547  typedef tvec1<float, lowp> lowp_vec1;
+
1548 
+
1551  typedef tvec2<float, lowp> lowp_vec2;
+
1552 
+
1555  typedef tvec3<float, lowp> lowp_vec3;
+
1556 
+
1559  typedef tvec4<float, lowp> lowp_vec4;
+
1560 
+
1563  typedef tvec1<float, lowp> lowp_fvec1;
+
1564 
+
1567  typedef tvec2<float, lowp> lowp_fvec2;
+
1568 
+
1571  typedef tvec3<float, lowp> lowp_fvec3;
+
1572 
+
1575  typedef tvec4<float, lowp> lowp_fvec4;
+
1576 
+
1577 
+
1580  typedef tvec1<float, mediump> mediump_vec1;
+
1581 
+
1584  typedef tvec2<float, mediump> mediump_vec2;
+
1585 
+
1588  typedef tvec3<float, mediump> mediump_vec3;
+
1589 
+
1592  typedef tvec4<float, mediump> mediump_vec4;
+
1593 
+
1596  typedef tvec1<float, mediump> mediump_fvec1;
+
1597 
+
1600  typedef tvec2<float, mediump> mediump_fvec2;
+
1601 
+
1604  typedef tvec3<float, mediump> mediump_fvec3;
+
1605 
+
1608  typedef tvec4<float, mediump> mediump_fvec4;
+
1609 
+
1610 
+
1613  typedef tvec1<float, highp> highp_vec1;
+
1614 
+
1617  typedef tvec2<float, highp> highp_vec2;
+
1618 
+
1621  typedef tvec3<float, highp> highp_vec3;
+
1622 
+
1625  typedef tvec4<float, highp> highp_vec4;
+
1626 
+
1629  typedef tvec1<float, highp> highp_fvec1;
+
1630 
+
1633  typedef tvec2<float, highp> highp_fvec2;
+
1634 
+
1637  typedef tvec3<float, highp> highp_fvec3;
+
1638 
+
1641  typedef tvec4<float, highp> highp_fvec4;
+
1642 
+
1643 
+
1646  typedef tvec1<f32, lowp> lowp_f32vec1;
+
1647 
+
1650  typedef tvec2<f32, lowp> lowp_f32vec2;
+
1651 
+
1654  typedef tvec3<f32, lowp> lowp_f32vec3;
+
1655 
+
1658  typedef tvec4<f32, lowp> lowp_f32vec4;
+
1659 
+
1662  typedef tvec1<f32, mediump> mediump_f32vec1;
+
1663 
+
1666  typedef tvec2<f32, mediump> mediump_f32vec2;
+
1667 
+
1670  typedef tvec3<f32, mediump> mediump_f32vec3;
+
1671 
+
1674  typedef tvec4<f32, mediump> mediump_f32vec4;
+
1675 
+
1678  typedef tvec1<f32, highp> highp_f32vec1;
+
1679 
+
1682  typedef tvec2<f32, highp> highp_f32vec2;
+
1683 
+
1686  typedef tvec3<f32, highp> highp_f32vec3;
+
1687 
+
1690  typedef tvec4<f32, highp> highp_f32vec4;
+
1691 
+
1692 
+
1695  typedef tvec1<f64, lowp> lowp_f64vec1;
+
1696 
+
1699  typedef tvec2<f64, lowp> lowp_f64vec2;
+
1700 
+
1703  typedef tvec3<f64, lowp> lowp_f64vec3;
+
1704 
+
1707  typedef tvec4<f64, lowp> lowp_f64vec4;
+
1708 
+
1711  typedef tvec1<f64, mediump> mediump_f64vec1;
+
1712 
+
1715  typedef tvec2<f64, mediump> mediump_f64vec2;
+
1716 
+
1719  typedef tvec3<f64, mediump> mediump_f64vec3;
+
1720 
+
1723  typedef tvec4<f64, mediump> mediump_f64vec4;
+
1724 
+
1727  typedef tvec1<f64, highp> highp_f64vec1;
+
1728 
+
1731  typedef tvec2<f64, highp> highp_f64vec2;
+
1732 
+
1735  typedef tvec3<f64, highp> highp_f64vec3;
+
1736 
+
1739  typedef tvec4<f64, highp> highp_f64vec4;
+
1740 
+
1741 
+
1743  // Float matrix types
+
1744 
+
1747  //typedef lowp_f32 lowp_fmat1x1;
+
1748 
+
1751  typedef tmat2x2<f32, lowp> lowp_fmat2x2;
+
1752 
+
1755  typedef tmat2x3<f32, lowp> lowp_fmat2x3;
+
1756 
+
1759  typedef tmat2x4<f32, lowp> lowp_fmat2x4;
+
1760 
+
1763  typedef tmat3x2<f32, lowp> lowp_fmat3x2;
+
1764 
+
1767  typedef tmat3x3<f32, lowp> lowp_fmat3x3;
+
1768 
+
1771  typedef tmat3x4<f32, lowp> lowp_fmat3x4;
+
1772 
+
1775  typedef tmat4x2<f32, lowp> lowp_fmat4x2;
+
1776 
+
1779  typedef tmat4x3<f32, lowp> lowp_fmat4x3;
+
1780 
+
1783  typedef tmat4x4<f32, lowp> lowp_fmat4x4;
+
1784 
+
1787  //typedef lowp_fmat1x1 lowp_fmat1;
+
1788 
+
1791  typedef lowp_fmat2x2 lowp_fmat2;
+
1792 
+
1795  typedef lowp_fmat3x3 lowp_fmat3;
+
1796 
+
1799  typedef lowp_fmat4x4 lowp_fmat4;
+
1800 
+
1801 
+
1804  //typedef mediump_f32 mediump_fmat1x1;
+
1805 
+
1808  typedef tmat2x2<f32, mediump> mediump_fmat2x2;
+
1809 
+
1812  typedef tmat2x3<f32, mediump> mediump_fmat2x3;
+
1813 
+
1816  typedef tmat2x4<f32, mediump> mediump_fmat2x4;
+
1817 
+
1820  typedef tmat3x2<f32, mediump> mediump_fmat3x2;
+
1821 
+
1824  typedef tmat3x3<f32, mediump> mediump_fmat3x3;
+
1825 
+
1828  typedef tmat3x4<f32, mediump> mediump_fmat3x4;
+
1829 
+
1832  typedef tmat4x2<f32, mediump> mediump_fmat4x2;
+
1833 
+
1836  typedef tmat4x3<f32, mediump> mediump_fmat4x3;
+
1837 
+
1840  typedef tmat4x4<f32, mediump> mediump_fmat4x4;
+
1841 
+
1844  //typedef mediump_fmat1x1 mediump_fmat1;
+
1845 
+
1848  typedef mediump_fmat2x2 mediump_fmat2;
+
1849 
+
1852  typedef mediump_fmat3x3 mediump_fmat3;
+
1853 
+
1856  typedef mediump_fmat4x4 mediump_fmat4;
+
1857 
+
1858 
+
1861  //typedef highp_f32 highp_fmat1x1;
+
1862 
+
1865  typedef tmat2x2<f32, highp> highp_fmat2x2;
+
1866 
+
1869  typedef tmat2x3<f32, highp> highp_fmat2x3;
+
1870 
+
1873  typedef tmat2x4<f32, highp> highp_fmat2x4;
+
1874 
+
1877  typedef tmat3x2<f32, highp> highp_fmat3x2;
+
1878 
+
1881  typedef tmat3x3<f32, highp> highp_fmat3x3;
+
1882 
+
1885  typedef tmat3x4<f32, highp> highp_fmat3x4;
+
1886 
+
1889  typedef tmat4x2<f32, highp> highp_fmat4x2;
+
1890 
+
1893  typedef tmat4x3<f32, highp> highp_fmat4x3;
+
1894 
+
1897  typedef tmat4x4<f32, highp> highp_fmat4x4;
+
1898 
+
1901  //typedef highp_fmat1x1 highp_fmat1;
+
1902 
+
1905  typedef highp_fmat2x2 highp_fmat2;
+
1906 
+
1909  typedef highp_fmat3x3 highp_fmat3;
+
1910 
+
1913  typedef highp_fmat4x4 highp_fmat4;
+
1914 
+
1915 
+
1918  //typedef f32 lowp_f32mat1x1;
+
1919 
+
1922  typedef tmat2x2<f32, lowp> lowp_f32mat2x2;
+
1923 
+
1926  typedef tmat2x3<f32, lowp> lowp_f32mat2x3;
+
1927 
+
1930  typedef tmat2x4<f32, lowp> lowp_f32mat2x4;
+
1931 
+
1934  typedef tmat3x2<f32, lowp> lowp_f32mat3x2;
+
1935 
+
1938  typedef tmat3x3<f32, lowp> lowp_f32mat3x3;
+
1939 
+
1942  typedef tmat3x4<f32, lowp> lowp_f32mat3x4;
+
1943 
+
1946  typedef tmat4x2<f32, lowp> lowp_f32mat4x2;
+
1947 
+
1950  typedef tmat4x3<f32, lowp> lowp_f32mat4x3;
+
1951 
+
1954  typedef tmat4x4<f32, lowp> lowp_f32mat4x4;
+
1955 
+
1958  //typedef detail::tmat1x1<f32, lowp> lowp_f32mat1;
+
1959 
+
1962  typedef lowp_f32mat2x2 lowp_f32mat2;
+
1963 
+
1966  typedef lowp_f32mat3x3 lowp_f32mat3;
+
1967 
+
1970  typedef lowp_f32mat4x4 lowp_f32mat4;
+
1971 
+
1972 
+
1975  //typedef f32 mediump_f32mat1x1;
+
1976 
+
1979  typedef tmat2x2<f32, mediump> mediump_f32mat2x2;
+
1980 
+
1983  typedef tmat2x3<f32, mediump> mediump_f32mat2x3;
+
1984 
+
1987  typedef tmat2x4<f32, mediump> mediump_f32mat2x4;
+
1988 
+
1991  typedef tmat3x2<f32, mediump> mediump_f32mat3x2;
+
1992 
+
1995  typedef tmat3x3<f32, mediump> mediump_f32mat3x3;
+
1996 
+
1999  typedef tmat3x4<f32, mediump> mediump_f32mat3x4;
+
2000 
+
2003  typedef tmat4x2<f32, mediump> mediump_f32mat4x2;
+
2004 
+
2007  typedef tmat4x3<f32, mediump> mediump_f32mat4x3;
+
2008 
+
2011  typedef tmat4x4<f32, mediump> mediump_f32mat4x4;
+
2012 
+
2015  //typedef detail::tmat1x1<f32, mediump> f32mat1;
+
2016 
+
2019  typedef mediump_f32mat2x2 mediump_f32mat2;
+
2020 
+
2023  typedef mediump_f32mat3x3 mediump_f32mat3;
+
2024 
+
2027  typedef mediump_f32mat4x4 mediump_f32mat4;
+
2028 
+
2029 
+
2032  //typedef f32 highp_f32mat1x1;
+
2033 
+
2036  typedef tmat2x2<f32, highp> highp_f32mat2x2;
+
2037 
+
2040  typedef tmat2x3<f32, highp> highp_f32mat2x3;
+
2041 
+
2044  typedef tmat2x4<f32, highp> highp_f32mat2x4;
+
2045 
+
2048  typedef tmat3x2<f32, highp> highp_f32mat3x2;
+
2049 
+
2052  typedef tmat3x3<f32, highp> highp_f32mat3x3;
+
2053 
+
2056  typedef tmat3x4<f32, highp> highp_f32mat3x4;
+
2057 
+
2060  typedef tmat4x2<f32, highp> highp_f32mat4x2;
+
2061 
+
2064  typedef tmat4x3<f32, highp> highp_f32mat4x3;
+
2065 
+
2068  typedef tmat4x4<f32, highp> highp_f32mat4x4;
+
2069 
+
2072  //typedef detail::tmat1x1<f32, highp> f32mat1;
+
2073 
+
2076  typedef highp_f32mat2x2 highp_f32mat2;
+
2077 
+
2080  typedef highp_f32mat3x3 highp_f32mat3;
+
2081 
+
2084  typedef highp_f32mat4x4 highp_f32mat4;
+
2085 
+
2086 
+
2089  //typedef f64 lowp_f64mat1x1;
+
2090 
+
2093  typedef tmat2x2<f64, lowp> lowp_f64mat2x2;
+
2094 
+
2097  typedef tmat2x3<f64, lowp> lowp_f64mat2x3;
+
2098 
+
2101  typedef tmat2x4<f64, lowp> lowp_f64mat2x4;
+
2102 
+
2105  typedef tmat3x2<f64, lowp> lowp_f64mat3x2;
+
2106 
+
2109  typedef tmat3x3<f64, lowp> lowp_f64mat3x3;
+
2110 
+
2113  typedef tmat3x4<f64, lowp> lowp_f64mat3x4;
+
2114 
+
2117  typedef tmat4x2<f64, lowp> lowp_f64mat4x2;
+
2118 
+
2121  typedef tmat4x3<f64, lowp> lowp_f64mat4x3;
+
2122 
+
2125  typedef tmat4x4<f64, lowp> lowp_f64mat4x4;
+
2126 
+
2129  //typedef lowp_f64mat1x1 lowp_f64mat1;
+
2130 
+
2133  typedef lowp_f64mat2x2 lowp_f64mat2;
+
2134 
+
2137  typedef lowp_f64mat3x3 lowp_f64mat3;
+
2138 
+
2141  typedef lowp_f64mat4x4 lowp_f64mat4;
+
2142 
+
2143 
+
2146  //typedef f64 Highp_f64mat1x1;
+
2147 
+
2150  typedef tmat2x2<f64, mediump> mediump_f64mat2x2;
+
2151 
+
2154  typedef tmat2x3<f64, mediump> mediump_f64mat2x3;
+
2155 
+
2158  typedef tmat2x4<f64, mediump> mediump_f64mat2x4;
+
2159 
+
2162  typedef tmat3x2<f64, mediump> mediump_f64mat3x2;
+
2163 
+
2166  typedef tmat3x3<f64, mediump> mediump_f64mat3x3;
+
2167 
+
2170  typedef tmat3x4<f64, mediump> mediump_f64mat3x4;
+
2171 
+
2174  typedef tmat4x2<f64, mediump> mediump_f64mat4x2;
+
2175 
+
2178  typedef tmat4x3<f64, mediump> mediump_f64mat4x3;
+
2179 
+
2182  typedef tmat4x4<f64, mediump> mediump_f64mat4x4;
+
2183 
+
2186  //typedef mediump_f64mat1x1 mediump_f64mat1;
+
2187 
+
2190  typedef mediump_f64mat2x2 mediump_f64mat2;
+
2191 
+
2194  typedef mediump_f64mat3x3 mediump_f64mat3;
+
2195 
+
2198  typedef mediump_f64mat4x4 mediump_f64mat4;
+
2199 
+
2202  //typedef f64 highp_f64mat1x1;
+
2203 
+
2206  typedef tmat2x2<f64, highp> highp_f64mat2x2;
+
2207 
+
2210  typedef tmat2x3<f64, highp> highp_f64mat2x3;
+
2211 
+
2214  typedef tmat2x4<f64, highp> highp_f64mat2x4;
+
2215 
+
2218  typedef tmat3x2<f64, highp> highp_f64mat3x2;
+
2219 
+
2222  typedef tmat3x3<f64, highp> highp_f64mat3x3;
+
2223 
+
2226  typedef tmat3x4<f64, highp> highp_f64mat3x4;
+
2227 
+
2230  typedef tmat4x2<f64, highp> highp_f64mat4x2;
+
2231 
+
2234  typedef tmat4x3<f64, highp> highp_f64mat4x3;
+
2235 
+
2238  typedef tmat4x4<f64, highp> highp_f64mat4x4;
+
2239 
+
2242  //typedef highp_f64mat1x1 highp_f64mat1;
+
2243 
+
2246  typedef highp_f64mat2x2 highp_f64mat2;
+
2247 
+
2250  typedef highp_f64mat3x3 highp_f64mat3;
+
2251 
+
2254  typedef highp_f64mat4x4 highp_f64mat4;
+
2255 
+
2257  // Quaternion types
+
2258 
+
2261  typedef tquat<f32, lowp> lowp_f32quat;
+
2262 
+
2265  typedef tquat<f64, lowp> lowp_f64quat;
+
2266 
+
2269  typedef tquat<f32, mediump> mediump_f32quat;
+
2270 
+
2273  typedef tquat<f64, mediump> mediump_f64quat;
+
2274 
+
2277  typedef tquat<f32, highp> highp_f32quat;
+
2278 
+
2281  typedef tquat<f64, highp> highp_f64quat;
+
2282 
+
2283 
+
2284 #if(defined(GLM_PRECISION_LOWP_FLOAT))
+
2285  typedef lowp_f32vec1 fvec1;
+
2286  typedef lowp_f32vec2 fvec2;
+
2287  typedef lowp_f32vec3 fvec3;
+
2288  typedef lowp_f32vec4 fvec4;
+
2289  typedef lowp_f32mat2 fmat2;
+
2290  typedef lowp_f32mat3 fmat3;
+
2291  typedef lowp_f32mat4 fmat4;
+
2292  typedef lowp_f32mat2x2 fmat2x2;
+
2293  typedef lowp_f32mat3x2 fmat3x2;
+
2294  typedef lowp_f32mat4x2 fmat4x2;
+
2295  typedef lowp_f32mat2x3 fmat2x3;
+
2296  typedef lowp_f32mat3x3 fmat3x3;
+
2297  typedef lowp_f32mat4x3 fmat4x3;
+
2298  typedef lowp_f32mat2x4 fmat2x4;
+
2299  typedef lowp_f32mat3x4 fmat3x4;
+
2300  typedef lowp_f32mat4x4 fmat4x4;
+
2301  typedef lowp_f32quat fquat;
+
2302 
+
2303  typedef lowp_f32vec1 f32vec1;
+
2304  typedef lowp_f32vec2 f32vec2;
+
2305  typedef lowp_f32vec3 f32vec3;
+
2306  typedef lowp_f32vec4 f32vec4;
+
2307  typedef lowp_f32mat2 f32mat2;
+
2308  typedef lowp_f32mat3 f32mat3;
+
2309  typedef lowp_f32mat4 f32mat4;
+
2310  typedef lowp_f32mat2x2 f32mat2x2;
+
2311  typedef lowp_f32mat3x2 f32mat3x2;
+
2312  typedef lowp_f32mat4x2 f32mat4x2;
+
2313  typedef lowp_f32mat2x3 f32mat2x3;
+
2314  typedef lowp_f32mat3x3 f32mat3x3;
+
2315  typedef lowp_f32mat4x3 f32mat4x3;
+
2316  typedef lowp_f32mat2x4 f32mat2x4;
+
2317  typedef lowp_f32mat3x4 f32mat3x4;
+
2318  typedef lowp_f32mat4x4 f32mat4x4;
+
2319  typedef lowp_f32quat f32quat;
+
2320 #elif(defined(GLM_PRECISION_MEDIUMP_FLOAT))
+
2321  typedef mediump_f32vec1 fvec1;
+
2322  typedef mediump_f32vec2 fvec2;
+
2323  typedef mediump_f32vec3 fvec3;
+
2324  typedef mediump_f32vec4 fvec4;
+
2325  typedef mediump_f32mat2 fmat2;
+
2326  typedef mediump_f32mat3 fmat3;
+
2327  typedef mediump_f32mat4 fmat4;
+
2328  typedef mediump_f32mat2x2 fmat2x2;
+
2329  typedef mediump_f32mat3x2 fmat3x2;
+
2330  typedef mediump_f32mat4x2 fmat4x2;
+
2331  typedef mediump_f32mat2x3 fmat2x3;
+
2332  typedef mediump_f32mat3x3 fmat3x3;
+
2333  typedef mediump_f32mat4x3 fmat4x3;
+
2334  typedef mediump_f32mat2x4 fmat2x4;
+
2335  typedef mediump_f32mat3x4 fmat3x4;
+
2336  typedef mediump_f32mat4x4 fmat4x4;
+
2337  typedef mediump_f32quat fquat;
+
2338 
+
2339  typedef mediump_f32vec1 f32vec1;
+
2340  typedef mediump_f32vec2 f32vec2;
+
2341  typedef mediump_f32vec3 f32vec3;
+
2342  typedef mediump_f32vec4 f32vec4;
+
2343  typedef mediump_f32mat2 f32mat2;
+
2344  typedef mediump_f32mat3 f32mat3;
+
2345  typedef mediump_f32mat4 f32mat4;
+
2346  typedef mediump_f32mat2x2 f32mat2x2;
+
2347  typedef mediump_f32mat3x2 f32mat3x2;
+
2348  typedef mediump_f32mat4x2 f32mat4x2;
+
2349  typedef mediump_f32mat2x3 f32mat2x3;
+
2350  typedef mediump_f32mat3x3 f32mat3x3;
+
2351  typedef mediump_f32mat4x3 f32mat4x3;
+
2352  typedef mediump_f32mat2x4 f32mat2x4;
+
2353  typedef mediump_f32mat3x4 f32mat3x4;
+
2354  typedef mediump_f32mat4x4 f32mat4x4;
+
2355  typedef mediump_f32quat f32quat;
+
2356 #else//if(defined(GLM_PRECISION_HIGHP_FLOAT))
+
2357  typedef highp_f32vec1 fvec1;
+
2360 
+
2363  typedef highp_f32vec2 fvec2;
+
2364 
+
2367  typedef highp_f32vec3 fvec3;
+
2368 
+
2371  typedef highp_f32vec4 fvec4;
+
2372 
+
2375  typedef highp_f32mat2x2 fmat2x2;
+
2376 
+
2379  typedef highp_f32mat2x3 fmat2x3;
+
2380 
+
2383  typedef highp_f32mat2x4 fmat2x4;
+
2384 
+
2387  typedef highp_f32mat3x2 fmat3x2;
+
2388 
+
2391  typedef highp_f32mat3x3 fmat3x3;
+
2392 
+
2395  typedef highp_f32mat3x4 fmat3x4;
+
2396 
+
2399  typedef highp_f32mat4x2 fmat4x2;
+
2400 
+
2403  typedef highp_f32mat4x3 fmat4x3;
+
2404 
+
2407  typedef highp_f32mat4x4 fmat4x4;
+
2408 
+
2411  typedef fmat2x2 fmat2;
+
2412 
+
2415  typedef fmat3x3 fmat3;
+
2416 
+
2419  typedef fmat4x4 fmat4;
+
2420 
+
2423  typedef highp_fquat fquat;
+
2424 
+
2425 
+
2426 
+
2429  typedef highp_f32vec1 f32vec1;
+
2430 
+
2433  typedef highp_f32vec2 f32vec2;
+
2434 
+
2437  typedef highp_f32vec3 f32vec3;
+
2438 
+
2441  typedef highp_f32vec4 f32vec4;
+
2442 
+
2445  typedef highp_f32mat2x2 f32mat2x2;
+
2446 
+
2449  typedef highp_f32mat2x3 f32mat2x3;
+
2450 
+
2453  typedef highp_f32mat2x4 f32mat2x4;
+
2454 
+
2457  typedef highp_f32mat3x2 f32mat3x2;
+
2458 
+
2461  typedef highp_f32mat3x3 f32mat3x3;
+
2462 
+
2465  typedef highp_f32mat3x4 f32mat3x4;
+
2466 
+
2469  typedef highp_f32mat4x2 f32mat4x2;
+
2470 
+
2473  typedef highp_f32mat4x3 f32mat4x3;
+
2474 
+
2477  typedef highp_f32mat4x4 f32mat4x4;
+
2478 
+
2481  typedef f32mat2x2 f32mat2;
+
2482 
+
2485  typedef f32mat3x3 f32mat3;
+
2486 
+
2489  typedef f32mat4x4 f32mat4;
+
2490 
+
2493  typedef highp_f32quat f32quat;
+
2494 #endif
+
2495 
+
2496 #if(defined(GLM_PRECISION_LOWP_DOUBLE))
+
2497  typedef lowp_f64vec1 f64vec1;
+
2498  typedef lowp_f64vec2 f64vec2;
+
2499  typedef lowp_f64vec3 f64vec3;
+
2500  typedef lowp_f64vec4 f64vec4;
+
2501  typedef lowp_f64mat2 f64mat2;
+
2502  typedef lowp_f64mat3 f64mat3;
+
2503  typedef lowp_f64mat4 f64mat4;
+
2504  typedef lowp_f64mat2x2 f64mat2x2;
+
2505  typedef lowp_f64mat3x2 f64mat3x2;
+
2506  typedef lowp_f64mat4x2 f64mat4x2;
+
2507  typedef lowp_f64mat2x3 f64mat2x3;
+
2508  typedef lowp_f64mat3x3 f64mat3x3;
+
2509  typedef lowp_f64mat4x3 f64mat4x3;
+
2510  typedef lowp_f64mat2x4 f64mat2x4;
+
2511  typedef lowp_f64mat3x4 f64mat3x4;
+
2512  typedef lowp_f64mat4x4 f64mat4x4;
+
2513  typedef lowp_f64quat f64quat;
+
2514 #elif(defined(GLM_PRECISION_MEDIUMP_DOUBLE))
+
2515  typedef mediump_f64vec1 f64vec1;
+
2516  typedef mediump_f64vec2 f64vec2;
+
2517  typedef mediump_f64vec3 f64vec3;
+
2518  typedef mediump_f64vec4 f64vec4;
+
2519  typedef mediump_f64mat2 f64mat2;
+
2520  typedef mediump_f64mat3 f64mat3;
+
2521  typedef mediump_f64mat4 f64mat4;
+
2522  typedef mediump_f64mat2x2 f64mat2x2;
+
2523  typedef mediump_f64mat3x2 f64mat3x2;
+
2524  typedef mediump_f64mat4x2 f64mat4x2;
+
2525  typedef mediump_f64mat2x3 f64mat2x3;
+
2526  typedef mediump_f64mat3x3 f64mat3x3;
+
2527  typedef mediump_f64mat4x3 f64mat4x3;
+
2528  typedef mediump_f64mat2x4 f64mat2x4;
+
2529  typedef mediump_f64mat3x4 f64mat3x4;
+
2530  typedef mediump_f64mat4x4 f64mat4x4;
+
2531  typedef mediump_f64quat f64quat;
+
2532 #else
+
2533  typedef highp_f64vec1 f64vec1;
+
2536 
+
2539  typedef highp_f64vec2 f64vec2;
+
2540 
+
2543  typedef highp_f64vec3 f64vec3;
+
2544 
+
2547  typedef highp_f64vec4 f64vec4;
+
2548 
+
2551  typedef highp_f64mat2x2 f64mat2x2;
+
2552 
+
2555  typedef highp_f64mat2x3 f64mat2x3;
+
2556 
+
2559  typedef highp_f64mat2x4 f64mat2x4;
+
2560 
+
2563  typedef highp_f64mat3x2 f64mat3x2;
+
2564 
+
2567  typedef highp_f64mat3x3 f64mat3x3;
+
2568 
+
2571  typedef highp_f64mat3x4 f64mat3x4;
+
2572 
+
2575  typedef highp_f64mat4x2 f64mat4x2;
+
2576 
+
2579  typedef highp_f64mat4x3 f64mat4x3;
+
2580 
+
2583  typedef highp_f64mat4x4 f64mat4x4;
+
2584 
+
2587  typedef f64mat2x2 f64mat2;
+
2588 
+
2591  typedef f64mat3x3 f64mat3;
+
2592 
+
2595  typedef f64mat4x4 f64mat4;
+
2596 
+
2599  typedef highp_f64quat f64quat;
+
2600 #endif
+
2601 }//namespace glm
+
detail::int8 highp_int8
High precision 8 bit signed integer type.
Definition: fwd.hpp:228
+
tvec4< u16, mediump > mediump_u16vec4
Medium precision 16 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:1052
+
detail::uint64 lowp_uint64
Low precision 64 bit unsigned integer type.
Definition: fwd.hpp:747
+
highp_i16vec4 i16vec4
Default precision 16 bit signed integer vector of 4 components type.
Definition: fwd.hpp:488
+
highp_f32vec2 f32vec2
Default single-precision floating-point vector of 2 components.
Definition: fwd.hpp:2433
+
detail::uint8 lowp_uint8_t
Low precision 8 bit unsigned integer type.
Definition: fwd.hpp:752
+
tvec4< i16, lowp > lowp_i16vec4
Low precision 16 bit signed integer vector of 4 components type.
Definition: fwd.hpp:426
+
detail::int16 highp_i16
High precision 16 bit signed integer type.
Definition: fwd.hpp:264
+
mediump_f32mat2x2 mediump_f32mat2
Medium single-precision floating-point 1x1 matrix.
Definition: fwd.hpp:2019
+
highp_fmat4x4 highp_fmat4
High single-precision floating-point 4x4 matrix.
Definition: fwd.hpp:1913
+
tmat3x2< f32, highp > highp_fmat3x2
High single-precision floating-point 3x2 matrix.
Definition: fwd.hpp:1877
+
highp_f32mat3x4 f32mat3x4
Default single-precision floating-point 3x4 matrix.
Definition: fwd.hpp:2465
+
tmat2x4< f32, mediump > mediump_f32mat2x4
Medium single-precision floating-point 2x4 matrix.
Definition: fwd.hpp:1987
+
tmat3x4< f32, mediump > mediump_f32mat3x4
Medium single-precision floating-point 3x4 matrix.
Definition: fwd.hpp:1999
+
tmat2x2< f32, mediump > mediump_fmat2x2
Medium single-precision floating-point 1x1 matrix.
Definition: fwd.hpp:1808
+
tvec2< i8, mediump > mediump_i8vec2
Medium precision 8 bit signed integer vector of 2 components type.
Definition: fwd.hpp:356
+
tvec1< u32, lowp > lowp_u32vec1
Low precision 32 bit unsigned integer scalar type.
Definition: fwd.hpp:1103
+
tvec4< i8, lowp > lowp_i8vec4
Low precision 8 bit signed integer vector of 4 components type.
Definition: fwd.hpp:347
+
detail::uint64 uint64_t
64 bit unsigned integer type.
Definition: fwd.hpp:921
+
highp_f32mat4x2 f32mat4x2
Default single-precision floating-point 4x2 matrix.
Definition: fwd.hpp:2469
+
highp_u16vec1 u16vec1
Default precision 16 bit unsigned integer scalar type.
Definition: fwd.hpp:1085
+
highp_f32vec1 fvec1
Default single-precision floating-point vector of 1 components.
Definition: fwd.hpp:2359
+
tmat4x3< f64, highp > highp_f64mat4x3
High double-precision floating-point 4x3 matrix.
Definition: fwd.hpp:2234
+
detail::uint16 highp_u16
Medium precision 16 bit unsigned integer type.
Definition: fwd.hpp:873
+
tvec1< u64, lowp > lowp_u64vec1
Low precision 64 bit unsigned integer scalar type.
Definition: fwd.hpp:1262
+
tvec2< i8, highp > highp_i8vec2
High precision 8 bit signed integer vector of 2 components type.
Definition: fwd.hpp:373
+
tmat3x2< f32, mediump > mediump_fmat3x2
Medium single-precision floating-point 3x2 matrix.
Definition: fwd.hpp:1820
+
tvec4< i64, highp > highp_i64vec4
High precision 64 bit signed integer vector of 4 components type.
Definition: fwd.hpp:699
+
tvec2< f64, mediump > mediump_f64vec2
Medium double-precision floating-point vector of 2 components.
Definition: fwd.hpp:1715
+
tvec4< u32, lowp > lowp_u32vec4
Low precision 32 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:1115
+
highp_i32vec1 i32vec1
Default precision 32 bit signed integer scalar type.
Definition: fwd.hpp:555
+
tvec2< f64, highp > highp_f64vec2
High double-precision floating-point vector of 2 components.
Definition: fwd.hpp:1731
+
tvec2< f64, lowp > lowp_f64vec2
Low double-precision floating-point vector of 2 components.
Definition: fwd.hpp:1699
+
tmat2x3< f32, mediump > mediump_f32mat2x3
Medium single-precision floating-point 2x3 matrix.
Definition: fwd.hpp:1983
+
tvec2< u64, lowp > lowp_u64vec2
Low precision 64 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:1266
+
detail::int16 mediump_int16
Medium precision 16 bit signed integer type.
Definition: fwd.hpp:184
+
highp_float64_t float64_t
Default 64 bit double-precision floating-point scalar.
Definition: fwd.hpp:1533
+
tmat3x4< f32, highp > highp_f32mat3x4
High single-precision floating-point 3x4 matrix.
Definition: fwd.hpp:2056
+
detail::uint32 lowp_u32
Low precision 32 bit unsigned integer type.
Definition: fwd.hpp:777
+
highp_u64vec2 u64vec2
Default precision 64 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:1327
+
tmat4x2< f32, mediump > mediump_fmat4x2
Medium single-precision floating-point 4x2 matrix.
Definition: fwd.hpp:1832
+
tmat2x3< f32, highp > highp_fmat2x3
High single-precision floating-point 2x3 matrix.
Definition: fwd.hpp:1869
+
highp_i16vec2 i16vec2
Default precision 16 bit signed integer vector of 2 components type.
Definition: fwd.hpp:480
+
OpenGL Mathematics (glm.g-truc.net)
+
detail::float32 mediump_float32
Medium 32 bit single-precision floating-point scalar.
Definition: fwd.hpp:1418
+
detail::uint32 uint32_t
32 bit unsigned integer type.
Definition: fwd.hpp:917
+
tvec2< i32, highp > highp_i32vec2
High precision 32 bit signed integer vector of 2 components type.
Definition: fwd.hpp:532
+
tmat2x2< f64, highp > highp_f64mat2x2
High double-precision floating-point 1x1 matrix.
Definition: fwd.hpp:2206
+
detail::int32 int32_t
32 bit signed integer type.
Definition: fwd.hpp:308
+
highp_u16vec2 u16vec2
Default precision 16 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:1089
+
detail::float32 mediump_float32_t
Medium 32 bit single-precision floating-point scalar.
Definition: fwd.hpp:1426
+
tvec3< u32, mediump > mediump_u32vec3
Medium precision 32 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:1128
+
tvec1< i32, mediump > mediump_i32vec1
Medium precision 32 bit signed integer scalar type.
Definition: fwd.hpp:511
+
highp_f32mat4x4 f32mat4x4
Default single-precision floating-point 4x4 matrix.
Definition: fwd.hpp:2477
+
tvec4< float, lowp > lowp_vec4
4 components vector of low single-precision floating-point numbers.
Definition: type_vec.hpp:298
+
tvec1< u16, highp > highp_u16vec1
High precision 16 bit unsigned integer scalar type.
Definition: fwd.hpp:1057
+
tvec4< i64, lowp > lowp_i64vec4
Low precision 64 bit signed integer vector of 4 components type.
Definition: fwd.hpp:665
+
highp_i32vec4 i32vec4
Default precision 32 bit signed integer vector of 4 components type.
Definition: fwd.hpp:567
+
tvec3< i64, highp > highp_i64vec3
High precision 64 bit signed integer vector of 3 components type.
Definition: fwd.hpp:695
+
highp_f32mat3x2 fmat3x2
Default single-precision floating-point 3x2 matrix.
Definition: fwd.hpp:2387
+
tvec2< float, lowp > lowp_vec2
2 components vector of low single-precision floating-point numbers.
Definition: type_vec.hpp:83
+
tmat3x2< f32, lowp > lowp_f32mat3x2
Low single-precision floating-point 3x2 matrix.
Definition: fwd.hpp:1934
+
detail::uint64 mediump_uint64
Medium precision 64 bit unsigned integer type.
Definition: fwd.hpp:799
+
tvec3< u8, lowp > lowp_u8vec3
Low precision 8 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:952
+
detail::uint16 uint16
16 bit unsigned integer type.
Definition: type_int.hpp:230
+
highp_u64vec1 u64vec1
Default precision 64 bit unsigned integer scalar type.
Definition: fwd.hpp:1323
+
detail::int64 lowp_i64
Low precision 64 bit signed integer type.
Definition: fwd.hpp:176
+
detail::int32 highp_int32_t
32 bit signed integer type.
Definition: fwd.hpp:252
+
tvec4< i16, highp > highp_i16vec4
High precision 16 bit signed integer vector of 4 components type.
Definition: fwd.hpp:460
+
tvec4< u8, mediump > mediump_u8vec4
Medium precision 8 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:973
+
tvec4< i32, highp > highp_i32vec4
High precision 32 bit signed integer vector of 4 components type.
Definition: fwd.hpp:540
+
detail::int64 lowp_int64
Low precision 64 bit signed integer type.
Definition: fwd.hpp:144
+
detail::int16 lowp_int16_t
Low precision 16 bit signed integer type.
Definition: fwd.hpp:152
+
highp_fmat2x2 highp_fmat2
High single-precision floating-point 1x1 matrix.
Definition: fwd.hpp:1905
+
detail::int32 lowp_int32
Low precision 32 bit signed integer type.
Definition: fwd.hpp:140
+
tmat2x3< f64, highp > highp_f64mat2x3
High double-precision floating-point 2x3 matrix.
Definition: fwd.hpp:2210
+
lowp_fmat2x2 lowp_fmat2
Low single-precision floating-point 1x1 matrix.
Definition: fwd.hpp:1791
+
tmat2x2< f32, highp > highp_f32mat2x2
High single-precision floating-point 1x1 matrix.
Definition: fwd.hpp:2036
+
detail::float64 highp_float64_t
High 64 bit double-precision floating-point scalar.
Definition: fwd.hpp:1455
+
tvec2< f32, mediump > mediump_f32vec2
Medium single-precision floating-point vector of 2 components.
Definition: fwd.hpp:1666
+
detail::uint8 lowp_u8
Low precision 8 bit unsigned integer type.
Definition: fwd.hpp:769
+
tvec4< i32, lowp > lowp_i32vec4
Low precision 32 bit signed integer vector of 4 components type.
Definition: fwd.hpp:506
+
tmat4x3< f32, mediump > mediump_fmat4x3
Medium single-precision floating-point 4x3 matrix.
Definition: fwd.hpp:1836
+
mediump_f64mat4x4 mediump_f64mat4
Medium double-precision floating-point 4x4 matrix.
Definition: fwd.hpp:2198
+
lowp_fmat3x3 lowp_fmat3
Low single-precision floating-point 3x3 matrix.
Definition: fwd.hpp:1795
+
detail::uint16 mediump_uint16_t
Medium precision 16 bit unsigned integer type.
Definition: fwd.hpp:807
+
highp_f32mat3x2 f32mat3x2
Default single-precision floating-point 3x2 matrix.
Definition: fwd.hpp:2457
+
detail::uint8 u8
8 bit unsigned integer type.
Definition: fwd.hpp:926
+
detail::uint16 uint16_t
16 bit unsigned integer type.
Definition: fwd.hpp:913
+
detail::uint8 highp_uint8_t
Medium precision 8 bit unsigned integer type.
Definition: fwd.hpp:853
+
highp_f64mat4x2 f64mat4x2
Default double-precision floating-point 4x2 matrix.
Definition: fwd.hpp:2575
+
tmat4x4< f64, lowp > lowp_f64mat4x4
Low double-precision floating-point 4x4 matrix.
Definition: fwd.hpp:2125
+
tvec1< f32, highp > highp_f32vec1
High single-precision floating-point vector of 1 component.
Definition: fwd.hpp:1678
+
highp_i32vec3 i32vec3
Default precision 32 bit signed integer vector of 3 components type.
Definition: fwd.hpp:563
+
tquat< f64, lowp > lowp_f64quat
Low double-precision floating-point quaternion.
Definition: fwd.hpp:2265
+
tvec2< f32, highp > highp_f32vec2
High single-precision floating-point vector of 2 components.
Definition: fwd.hpp:1682
+
tmat4x4< f32, mediump > mediump_fmat4x4
Medium single-precision floating-point 4x4 matrix.
Definition: fwd.hpp:1840
+
tquat< f32, mediump > mediump_f32quat
Medium single-precision floating-point quaternion.
Definition: fwd.hpp:2269
+
tmat2x4< f32, mediump > mediump_fmat2x4
Medium single-precision floating-point 2x4 matrix.
Definition: fwd.hpp:1816
+
tvec1< float, highp > highp_vec1
High single-precision floating-point vector of 1 component.
Definition: fwd.hpp:1613
+
detail::float64 lowp_float64
Low 64 bit double-precision floating-point scalar.
Definition: fwd.hpp:1348
+
highp_f32mat4x4 fmat4x4
Default single-precision floating-point 4x4 matrix.
Definition: fwd.hpp:2407
+
highp_u8vec1 u8vec1
Default precision 8 bit unsigned integer scalar type.
Definition: fwd.hpp:1005
+
tmat4x4< f32, highp > highp_fmat4x4
High single-precision floating-point 4x4 matrix.
Definition: fwd.hpp:1897
+
tmat3x3< f32, highp > highp_fmat3x3
High single-precision floating-point 3x3 matrix.
Definition: fwd.hpp:1881
+
tvec1< float, mediump > mediump_vec1
Medium single-precision floating-point vector of 1 component.
Definition: fwd.hpp:1580
+
tvec4< f32, highp > highp_f32vec4
High single-precision floating-point vector of 4 components.
Definition: fwd.hpp:1690
+
detail::int8 lowp_i8
Low precision 8 bit signed integer type.
Definition: fwd.hpp:164
+
detail::int8 highp_i8
High precision 8 bit signed integer type.
Definition: fwd.hpp:260
+
tmat3x4< f64, mediump > mediump_f64mat3x4
Medium double-precision floating-point 3x4 matrix.
Definition: fwd.hpp:2170
+
tmat3x3< f64, mediump > mediump_f64mat3x3
Medium double-precision floating-point 3x3 matrix.
Definition: fwd.hpp:2166
+
detail::uint64 uint64
64 bit unsigned integer type.
Definition: type_int.hpp:232
+
float float32
Default 32 bit single-precision floating-point scalar.
Definition: type_float.hpp:84
+
tvec4< i64, mediump > mediump_i64vec4
Medium precision 64 bit signed integer vector of 4 components type.
Definition: fwd.hpp:682
+
tvec3< i16, lowp > lowp_i16vec3
Low precision 16 bit signed integer vector of 3 components type.
Definition: fwd.hpp:422
+
highp_f32mat3x3 f32mat3x3
Default single-precision floating-point 3x3 matrix.
Definition: fwd.hpp:2461
+
tvec1< u32, highp > highp_u32vec1
High precision 32 bit unsigned integer scalar type.
Definition: fwd.hpp:1137
+
tmat3x4< f64, highp > highp_f64mat3x4
High double-precision floating-point 3x4 matrix.
Definition: fwd.hpp:2226
+
detail::int16 lowp_i16
Low precision 16 bit signed integer type.
Definition: fwd.hpp:168
+
detail::int64 highp_i64
High precision 64 bit signed integer type.
Definition: fwd.hpp:272
+
tmat2x4< f64, lowp > lowp_f64mat2x4
Low double-precision floating-point 2x4 matrix.
Definition: fwd.hpp:2101
+
highp_f32vec3 fvec3
Default single-precision floating-point vector of 3 components.
Definition: fwd.hpp:2367
+
highp_u32vec4 u32vec4
Default precision 32 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:1176
+
detail::int16 int16_t
16 bit signed integer type.
Definition: fwd.hpp:304
+
tvec4< float, mediump > mediump_vec4
4 components vector of medium single-precision floating-point numbers.
Definition: type_vec.hpp:292
+
highp_i16vec3 i16vec3
Default precision 16 bit signed integer vector of 3 components type.
Definition: fwd.hpp:484
+
detail::int16 highp_int16
High precision 16 bit signed integer type.
Definition: fwd.hpp:232
+
detail::int8 lowp_int8
Low precision 8 bit signed integer type.
Definition: fwd.hpp:132
+
tquat< f64, mediump > mediump_f64quat
Medium double-precision floating-point quaternion.
Definition: fwd.hpp:2273
+
detail::int16 lowp_int16
Low precision 16 bit signed integer type.
Definition: fwd.hpp:136
+
lowp_f64mat3x3 lowp_f64mat3
Low double-precision floating-point 3x3 matrix.
Definition: fwd.hpp:2137
+
highp_f64vec2 f64vec2
Default double-precision floating-point vector of 2 components.
Definition: fwd.hpp:2539
+
tvec1< u16, mediump > mediump_u16vec1
Medium precision 16 bit unsigned integer scalar type.
Definition: fwd.hpp:1040
+
detail::int64 i64
64 bit signed integer type.
Definition: fwd.hpp:329
+
OpenGL Mathematics (glm.g-truc.net)
+
detail::int64 mediump_int64_t
Medium precision 64 bit signed integer type.
Definition: fwd.hpp:208
+
tmat3x4< f32, lowp > lowp_fmat3x4
Low single-precision floating-point 3x4 matrix.
Definition: fwd.hpp:1771
+
highp_f64mat2x4 f64mat2x4
Default double-precision floating-point 2x4 matrix.
Definition: fwd.hpp:2559
+
tmat4x2< f32, lowp > lowp_fmat4x2
Low single-precision floating-point 4x2 matrix.
Definition: fwd.hpp:1775
+
tmat4x2< f64, lowp > lowp_f64mat4x2
Low double-precision floating-point 4x2 matrix.
Definition: fwd.hpp:2117
+
detail::uint32 mediump_uint32
Medium precision 32 bit unsigned integer type.
Definition: fwd.hpp:795
+
f32mat3x3 f32mat3
Default single-precision floating-point 3x3 matrix.
Definition: fwd.hpp:2485
+
detail::uint8 mediump_u8
Medium precision 8 bit unsigned integer type.
Definition: fwd.hpp:819
+
detail::uint64 u64
64 bit unsigned integer type.
Definition: fwd.hpp:938
+
tmat3x3< f64, highp > highp_f64mat3x3
High double-precision floating-point 3x3 matrix.
Definition: fwd.hpp:2222
+
tvec1< i32, highp > highp_i32vec1
High precision 32 bit signed integer scalar type.
Definition: fwd.hpp:528
+
tvec4< i16, mediump > mediump_i16vec4
Medium precision 16 bit signed integer vector of 4 components type.
Definition: fwd.hpp:443
+
tvec4< f32, lowp > lowp_f32vec4
Low single-precision floating-point vector of 4 components.
Definition: fwd.hpp:1658
+
highp_u64vec3 u64vec3
Default precision 64 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:1331
+
tvec1< i64, mediump > mediump_i64vec1
Medium precision 64 bit signed integer scalar type.
Definition: fwd.hpp:670
+
tvec2< i32, mediump > mediump_i32vec2
Medium precision 32 bit signed integer vector of 2 components type.
Definition: fwd.hpp:515
+
tvec3< u32, highp > highp_u32vec3
High precision 32 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:1145
+
tmat4x4< f32, highp > highp_f32mat4x4
High single-precision floating-point 4x4 matrix.
Definition: fwd.hpp:2068
+
highp_f64quat f64quat
Default double-precision floating-point quaternion.
Definition: fwd.hpp:2599
+
float64 mediump_f64
Medium 64 bit double-precision floating-point scalar.
Definition: fwd.hpp:1438
+
tvec3< float, highp > highp_vec3
3 components vector of high single-precision floating-point numbers.
Definition: type_vec.hpp:180
+
highp_f32mat2x3 f32mat2x3
Default single-precision floating-point 2x3 matrix.
Definition: fwd.hpp:2449
+
detail::uint64 highp_u64
Medium precision 64 bit unsigned integer type.
Definition: fwd.hpp:881
+
detail::int64 highp_int64
High precision 64 bit signed integer type.
Definition: fwd.hpp:240
+
tvec1< i8, highp > highp_i8vec1
High precision 8 bit signed integer scalar type.
Definition: fwd.hpp:369
+
tquat< f64, highp > highp_f64quat
High double-precision floating-point quaternion.
Definition: fwd.hpp:2281
+
detail::float64 highp_float64
High 64 bit double-precision floating-point scalar.
Definition: fwd.hpp:1447
+
tvec1< i64, lowp > lowp_i64vec1
Low precision 64 bit signed integer scalar type.
Definition: fwd.hpp:653
+
lowp_f64mat4x4 lowp_f64mat4
Low double-precision floating-point 4x4 matrix.
Definition: fwd.hpp:2141
+
detail::uint8 uint8
8 bit unsigned integer type.
Definition: type_int.hpp:229
+
tvec2< i64, lowp > lowp_i64vec2
Low precision 64 bit signed integer vector of 2 components type.
Definition: fwd.hpp:657
+
tvec2< float, highp > highp_fvec2
High Single-precision floating-point vector of 2 components.
Definition: fwd.hpp:1633
+
tvec2< i64, mediump > mediump_i64vec2
Medium precision 64 bit signed integer vector of 2 components type.
Definition: fwd.hpp:674
+
detail::uint32 uint32
32 bit unsigned integer type.
Definition: type_int.hpp:231
+
detail::uint32 mediump_u32
Medium precision 32 bit unsigned integer type.
Definition: fwd.hpp:827
+
tvec4< float, mediump > mediump_fvec4
Medium Single-precision floating-point vector of 4 components.
Definition: fwd.hpp:1608
+
detail::int8 mediump_int8
Medium precision 8 bit signed integer type.
Definition: fwd.hpp:180
+
tmat2x2< f64, lowp > lowp_f64mat2x2
Low double-precision floating-point 1x1 matrix.
Definition: fwd.hpp:2093
+
fmat3x3 fmat3
Default single-precision floating-point 3x3 matrix.
Definition: fwd.hpp:2415
+
detail::int8 int8
8 bit signed integer type.
Definition: type_int.hpp:224
+
highp_f32mat2x2 highp_f32mat2
High single-precision floating-point 1x1 matrix.
Definition: fwd.hpp:2076
+
tvec1< u8, lowp > lowp_u8vec1
Low precision 8 bit unsigned integer scalar type.
Definition: fwd.hpp:944
+
tmat4x3< f64, mediump > mediump_f64mat4x3
Medium double-precision floating-point 4x3 matrix.
Definition: fwd.hpp:2178
+
tmat4x2< f32, mediump > mediump_f32mat4x2
Medium single-precision floating-point 4x2 matrix.
Definition: fwd.hpp:2003
+
detail::float64 lowp_float64_t
Low 64 bit double-precision floating-point scalar.
Definition: fwd.hpp:1356
+
f32mat2x2 f32mat2
Default single-precision floating-point 2x2 matrix.
Definition: fwd.hpp:2481
+
tvec2< i32, lowp > lowp_i32vec2
Low precision 32 bit signed integer vector of 2 components type.
Definition: fwd.hpp:498
+
detail::uint32 mediump_uint32_t
Medium precision 32 bit unsigned integer type.
Definition: fwd.hpp:811
+
tvec2< u64, mediump > mediump_u64vec2
Medium precision 64 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:1283
+
tvec4< u64, mediump > mediump_u64vec4
Medium precision 64 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:1291
+
tvec1< f32, lowp > lowp_f32vec1
Low single-precision floating-point vector of 1 component.
Definition: fwd.hpp:1646
+
tmat2x4< f32, lowp > lowp_f32mat2x4
Low single-precision floating-point 2x4 matrix.
Definition: fwd.hpp:1930
+
detail::uint8 mediump_uint8
Medium precision 8 bit unsigned integer type.
Definition: fwd.hpp:787
+
highp_f32vec3 f32vec3
Default single-precision floating-point vector of 3 components.
Definition: fwd.hpp:2437
+
highp_f64mat2x2 highp_f64mat2
High double-precision floating-point 1x1 matrix.
Definition: fwd.hpp:2246
+
highp_f32mat4x3 f32mat4x3
Default single-precision floating-point 4x3 matrix.
Definition: fwd.hpp:2473
+
tvec3< i32, lowp > lowp_i32vec3
Low precision 32 bit signed integer vector of 3 components type.
Definition: fwd.hpp:502
+
tmat2x4< f64, mediump > mediump_f64mat2x4
Medium double-precision floating-point 2x4 matrix.
Definition: fwd.hpp:2158
+
tvec1< u32, mediump > mediump_u32vec1
Medium precision 32 bit unsigned integer scalar type.
Definition: fwd.hpp:1120
+
tvec3< i32, highp > highp_i32vec3
High precision 32 bit signed integer vector of 3 components type.
Definition: fwd.hpp:536
+
highp_f32mat2x4 f32mat2x4
Default single-precision floating-point 2x4 matrix.
Definition: fwd.hpp:2453
+
tmat2x3< f64, lowp > lowp_f64mat2x3
Low double-precision floating-point 2x3 matrix.
Definition: fwd.hpp:2097
+
highp_f64vec4 f64vec4
Default double-precision floating-point vector of 4 components.
Definition: fwd.hpp:2547
+
detail::uint8 mediump_uint8_t
Medium precision 8 bit unsigned integer type.
Definition: fwd.hpp:803
+
tvec3< i64, mediump > mediump_i64vec3
Medium precision 64 bit signed integer vector of 3 components type.
Definition: fwd.hpp:678
+
tvec3< float, highp > highp_fvec3
High Single-precision floating-point vector of 3 components.
Definition: fwd.hpp:1637
+
tvec1< i64, highp > highp_i64vec1
High precision 64 bit signed integer scalar type.
Definition: fwd.hpp:687
+
tvec4< u8, lowp > lowp_u8vec4
Low precision 8 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:956
+
tvec3< u32, lowp > lowp_u32vec3
Low precision 32 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:1111
+
detail::uint16 u16
16 bit unsigned integer type.
Definition: fwd.hpp:930
+
detail::uint32 u32
32 bit unsigned integer type.
Definition: fwd.hpp:934
+
mediump_fmat4x4 mediump_fmat4
Medium single-precision floating-point 4x4 matrix.
Definition: fwd.hpp:1856
+
tvec1< u8, mediump > mediump_u8vec1
Medium precision 8 bit unsigned integer scalar type.
Definition: fwd.hpp:961
+
highp_f32mat4x2 fmat4x2
Default single-precision floating-point 4x2 matrix.
Definition: fwd.hpp:2399
+
tvec1< f64, lowp > lowp_f64vec1
Low double-precision floating-point vector of 1 component.
Definition: fwd.hpp:1695
+
fmat2x2 fmat2
Default single-precision floating-point 2x2 matrix.
Definition: fwd.hpp:2411
+
f64mat3x3 f64mat3
Default double-precision floating-point 3x3 matrix.
Definition: fwd.hpp:2591
+
detail::int8 mediump_i8
Medium precision 8 bit signed integer type.
Definition: fwd.hpp:212
+
tvec2< u8, highp > highp_u8vec2
High precision 8 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:982
+
tvec3< u8, highp > highp_u8vec3
High precision 8 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:986
+
lowp_f64mat2x2 lowp_f64mat2
Low double-precision floating-point 1x1 matrix.
Definition: fwd.hpp:2133
+
tvec4< u64, highp > highp_u64vec4
High precision 64 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:1308
+
float32 mediump_f32
Medium 32 bit single-precision floating-point scalar.
Definition: fwd.hpp:1434
+
tvec3< f32, mediump > mediump_f32vec3
Medium single-precision floating-point vector of 3 components.
Definition: fwd.hpp:1670
+
highp_f64mat3x3 f64mat3x3
Default double-precision floating-point 3x3 matrix.
Definition: fwd.hpp:2567
+
tmat3x3< f32, lowp > lowp_f32mat3x3
Low single-precision floating-point 3x3 matrix.
Definition: fwd.hpp:1938
+
tvec3< float, lowp > lowp_vec3
3 components vector of low single-precision floating-point numbers.
Definition: type_vec.hpp:194
+
tvec1< i16, lowp > lowp_i16vec1
Low precision 16 bit signed integer scalar type.
Definition: fwd.hpp:414
+
tvec3< i8, highp > highp_i8vec3
High precision 8 bit signed integer vector of 3 components type.
Definition: fwd.hpp:377
+
detail::int16 mediump_int16_t
Medium precision 16 bit signed integer type.
Definition: fwd.hpp:200
+
detail::uint16 mediump_uint16
Medium precision 16 bit unsigned integer type.
Definition: fwd.hpp:791
+
detail::int32 highp_i32
High precision 32 bit signed integer type.
Definition: fwd.hpp:268
+
highp_i64vec2 i64vec2
Default precision 64 bit signed integer vector of 2 components type.
Definition: fwd.hpp:718
+
tvec2< float, highp > highp_vec2
2 components vector of high single-precision floating-point numbers.
Definition: type_vec.hpp:69
+
highp_i8vec2 i8vec2
Default precision 8 bit signed integer vector of 2 components type.
Definition: fwd.hpp:400
+
tmat2x3< f32, mediump > mediump_fmat2x3
Medium single-precision floating-point 2x3 matrix.
Definition: fwd.hpp:1812
+
tvec1< u16, lowp > lowp_u16vec1
Low precision 16 bit unsigned integer scalar type.
Definition: fwd.hpp:1023
+
highp_float32_t float32_t
Default 32 bit single-precision floating-point scalar.
Definition: fwd.hpp:1529
+
tmat3x4< f32, mediump > mediump_fmat3x4
Medium single-precision floating-point 3x4 matrix.
Definition: fwd.hpp:1828
+
tvec4< u16, lowp > lowp_u16vec4
Low precision 16 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:1035
+
lowp_f32mat3x3 lowp_f32mat3
Low single-precision floating-point 3x3 matrix.
Definition: fwd.hpp:1966
+
mediump_fmat3x3 mediump_fmat3
Medium single-precision floating-point 3x3 matrix.
Definition: fwd.hpp:1852
+
detail::uint8 lowp_uint8
Low precision 8 bit unsigned integer type.
Definition: fwd.hpp:735
+
highp_u8vec3 u8vec3
Default precision 8 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:1013
+
tmat4x3< f32, lowp > lowp_fmat4x3
Low single-precision floating-point 4x3 matrix.
Definition: fwd.hpp:1779
+
detail::uint32 highp_u32
Medium precision 32 bit unsigned integer type.
Definition: fwd.hpp:877
+
highp_f32mat3x3 fmat3x3
Default single-precision floating-point 3x3 matrix.
Definition: fwd.hpp:2391
+
tvec1< u64, mediump > mediump_u64vec1
Medium precision 64 bit unsigned integer scalar type.
Definition: fwd.hpp:1279
+
highp_i8vec4 i8vec4
Default precision 8 bit signed integer vector of 4 components type.
Definition: fwd.hpp:408
+
tvec3< f32, lowp > lowp_f32vec3
Low single-precision floating-point vector of 3 components.
Definition: fwd.hpp:1654
+
tvec1< i16, highp > highp_i16vec1
High precision 16 bit signed integer scalar type.
Definition: fwd.hpp:448
+
tvec2< u32, lowp > lowp_u32vec2
Low precision 32 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:1107
+
highp_float64_t f64
Default 64 bit double-precision floating-point scalar.
Definition: fwd.hpp:1541
+
tmat3x3< f32, highp > highp_f32mat3x3
High single-precision floating-point 3x3 matrix.
Definition: fwd.hpp:2052
+
tmat2x2< f32, highp > highp_fmat2x2
High single-precision floating-point 1x1 matrix.
Definition: fwd.hpp:1865
+
tvec1< float, mediump > mediump_fvec1
Medium single-precision floating-point vector of 1 component.
Definition: fwd.hpp:1596
+
tvec1< i8, mediump > mediump_i8vec1
Medium precision 8 bit signed integer scalar type.
Definition: fwd.hpp:352
+
tmat4x3< f32, highp > highp_fmat4x3
High single-precision floating-point 4x3 matrix.
Definition: fwd.hpp:1893
+
highp_u64vec4 u64vec4
Default precision 64 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:1335
+
detail::uint32 highp_uint32
Medium precision 32 bit unsigned integer type.
Definition: fwd.hpp:845
+
tmat2x4< f64, highp > highp_f64mat2x4
High double-precision floating-point 2x4 matrix.
Definition: fwd.hpp:2214
+
detail::uint64 mediump_uint64_t
Medium precision 64 bit unsigned integer type.
Definition: fwd.hpp:815
+
quat fquat
Quaternion of default single-precision floating-point numbers.
Definition: fwd.hpp:90
+
highp_f64mat2x3 f64mat2x3
Default double-precision floating-point 2x3 matrix.
Definition: fwd.hpp:2555
+
tvec1< float, lowp > lowp_vec1
Low single-precision floating-point vector of 1 component.
Definition: fwd.hpp:1547
+
float32 highp_f32
High 32 bit single-precision floating-point scalar.
Definition: fwd.hpp:1459
+
highp_u16vec3 u16vec3
Default precision 16 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:1093
+
tmat2x3< f32, lowp > lowp_fmat2x3
Low single-precision floating-point 2x3 matrix.
Definition: fwd.hpp:1755
+
detail::int32 int32
32 bit signed integer type.
Definition: type_int.hpp:226
+
tvec3< i16, mediump > mediump_i16vec3
Medium precision 16 bit signed integer vector of 3 components type.
Definition: fwd.hpp:439
+
tvec3< i64, lowp > lowp_i64vec3
Low precision 64 bit signed integer vector of 3 components type.
Definition: fwd.hpp:661
+
detail::uint8 highp_u8
Medium precision 8 bit unsigned integer type.
Definition: fwd.hpp:869
+
detail::int32 lowp_int32_t
Low precision 32 bit signed integer type.
Definition: fwd.hpp:156
+
tvec3< u16, highp > highp_u16vec3
High precision 16 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:1065
+
detail::int8 mediump_int8_t
Medium precision 8 bit signed integer type.
Definition: fwd.hpp:196
+
detail::float32 highp_float32_t
High 32 bit single-precision floating-point scalar.
Definition: fwd.hpp:1451
+
highp_i64vec1 i64vec1
Default precision 64 bit signed integer scalar type.
Definition: fwd.hpp:714
+
highp_i8vec1 i8vec1
Default precision 8 bit signed integer scalar type.
Definition: fwd.hpp:396
+
detail::uint32 highp_uint32_t
Medium precision 32 bit unsigned integer type.
Definition: fwd.hpp:861
+
highp_f32vec2 fvec2
Default single-precision floating-point vector of 2 components.
Definition: fwd.hpp:2363
+
mediump_f32mat4x4 mediump_f32mat4
Medium single-precision floating-point 4x4 matrix.
Definition: fwd.hpp:2027
+
tvec4< u32, mediump > mediump_u32vec4
Medium precision 32 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:1132
+
tvec3< f64, mediump > mediump_f64vec3
Medium double-precision floating-point vector of 3 components.
Definition: fwd.hpp:1719
+
lowp_fmat4x4 lowp_fmat4
Low single-precision floating-point 4x4 matrix.
Definition: fwd.hpp:1799
+
highp_float32_t f32
Default 32 bit single-precision floating-point scalar.
Definition: fwd.hpp:1537
+
tmat4x4< f64, highp > highp_f64mat4x4
High double-precision floating-point 4x4 matrix.
Definition: fwd.hpp:2238
+
tmat3x3< f32, mediump > mediump_fmat3x3
Medium single-precision floating-point 3x3 matrix.
Definition: fwd.hpp:1824
+
tvec2< float, mediump > mediump_fvec2
Medium Single-precision floating-point vector of 2 components.
Definition: fwd.hpp:1600
+
tvec3< float, lowp > lowp_fvec3
Low single-precision floating-point vector of 3 components.
Definition: fwd.hpp:1571
+
tvec3< float, mediump > mediump_fvec3
Medium Single-precision floating-point vector of 3 components.
Definition: fwd.hpp:1604
+
detail::int8 lowp_int8_t
Low precision 8 bit signed integer type.
Definition: fwd.hpp:148
+
highp_f32vec4 f32vec4
Default single-precision floating-point vector of 4 components.
Definition: fwd.hpp:2441
+
tvec3< f32, highp > highp_f32vec3
High single-precision floating-point vector of 3 components.
Definition: fwd.hpp:1686
+
detail::float32 lowp_float32_t
Low 32 bit single-precision floating-point scalar.
Definition: fwd.hpp:1352
+
f32mat4x4 f32mat4
Default single-precision floating-point 4x4 matrix.
Definition: fwd.hpp:2489
+
tmat3x2< f32, mediump > mediump_f32mat3x2
Medium single-precision floating-point 3x2 matrix.
Definition: fwd.hpp:1991
+
detail::int64 mediump_int64
Medium precision 64 bit signed integer type.
Definition: fwd.hpp:192
+
detail::uint64 mediump_u64
Medium precision 64 bit unsigned integer type.
Definition: fwd.hpp:831
+
highp_f32mat2x2 fmat2x2
Default single-precision floating-point 2x2 matrix.
Definition: fwd.hpp:2375
+
highp_i64vec3 i64vec3
Default precision 64 bit signed integer vector of 3 components type.
Definition: fwd.hpp:722
+
float32 lowp_f32
Low 32 bit single-precision floating-point scalar.
Definition: fwd.hpp:1360
+
tquat< f32, lowp > lowp_f32quat
Low single-precision floating-point quaternion.
Definition: fwd.hpp:2261
+
tvec4< u16, highp > highp_u16vec4
High precision 16 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:1069
+
tvec4< float, lowp > lowp_fvec4
Low single-precision floating-point vector of 4 components.
Definition: fwd.hpp:1575
+
detail::float64 mediump_float64_t
Medium 64 bit double-precision floating-point scalar.
Definition: fwd.hpp:1430
+
tmat2x2< f32, lowp > lowp_fmat2x2
Low single-precision floating-point 1x1 matrix.
Definition: fwd.hpp:1751
+
detail::int16 int16
16 bit signed integer type.
Definition: type_int.hpp:225
+
detail::uint64 lowp_uint64_t
Low precision 64 bit unsigned integer type.
Definition: fwd.hpp:764
+
highp_u32vec1 u32vec1
Default precision 32 bit unsigned integer scalar type.
Definition: fwd.hpp:1164
+
detail::int64 int64_t
64 bit signed integer type.
Definition: fwd.hpp:312
+
detail::int32 i32
32 bit signed integer type.
Definition: fwd.hpp:325
+
detail::uint32 lowp_uint32_t
Low precision 32 bit unsigned integer type.
Definition: fwd.hpp:760
+
tvec4< u64, lowp > lowp_u64vec4
Low precision 64 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:1274
+
float64 lowp_f64
Low 64 bit double-precision floating-point scalar.
Definition: fwd.hpp:1364
+
tvec4< u32, highp > highp_u32vec4
High precision 32 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:1149
+
mediump_f64mat3x3 mediump_f64mat3
Medium double-precision floating-point 3x3 matrix.
Definition: fwd.hpp:2194
+
tvec1< f32, mediump > mediump_f32vec1
Medium single-precision floating-point vector of 1 component.
Definition: fwd.hpp:1662
+
tmat2x4< f32, highp > highp_fmat2x4
High single-precision floating-point 2x4 matrix.
Definition: fwd.hpp:1873
+
highp_f32mat2x2 f32mat2x2
Default single-precision floating-point 2x2 matrix.
Definition: fwd.hpp:2445
+
tvec3< f64, lowp > lowp_f64vec3
Low double-precision floating-point vector of 3 components.
Definition: fwd.hpp:1703
+
highp_f32quat f32quat
Default single-precision floating-point quaternion.
Definition: fwd.hpp:2493
+
tvec4< float, highp > highp_vec4
4 components vector of high single-precision floating-point numbers.
Definition: type_vec.hpp:286
+
tvec2< u8, lowp > lowp_u8vec2
Low precision 8 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:948
+
detail::int16 i16
16 bit signed integer type.
Definition: fwd.hpp:321
+
tvec2< i16, mediump > mediump_i16vec2
Medium precision 16 bit signed integer vector of 2 components type.
Definition: fwd.hpp:435
+
highp_f64mat4x4 highp_f64mat4
High double-precision floating-point 4x4 matrix.
Definition: fwd.hpp:2254
+
tmat4x2< f32, highp > highp_fmat4x2
High single-precision floating-point 4x2 matrix.
Definition: fwd.hpp:1889
+
mediump_f64mat2x2 mediump_f64mat2
Medium double-precision floating-point 1x1 matrix.
Definition: fwd.hpp:2190
+
highp_u8vec4 u8vec4
Default precision 8 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:1017
+
highp_i64vec4 i64vec4
Default precision 64 bit signed integer vector of 4 components type.
Definition: fwd.hpp:726
+
detail::int64 highp_int64_t
High precision 64 bit signed integer type.
Definition: fwd.hpp:256
+
detail::uint16 highp_uint16
Medium precision 16 bit unsigned integer type.
Definition: fwd.hpp:841
+
tmat2x4< f32, lowp > lowp_fmat2x4
Low single-precision floating-point 2x4 matrix.
Definition: fwd.hpp:1759
+
f64mat2x2 f64mat2
Default double-precision floating-point 2x2 matrix.
Definition: fwd.hpp:2587
+
highp_fmat3x3 highp_fmat3
High single-precision floating-point 3x3 matrix.
Definition: fwd.hpp:1909
+
tvec2< u8, mediump > mediump_u8vec2
Medium precision 8 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:965
+
tmat4x2< f64, highp > highp_f64mat4x2
High double-precision floating-point 4x2 matrix.
Definition: fwd.hpp:2230
+
detail::int64 lowp_int64_t
Low precision 64 bit signed integer type.
Definition: fwd.hpp:160
+
tmat3x2< f32, highp > highp_f32mat3x2
High single-precision floating-point 3x2 matrix.
Definition: fwd.hpp:2048
+
detail::int16 highp_int16_t
High precision 16 bit signed integer type.
Definition: fwd.hpp:248
+
tvec3< u8, mediump > mediump_u8vec3
Medium precision 8 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:969
+
tmat2x2< f64, mediump > mediump_f64mat2x2
Medium double-precision floating-point 1x1 matrix.
Definition: fwd.hpp:2150
+
detail::int32 mediump_i32
Medium precision 32 bit signed integer type.
Definition: fwd.hpp:220
+
tvec2< i64, highp > highp_i64vec2
High precision 64 bit signed integer vector of 2 components type.
Definition: fwd.hpp:691
+
detail::uint8 highp_uint8
Medium precision 8 bit unsigned integer type.
Definition: fwd.hpp:837
+
tmat4x3< f32, mediump > mediump_f32mat4x3
Medium single-precision floating-point 4x3 matrix.
Definition: fwd.hpp:2007
+
detail::int8 highp_int8_t
High precision 8 bit signed integer type.
Definition: fwd.hpp:244
+
detail::int8 int8_t
8 bit signed integer type.
Definition: fwd.hpp:300
+
highp_u32vec3 u32vec3
Default precision 32 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:1172
+
mediump_fmat2x2 mediump_fmat2
Medium single-precision floating-point 1x1 matrix.
Definition: fwd.hpp:1848
+
tmat3x4< f64, lowp > lowp_f64mat3x4
Low double-precision floating-point 3x4 matrix.
Definition: fwd.hpp:2113
+
tmat2x2< f32, lowp > lowp_f32mat2x2
Low single-precision floating-point 1x1 matrix.
Definition: fwd.hpp:1922
+
tmat4x4< f64, mediump > mediump_f64mat4x4
Medium double-precision floating-point 4x4 matrix.
Definition: fwd.hpp:2182
+
highp_i16vec1 i16vec1
Default precision 16 bit signed integer scalar type.
Definition: fwd.hpp:476
+
detail::uint64 lowp_u64
Low precision 64 bit unsigned integer type.
Definition: fwd.hpp:781
+
Definition: _noise.hpp:39
+
tvec3< u64, mediump > mediump_u64vec3
Medium precision 64 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:1287
+
highp_f32vec1 f32vec1
Default single-precision floating-point vector of 1 components.
Definition: fwd.hpp:2429
+
tvec1< f64, highp > highp_f64vec1
High double-precision floating-point vector of 1 component.
Definition: fwd.hpp:1727
+
highp_f32mat4x3 fmat4x3
Default single-precision floating-point 4x3 matrix.
Definition: fwd.hpp:2403
+
detail::int64 mediump_i64
Medium precision 64 bit signed integer type.
Definition: fwd.hpp:224
+
tvec4< f64, lowp > lowp_f64vec4
Low double-precision floating-point vector of 4 components.
Definition: fwd.hpp:1707
+
tquat< f32, highp > highp_f32quat
High single-precision floating-point quaternion.
Definition: fwd.hpp:2277
+
tmat3x3< f64, lowp > lowp_f64mat3x3
Low double-precision floating-point 3x3 matrix.
Definition: fwd.hpp:2109
+
tmat4x2< f32, highp > highp_f32mat4x2
High single-precision floating-point 4x2 matrix.
Definition: fwd.hpp:2060
+
tmat3x2< f64, highp > highp_f64mat3x2
High double-precision floating-point 3x2 matrix.
Definition: fwd.hpp:2218
+
tvec4< float, highp > highp_fvec4
High Single-precision floating-point vector of 4 components.
Definition: fwd.hpp:1641
+
highp_f64mat4x4 f64mat4x4
Default double-precision floating-point 4x4 matrix.
Definition: fwd.hpp:2583
+
float64 highp_f64
High 64 bit double-precision floating-point scalar.
Definition: fwd.hpp:1463
+
detail::uint16 lowp_uint16_t
Low precision 16 bit unsigned integer type.
Definition: fwd.hpp:756
+
tvec2< u32, mediump > mediump_u32vec2
Medium precision 32 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:1124
+
tmat3x2< f64, lowp > lowp_f64mat3x2
Low double-precision floating-point 3x2 matrix.
Definition: fwd.hpp:2105
+
tvec3< i16, highp > highp_i16vec3
High precision 16 bit signed integer vector of 3 components type.
Definition: fwd.hpp:456
+
tmat4x3< f64, lowp > lowp_f64mat4x3
Low double-precision floating-point 4x3 matrix.
Definition: fwd.hpp:2121
+
tmat4x4< f32, mediump > mediump_f32mat4x4
Medium single-precision floating-point 4x4 matrix.
Definition: fwd.hpp:2011
+
OpenGL Mathematics (glm.g-truc.net)
+
f64mat4x4 f64mat4
Default double-precision floating-point 4x4 matrix.
Definition: fwd.hpp:2595
+
tvec3< u16, mediump > mediump_u16vec3
Medium precision 16 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:1048
+
tvec3< f64, highp > highp_f64vec3
High double-precision floating-point vector of 3 components.
Definition: fwd.hpp:1735
+
tmat4x3< f32, lowp > lowp_f32mat4x3
Low single-precision floating-point 4x3 matrix.
Definition: fwd.hpp:1950
+
tvec3< i32, mediump > mediump_i32vec3
Medium precision 32 bit signed integer vector of 3 components type.
Definition: fwd.hpp:519
+
highp_f64mat3x2 f64mat3x2
Default double-precision floating-point 3x2 matrix.
Definition: fwd.hpp:2563
+
tvec1< f64, mediump > mediump_f64vec1
Medium double-precision floating-point vector of 1 component.
Definition: fwd.hpp:1711
+
tmat4x2< f64, mediump > mediump_f64mat4x2
Medium double-precision floating-point 4x2 matrix.
Definition: fwd.hpp:2174
+
tmat2x2< f32, mediump > mediump_f32mat2x2
High single-precision floating-point 1x1 matrix.
Definition: fwd.hpp:1979
+
tmat4x4< f32, lowp > lowp_f32mat4x4
Low single-precision floating-point 4x4 matrix.
Definition: fwd.hpp:1954
+
tvec2< u16, mediump > mediump_u16vec2
Medium precision 16 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:1044
+
highp_f64mat3x4 f64mat3x4
Default double-precision floating-point 3x4 matrix.
Definition: fwd.hpp:2571
+
tvec2< u16, highp > highp_u16vec2
High precision 16 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:1061
+
detail::uint16 lowp_u16
Low precision 16 bit unsigned integer type.
Definition: fwd.hpp:773
+
fmat4x4 fmat4
Default single-precision floating-point 4x4 matrix.
Definition: fwd.hpp:2419
+
tmat2x3< f32, lowp > lowp_f32mat2x3
Low single-precision floating-point 2x3 matrix.
Definition: fwd.hpp:1926
+
highp_f32mat4x4 highp_f32mat4
High single-precision floating-point 4x4 matrix.
Definition: fwd.hpp:2084
+
tvec4< f32, mediump > mediump_f32vec4
Medium single-precision floating-point vector of 4 components.
Definition: fwd.hpp:1674
+
mediump_f32mat3x3 mediump_f32mat3
Medium single-precision floating-point 3x3 matrix.
Definition: fwd.hpp:2023
+
tvec2< u16, lowp > lowp_u16vec2
Low precision 16 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:1027
+
tvec2< i16, highp > highp_i16vec2
High precision 16 bit signed integer vector of 2 components type.
Definition: fwd.hpp:452
+
tvec3< float, mediump > mediump_vec3
3 components vector of medium single-precision floating-point numbers.
Definition: type_vec.hpp:187
+
tvec3< u64, lowp > lowp_u64vec3
Low precision 64 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:1270
+
highp_f64mat3x3 highp_f64mat3
High double-precision floating-point 3x3 matrix.
Definition: fwd.hpp:2250
+
detail::uint64 highp_uint64
Medium precision 64 bit unsigned integer type.
Definition: fwd.hpp:849
+
detail::uint16 lowp_uint16
Low precision 16 bit unsigned integer type.
Definition: fwd.hpp:739
+
tvec1< float, lowp > lowp_fvec1
Low single-precision floating-point vector of 1 component.
Definition: fwd.hpp:1563
+
detail::int8 i8
8 bit signed integer type.
Definition: fwd.hpp:317
+
tmat3x3< f32, mediump > mediump_f32mat3x3
Medium single-precision floating-point 3x3 matrix.
Definition: fwd.hpp:1995
+
tvec3< u16, lowp > lowp_u16vec3
Low precision 16 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:1031
+
tvec2< u32, highp > highp_u32vec2
High precision 32 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:1141
+
highp_f64vec3 f64vec3
Default double-precision floating-point vector of 3 components.
Definition: fwd.hpp:2543
+
tmat3x2< f64, mediump > mediump_f64mat3x2
Medium double-precision floating-point 3x2 matrix.
Definition: fwd.hpp:2162
+
tvec1< float, highp > highp_fvec1
High single-precision floating-point vector of 1 component.
Definition: fwd.hpp:1629
+
highp_u16vec4 u16vec4
Default precision 16 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:1097
+
tmat4x4< f32, lowp > lowp_fmat4x4
Low single-precision floating-point 4x4 matrix.
Definition: fwd.hpp:1783
+
highp_f32mat3x4 fmat3x4
Default single-precision floating-point 3x4 matrix.
Definition: fwd.hpp:2395
+
lowp_f32mat4x4 lowp_f32mat4
Low single-precision floating-point 4x4 matrix.
Definition: fwd.hpp:1970
+
highp_f32vec4 fvec4
Default single-precision floating-point vector of 4 components.
Definition: fwd.hpp:2371
+
lowp_f32mat2x2 lowp_f32mat2
Low single-precision floating-point 1x1 matrix.
Definition: fwd.hpp:1962
+
tvec2< u64, highp > highp_u64vec2
High precision 64 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:1300
+
tmat4x3< f32, highp > highp_f32mat4x3
High single-precision floating-point 4x3 matrix.
Definition: fwd.hpp:2064
+
detail::float32 highp_float32
High 32 bit single-precision floating-point scalar.
Definition: fwd.hpp:1443
+
detail::int32 highp_int32
High precision 32 bit signed integer type.
Definition: fwd.hpp:236
+
highp_u8vec2 u8vec2
Default precision 8 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:1009
+
detail::int32 mediump_int32
Medium precision 32 bit signed integer type.
Definition: fwd.hpp:188
+
tvec1< u64, highp > highp_u64vec1
High precision 64 bit unsigned integer scalar type.
Definition: fwd.hpp:1296
+
detail::int32 mediump_int32_t
Medium precision 32 bit signed integer type.
Definition: fwd.hpp:204
+
tvec3< i8, lowp > lowp_i8vec3
Low precision 8 bit signed integer vector of 3 components type.
Definition: fwd.hpp:343
+
detail::int32 lowp_i32
Low precision 32 bit signed integer type.
Definition: fwd.hpp:172
+
tmat3x2< f32, lowp > lowp_fmat3x2
Low single-precision floating-point 3x2 matrix.
Definition: fwd.hpp:1763
+
detail::uint8 uint8_t
8 bit unsigned integer type.
Definition: fwd.hpp:909
+
highp_i8vec3 i8vec3
Default precision 8 bit signed integer vector of 3 components type.
Definition: fwd.hpp:404
+
tmat3x4< f32, highp > highp_fmat3x4
High single-precision floating-point 3x4 matrix.
Definition: fwd.hpp:1885
+
detail::uint64 highp_uint64_t
Medium precision 64 bit unsigned integer type.
Definition: fwd.hpp:865
+
tmat2x4< f32, highp > highp_f32mat2x4
High single-precision floating-point 2x4 matrix.
Definition: fwd.hpp:2044
+
detail::uint32 lowp_uint32
Low precision 32 bit unsigned integer type.
Definition: fwd.hpp:743
+
highp_f64mat2x2 f64mat2x2
Default double-precision floating-point 2x2 matrix.
Definition: fwd.hpp:2551
+
tmat3x4< f32, lowp > lowp_f32mat3x4
Low single-precision floating-point 3x4 matrix.
Definition: fwd.hpp:1942
+
tvec1< i8, lowp > lowp_i8vec1
Low precision 8 bit signed integer scalar type.
Definition: fwd.hpp:335
+
tvec4< f64, mediump > mediump_f64vec4
Medium double-precision floating-point vector of 4 components.
Definition: fwd.hpp:1723
+
tvec2< float, mediump > mediump_vec2
2 components vector of medium single-precision floating-point numbers.
Definition: type_vec.hpp:76
+
detail::uint16 mediump_u16
Medium precision 16 bit unsigned integer type.
Definition: fwd.hpp:823
+
tmat2x3< f32, highp > highp_f32mat2x3
High single-precision floating-point 2x3 matrix.
Definition: fwd.hpp:2040
+
detail::uint16 highp_uint16_t
Medium precision 16 bit unsigned integer type.
Definition: fwd.hpp:857
+
tvec1< i32, lowp > lowp_i32vec1
Low precision 32 bit signed integer scalar type.
Definition: fwd.hpp:494
+
tmat4x2< f32, lowp > lowp_f32mat4x2
Low single-precision floating-point 4x2 matrix.
Definition: fwd.hpp:1946
+
highp_f32mat2x3 fmat2x3
Default single-precision floating-point 2x3 matrix.
Definition: fwd.hpp:2379
+
tvec4< u8, highp > highp_u8vec4
High precision 8 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:990
+
tvec4< f64, highp > highp_f64vec4
High double-precision floating-point vector of 4 components.
Definition: fwd.hpp:1739
+
tvec4< i32, mediump > mediump_i32vec4
Medium precision 32 bit signed integer vector of 4 components type.
Definition: fwd.hpp:523
+
tvec1< u8, highp > highp_u8vec1
High precision 8 bit unsigned integer scalar type.
Definition: fwd.hpp:978
+
tvec4< i8, mediump > mediump_i8vec4
Medium precision 8 bit signed integer vector of 4 components type.
Definition: fwd.hpp:364
+
highp_f32mat3x3 highp_f32mat3
High single-precision floating-point 3x3 matrix.
Definition: fwd.hpp:2080
+
tvec2< i8, lowp > lowp_i8vec2
Low precision 8 bit signed integer vector of 2 components type.
Definition: fwd.hpp:339
+
tvec3< i8, mediump > mediump_i8vec3
Medium precision 8 bit signed integer vector of 3 components type.
Definition: fwd.hpp:360
+
detail::float32 lowp_float32
Low 32 bit single-precision floating-point scalar.
Definition: fwd.hpp:1344
+
highp_f64mat4x3 f64mat4x3
Default double-precision floating-point 4x3 matrix.
Definition: fwd.hpp:2579
+
tvec2< i16, lowp > lowp_i16vec2
Low precision 16 bit signed integer vector of 2 components type.
Definition: fwd.hpp:418
+
tvec3< u64, highp > highp_u64vec3
High precision 64 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:1304
+
tvec2< float, lowp > lowp_fvec2
Low single-precision floating-point vector of 2 components.
Definition: fwd.hpp:1567
+
OpenGL Mathematics (glm.g-truc.net)
+
highp_f32mat2x4 fmat2x4
Default single-precision floating-point 2x4 matrix.
Definition: fwd.hpp:2383
+
detail::int64 int64
64 bit signed integer type.
Definition: type_int.hpp:227
+
tmat2x3< f64, mediump > mediump_f64mat2x3
Medium double-precision floating-point 2x3 matrix.
Definition: fwd.hpp:2154
+
double float64
Default 64 bit double-precision floating-point scalar.
Definition: type_float.hpp:85
+
highp_f64vec1 f64vec1
Default double-precision floating-point vector of 1 components.
Definition: fwd.hpp:2535
+
tvec4< i8, highp > highp_i8vec4
High precision 8 bit signed integer vector of 4 components type.
Definition: fwd.hpp:381
+
tvec2< f32, lowp > lowp_f32vec2
Low single-precision floating-point vector of 2 components.
Definition: fwd.hpp:1650
+
highp_i32vec2 i32vec2
Default precision 32 bit signed integer vector of 2 components type.
Definition: fwd.hpp:559
+
detail::int16 mediump_i16
Medium precision 16 bit signed integer type.
Definition: fwd.hpp:216
+
tvec1< i16, mediump > mediump_i16vec1
Medium precision 16 bit signed integer scalar type.
Definition: fwd.hpp:431
+
detail::float64 mediump_float64
Medium 64 bit double-precision floating-point scalar.
Definition: fwd.hpp:1422
+
highp_u32vec2 u32vec2
Default precision 32 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:1168
+
tmat3x3< f32, lowp > lowp_fmat3x3
Low single-precision floating-point 3x3 matrix.
Definition: fwd.hpp:1767
diff --git a/doc/api/a00038.html b/doc/api/a00038.html new file mode 100644 index 00000000..884ba6ef --- /dev/null +++ b/doc/api/a00038.html @@ -0,0 +1,73 @@ + + + + + + +0.9.6: geometric.hpp File Reference + + + + + + +
+
+ + + + + + + +
+
0.9.6 +
+
+
+ + + + + +
+
+
+
geometric.hpp File Reference
+
+
+ +

Go to the source code of this file.

+

Detailed Description

+

OpenGL Mathematics (glm.g-truc.net)

+

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+

GLM Core

+
Date
2013-12-24 / 2013-12-24
+
Author
Christophe Riccio
+ +

Definition in file geometric.hpp.

+
+ + + + diff --git a/doc/api/a00038_source.html b/doc/api/a00038_source.html index 72fa0e89..372985e3 100644 --- a/doc/api/a00038_source.html +++ b/doc/api/a00038_source.html @@ -3,8 +3,8 @@ - -GLM: func_packing.hpp Source File + +0.9.6: geometric.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,75 +41,25 @@
-
func_packing.hpp
+
geometric.hpp
-
1 
-
36 #ifndef GLM_CORE_func_packing
-
37 #define GLM_CORE_func_packing
-
38 
-
39 #include "type_vec2.hpp"
-
40 #include "type_vec4.hpp"
-
41 
-
42 namespace glm
-
43 {
-
46 
-
58  GLM_FUNC_DECL uint packUnorm2x16(vec2 const & v);
-
59 
-
71  GLM_FUNC_DECL uint packSnorm2x16(vec2 const & v);
-
72 
-
84  GLM_FUNC_DECL uint packUnorm4x8(vec4 const & v);
-
85 
-
97  GLM_FUNC_DECL uint packSnorm4x8(vec4 const & v);
-
98 
-
110  GLM_FUNC_DECL vec2 unpackUnorm2x16(uint const & p);
-
111 
-
123  GLM_FUNC_DECL vec2 unpackSnorm2x16(uint const & p);
-
124 
-
136  GLM_FUNC_DECL vec4 unpackUnorm4x8(uint const & p);
-
137 
-
149  GLM_FUNC_DECL vec4 unpackSnorm4x8(uint const & p);
-
150 
-
159  GLM_FUNC_DECL double packDouble2x32(uvec2 const & v);
-
160 
-
168  GLM_FUNC_DECL uvec2 unpackDouble2x32(double const & v);
-
169 
-
178  GLM_FUNC_DECL uint packHalf2x16(vec2 const & v);
-
179 
-
188  GLM_FUNC_DECL vec2 unpackHalf2x16(uint const & v);
-
189 
-
191 }//namespace glm
-
192 
-
193 #include "func_packing.inl"
-
194 
-
195 #endif//GLM_CORE_func_packing
-
GLM_FUNC_DECL vec4 unpackSnorm4x8(uint const &p)
First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers.
-
GLM_FUNC_DECL double packDouble2x32(uvec2 const &v)
Returns a double-precision value obtained by packing the components of v into a 64-bit value...
-
GLM_FUNC_DECL vec2 unpackHalf2x16(uint const &v)
Returns a two-component floating-point vector with components obtained by unpacking a 32-bit unsigned...
-
highp_vec4 vec4
4 components vector of floating-point numbers.
Definition: type_vec.hpp:398
-
unsigned int uint
Unsigned integer type.
Definition: type_int.hpp:171
-
GLM_FUNC_DECL uint packUnorm4x8(vec4 const &v)
First, converts each component of the normalized floating-point value v into 8- or 16-bit integer val...
-
GLM_FUNC_DECL vec4 unpackUnorm4x8(uint const &p)
First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers.
-
GLM_FUNC_DECL uint packUnorm2x16(vec2 const &v)
First, converts each component of the normalized floating-point value v into 8- or 16-bit integer val...
-
GLM_FUNC_DECL vec2 unpackUnorm2x16(uint const &p)
First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers.
-
GLM_FUNC_DECL uint packSnorm4x8(vec4 const &v)
First, converts each component of the normalized floating-point value v into 8- or 16-bit integer val...
-
GLM_FUNC_DECL vec2 unpackSnorm2x16(uint const &p)
First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers.
-
highp_uvec2 uvec2
2 components vector of unsigned integer numbers.
Definition: type_vec.hpp:472
-
GLM_FUNC_DECL uint packSnorm2x16(vec2 const &v)
First, converts each component of the normalized floating-point value v into 8- or 16-bit integer val...
-
GLM_FUNC_DECL uint packHalf2x16(vec2 const &v)
Returns an unsigned integer obtained by converting the components of a two-component floating-point v...
-
GLM_FUNC_DECL uvec2 unpackDouble2x32(double const &v)
Returns a two-component unsigned integer vector representation of v.
-
highp_vec2 vec2
2 components vector of floating-point numbers.
Definition: type_vec.hpp:388
+Go to the documentation of this file.
1 
+
33 #pragma once
+
34 
+ +
OpenGL Mathematics (glm.g-truc.net)
diff --git a/doc/api/a00039.html b/doc/api/a00039.html new file mode 100644 index 00000000..fc95111a --- /dev/null +++ b/doc/api/a00039.html @@ -0,0 +1,80 @@ + + + + + + +0.9.6: glm.hpp File Reference + + + + + + +
+
+ + + + + + + +
+
0.9.6 +
+
+
+ + + + + +
+
+
+
glm.hpp File Reference
+
+
+ +

Go to the source code of this file.

+

Detailed Description

+

OpenGL Mathematics (glm.g-truc.net)

+

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+
Date
2009-05-01 / 2011-05-16
+
Author
Christophe Riccio
+

GLM Core (Dependence)

+

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+

GLM Core

+
Date
2005-01-14 / 2011-10-24
+
Author
Christophe Riccio
+ +

Definition in file glm.hpp.

+
+ + + + diff --git a/doc/api/a00039_source.html b/doc/api/a00039_source.html index 3d4b36b4..ce744767 100644 --- a/doc/api/a00039_source.html +++ b/doc/api/a00039_source.html @@ -3,8 +3,8 @@ - -GLM: func_trigonometric.hpp Source File + +0.9.6: glm.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,94 +41,79 @@
-
func_trigonometric.hpp
+
glm.hpp
-
1 
-
40 #ifndef GLM_CORE_func_trigonometric
-
41 #define GLM_CORE_func_trigonometric
-
42 
-
43 namespace glm
-
44 {
-
47 
-
54  template <typename genType>
-
55  GLM_FUNC_DECL genType radians(genType const & degrees);
-
56 
-
63  template <typename genType>
-
64  GLM_FUNC_DECL genType degrees(genType const & radians);
-
65 
-
73  template <typename genType>
-
74  GLM_FUNC_DECL genType sin(genType const & angle);
-
75 
-
83  template <typename genType>
-
84  GLM_FUNC_DECL genType cos(genType const & angle);
-
85 
-
92  template <typename genType>
-
93  GLM_FUNC_DECL genType tan(genType const & angle);
-
94 
-
103  template <typename genType>
-
104  GLM_FUNC_DECL genType asin(genType const & x);
-
105 
-
114  template <typename genType>
-
115  GLM_FUNC_DECL genType acos(genType const & x);
-
116 
-
127  template <typename genType>
-
128  GLM_FUNC_DECL genType atan(genType const & y, genType const & x);
-
129 
-
137  template <typename genType>
-
138  GLM_FUNC_DECL genType atan(genType const & y_over_x);
-
139 
-
146  template <typename genType>
-
147  GLM_FUNC_DECL genType sinh(genType const & angle);
-
148 
-
155  template <typename genType>
-
156  GLM_FUNC_DECL genType cosh(genType const & angle);
-
157 
-
164  template <typename genType>
-
165  GLM_FUNC_DECL genType tanh(genType const & angle);
-
166 
-
173  template <typename genType>
-
174  GLM_FUNC_DECL genType asinh(genType const & x);
-
175 
-
183  template <typename genType>
-
184  GLM_FUNC_DECL genType acosh(genType const & x);
-
185 
-
193  template <typename genType>
-
194  GLM_FUNC_DECL genType atanh(genType const & x);
-
195 
-
197 }//namespace glm
-
198 
-
199 #include "func_trigonometric.inl"
-
200 
-
201 #endif//GLM_CORE_func_trigonometric
-
202 
-
203 
-
GLM_FUNC_DECL genType sinh(genType const &angle)
Returns the hyperbolic sine function, (exp(x) - exp(-x)) / 2.
-
GLM_FUNC_DECL genType cos(genType const &angle)
The standard trigonometric cosine function.
-
GLM_FUNC_DECL genType atan(genType const &y, genType const &x)
Arc tangent.
-
GLM_FUNC_DECL T angle(detail::tquat< T, P > const &x)
Returns the quaternion rotation angle.
-
GLM_FUNC_DECL genType radians(genType const &degrees)
Converts degrees to radians and returns the result.
-
GLM_FUNC_DECL genType tanh(genType const &angle)
Returns the hyperbolic tangent function, sinh(angle) / cosh(angle)
-
GLM_FUNC_DECL genType acos(genType const &x)
Arc cosine.
-
GLM_FUNC_DECL genType sin(genType const &angle)
The standard trigonometric sine function.
-
GLM_FUNC_DECL genType cosh(genType const &angle)
Returns the hyperbolic cosine function, (exp(x) + exp(-x)) / 2.
-
GLM_FUNC_DECL genType tan(genType const &angle)
The standard trigonometric tangent function.
-
GLM_FUNC_DECL genType acosh(genType const &x)
Arc hyperbolic cosine; returns the non-negative inverse of cosh.
-
GLM_FUNC_DECL genType asinh(genType const &x)
Arc hyperbolic sine; returns the inverse of sinh.
-
GLM_FUNC_DECL genType asin(genType const &x)
Arc sine.
-
GLM_FUNC_DECL genType degrees(genType const &radians)
Converts radians to degrees and returns the result.
-
GLM_FUNC_DECL genType atanh(genType const &x)
Arc hyperbolic tangent; returns the inverse of tanh.
+Go to the documentation of this file.
1 
+
81 #include "detail/_fixes.hpp"
+
82 
+
83 #pragma once
+
84 
+
85 #include <cmath>
+
86 #include <climits>
+
87 #include <cfloat>
+
88 #include <limits>
+
89 #include <cassert>
+
90 #include "fwd.hpp"
+
91 
+
92 #if(defined(GLM_MESSAGES) && !defined(GLM_MESSAGE_CORE_INCLUDED_DISPLAYED))
+
93 # define GLM_MESSAGE_CORE_INCLUDED_DISPLAYED
+
94 # pragma message("GLM: Core library included")
+
95 #endif//GLM_MESSAGE
+
96 
+
97 #include "vec2.hpp"
+
98 #include "vec3.hpp"
+
99 #include "vec4.hpp"
+
100 #include "mat2x2.hpp"
+
101 #include "mat2x3.hpp"
+
102 #include "mat2x4.hpp"
+
103 #include "mat3x2.hpp"
+
104 #include "mat3x3.hpp"
+
105 #include "mat3x4.hpp"
+
106 #include "mat4x2.hpp"
+
107 #include "mat4x3.hpp"
+
108 #include "mat4x4.hpp"
+
109 
+
110 #include "trigonometric.hpp"
+
111 #include "exponential.hpp"
+
112 #include "common.hpp"
+
113 #include "packing.hpp"
+
114 #include "geometric.hpp"
+
115 #include "matrix.hpp"
+
116 #include "vector_relational.hpp"
+
117 #include "integer.hpp"
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
diff --git a/doc/api/a00040.html b/doc/api/a00040.html new file mode 100644 index 00000000..bbc86147 --- /dev/null +++ b/doc/api/a00040.html @@ -0,0 +1,88 @@ + + + + + + +0.9.6: gradient_paint.hpp File Reference + + + + + + +
+
+ + + + + + + +
+
0.9.6 +
+
+
+ + + + + +
+
+ +
+
gradient_paint.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + +

+Functions

template<typename T , precision P>
GLM_FUNC_DECL T linearGradient (tvec2< T, P > const &Point0, tvec2< T, P > const &Point1, tvec2< T, P > const &Position)
 
template<typename T , precision P>
GLM_FUNC_DECL T radialGradient (tvec2< T, P > const &Center, T const &Radius, tvec2< T, P > const &Focal, tvec2< T, P > const &Position)
 
+

Detailed Description

+

OpenGL Mathematics (glm.g-truc.net)

+

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+

GLM_GTX_gradient_paint

+
Date
2009-03-06 / 2011-06-07
+
Author
Christophe Riccio
+
See also
GLM Core (dependence)
+
+GLM_GTX_optimum_pow (dependence)
+ +

Definition in file gradient_paint.hpp.

+
+ + + + diff --git a/doc/api/a00040_source.html b/doc/api/a00040_source.html index b22cc884..950ce2d1 100644 --- a/doc/api/a00040_source.html +++ b/doc/api/a00040_source.html @@ -3,8 +3,8 @@ - -GLM: func_vector_relational.hpp Source File + +0.9.6: gradient_paint.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,75 +41,53 @@
-
func_vector_relational.hpp
+
gradient_paint.hpp
-
1 
-
41 #ifndef GLM_CORE_func_vector_relational
-
42 #define GLM_CORE_func_vector_relational
-
43 
-
44 #include "precision.hpp"
-
45 #include "setup.hpp"
-
46 
-
47 #if !((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER <= GLM_COMPILER_VC10)) // Workaround a Visual C++ bug
-
48 
-
49 namespace glm
-
50 {
-
53 
-
60  // TODO: Mismatched
-
61  //template <typename T, precision P, template <typename, precision> class vecType>
-
62  //GLM_FUNC_DECL typename vecType<T, P>::bool_type lessThan(vecType<T, P> const & x, vecType<T, P> const & y);
-
63 
-
70  template <typename T, precision P, template <typename, precision> class vecType>
-
71  GLM_FUNC_DECL typename vecType<T, P>::bool_type lessThanEqual(vecType<T, P> const & x, vecType<T, P> const & y);
-
72 
-
79  template <typename T, precision P, template <typename, precision> class vecType>
-
80  GLM_FUNC_DECL typename vecType<T, P>::bool_type greaterThan(vecType<T, P> const & x, vecType<T, P> const & y);
-
81 
-
88  template <typename T, precision P, template <typename, precision> class vecType>
-
89  GLM_FUNC_DECL typename vecType<T, P>::bool_type greaterThanEqual(vecType<T, P> const & x, vecType<T, P> const & y);
-
90 
-
97  //TODO: conflicts with definision
-
98  //template <typename T, precision P, template <typename, precision> class vecType>
-
99  //GLM_FUNC_DECL typename vecType<T, P>::bool_type equal(vecType<T, P> const & x, vecType<T, P> const & y);
-
100 
-
107  template <typename T, precision P, template <typename, precision> class vecType>
-
108  GLM_FUNC_DECL typename vecType<T, P>::bool_type notEqual(vecType<T, P> const & x, vecType<T, P> const & y);
-
109 
-
116  template <precision P, template <typename, precision> class vecType>
-
117  GLM_FUNC_DECL bool any(vecType<bool, P> const & v);
-
118 
-
125  template <precision P, template <typename, precision> class vecType>
-
126  GLM_FUNC_DECL bool all(vecType<bool, P> const & v);
-
127 
-
135  template <precision P, template <typename, precision> class vecType>
-
136  GLM_FUNC_DECL vecType<bool, P> not_(vecType<bool, P> const & v);
-
137 
-
139 }//namespace glm
-
140 
-
141 #endif
-
142 
-
143 #include "func_vector_relational.inl"
-
144 
-
145 #endif//GLM_CORE_func_vector_relational
-
GLM_FUNC_DECL vecType< T, P >::bool_type notEqual(vecType< T, P > const &x, vecType< T, P > const &y)
Returns the component-wise comparison of result x == y.
-
GLM_FUNC_DECL bool any(vecType< bool, P > const &v)
Returns true if any component of x is true.
-
GLM_FUNC_DECL vecType< T, P >::bool_type greaterThanEqual(vecType< T, P > const &x, vecType< T, P > const &y)
Returns the component-wise comparison of result x &gt;= y.
-
GLM_FUNC_DECL vecType< bool, P > not_(vecType< bool, P > const &v)
Returns the component-wise logical complement of x.
-
GLM_FUNC_DECL vecType< T, P >::bool_type greaterThan(vecType< T, P > const &x, vecType< T, P > const &y)
Returns the component-wise comparison of result x &gt; y.
-
GLM_FUNC_DECL vecType< T, P >::bool_type lessThanEqual(vecType< T, P > const &x, vecType< T, P > const &y)
Returns the component-wise comparison result of x &lt; y.
-
GLM_FUNC_DECL bool all(vecType< bool, P > const &v)
Returns true if all components of x are true.
+Go to the documentation of this file.
1 
+
42 #pragma once
+
43 
+
44 // Dependency:
+
45 #include "../glm.hpp"
+
46 #include "../gtx/optimum_pow.hpp"
+
47 
+
48 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+
49 # pragma message("GLM: GLM_GTX_gradient_paint extension included")
+
50 #endif
+
51 
+
52 namespace glm
+
53 {
+
56 
+
59  template <typename T, precision P>
+
60  GLM_FUNC_DECL T radialGradient(
+
61  tvec2<T, P> const & Center,
+
62  T const & Radius,
+
63  tvec2<T, P> const & Focal,
+
64  tvec2<T, P> const & Position);
+
65 
+
68  template <typename T, precision P>
+
69  GLM_FUNC_DECL T linearGradient(
+
70  tvec2<T, P> const & Point0,
+
71  tvec2<T, P> const & Point1,
+
72  tvec2<T, P> const & Position);
+
73 
+
75 }// namespace glm
+
76 
+
77 #include "gradient_paint.inl"
+
GLM_FUNC_DECL T radialGradient(tvec2< T, P > const &Center, T const &Radius, tvec2< T, P > const &Focal, tvec2< T, P > const &Position)
Return a color from a radial gradient.
+
Definition: _noise.hpp:39
+
GLM_FUNC_DECL T linearGradient(tvec2< T, P > const &Point0, tvec2< T, P > const &Point1, tvec2< T, P > const &Position)
Return a color from a linear gradient.
diff --git a/doc/api/a00041.html b/doc/api/a00041.html index 9e87fa08..ecc0c29d 100644 --- a/doc/api/a00041.html +++ b/doc/api/a00041.html @@ -3,8 +3,8 @@ - -GLM: fwd.hpp File Reference + +0.9.6: handed_coordinate_space.hpp File Reference @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,1095 +41,46 @@
-Namespaces | -Typedefs
+Functions
-
fwd.hpp File Reference
+
handed_coordinate_space.hpp File Reference

Go to the source code of this file.

- - - -

-Namespaces

 glm
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + +

-Typedefs

typedef highp_dquat dquat
 
typedef highp_float32_t f32
 
typedef f32mat2x2 f32mat2
 
typedef highp_f32mat2x2 f32mat2x2
 
typedef highp_f32mat2x3 f32mat2x3
 
typedef highp_f32mat2x4 f32mat2x4
 
typedef f32mat3x3 f32mat3
 
typedef highp_f32mat3x2 f32mat3x2
 
typedef highp_f32mat3x3 f32mat3x3
 
typedef highp_f32mat3x4 f32mat3x4
 
typedef f32mat4x4 f32mat4
 
typedef highp_f32mat4x2 f32mat4x2
 
typedef highp_f32mat4x3 f32mat4x3
 
typedef highp_f32mat4x4 f32mat4x4
 
typedef highp_f32quat f32quat
 
typedef highp_f32vec1 f32vec1
 
typedef highp_f32vec2 f32vec2
 
typedef highp_f32vec3 f32vec3
 
typedef highp_f32vec4 f32vec4
 
typedef highp_float64_t f64
 
typedef f64mat2x2 f64mat2
 
typedef highp_f64mat2x2 f64mat2x2
 
typedef highp_f64mat2x3 f64mat2x3
 
typedef highp_f64mat2x4 f64mat2x4
 
typedef f64mat3x3 f64mat3
 
typedef highp_f64mat3x2 f64mat3x2
 
typedef highp_f64mat3x3 f64mat3x3
 
typedef highp_f64mat3x4 f64mat3x4
 
typedef f64mat4x4 f64mat4
 
typedef highp_f64mat4x2 f64mat4x2
 
typedef highp_f64mat4x3 f64mat4x3
 
typedef highp_f64mat4x4 f64mat4x4
 
typedef highp_f64quat f64quat
 
typedef highp_f64vec1 f64vec1
 
typedef highp_f64vec2 f64vec2
 
typedef highp_f64vec3 f64vec3
 
typedef highp_f64vec4 f64vec4
 
typedef highp_float32_t float32_t
 
typedef highp_float64_t float64_t
 
typedef fmat2x2 fmat2
 
typedef highp_f32mat2x2 fmat2x2
 
typedef highp_f32mat2x3 fmat2x3
 
typedef highp_f32mat2x4 fmat2x4
 
typedef fmat3x3 fmat3
 
typedef highp_f32mat3x2 fmat3x2
 
typedef highp_f32mat3x3 fmat3x3
 
typedef highp_f32mat3x4 fmat3x4
 
typedef fmat4x4 fmat4
 
typedef highp_f32mat4x2 fmat4x2
 
typedef highp_f32mat4x3 fmat4x3
 
typedef highp_f32mat4x4 fmat4x4
 
typedef quat fquat
 
typedef highp_f32vec1 fvec1
 
typedef highp_f32vec2 fvec2
 
typedef highp_f32vec3 fvec3
 
typedef highp_f32vec4 fvec4
 
typedef detail::tquat< double,
-highp > 
highp_dquat
 
typedef float32 highp_f32
 
typedef highp_f32mat2x2 highp_f32mat2
 
typedef detail::tmat2x2< f32,
-highp > 
highp_f32mat2x2
 
typedef detail::tmat2x3< f32,
-highp > 
highp_f32mat2x3
 
typedef detail::tmat2x4< f32,
-highp > 
highp_f32mat2x4
 
typedef highp_f32mat3x3 highp_f32mat3
 
typedef detail::tmat3x2< f32,
-highp > 
highp_f32mat3x2
 
typedef detail::tmat3x3< f32,
-highp > 
highp_f32mat3x3
 
typedef detail::tmat3x4< f32,
-highp > 
highp_f32mat3x4
 
typedef highp_f32mat4x4 highp_f32mat4
 
typedef detail::tmat4x2< f32,
-highp > 
highp_f32mat4x2
 
typedef detail::tmat4x3< f32,
-highp > 
highp_f32mat4x3
 
typedef detail::tmat4x4< f32,
-highp > 
highp_f32mat4x4
 
typedef detail::tquat< f32, highp > highp_f32quat
 
typedef detail::tvec1< f32, highp > highp_f32vec1
 
typedef detail::tvec2< f32, highp > highp_f32vec2
 
typedef detail::tvec3< f32, highp > highp_f32vec3
 
typedef detail::tvec4< f32, highp > highp_f32vec4
 
typedef float64 highp_f64
 
typedef highp_f64mat2x2 highp_f64mat2
 
typedef detail::tmat2x2< f64,
-highp > 
highp_f64mat2x2
 
typedef detail::tmat2x3< f64,
-highp > 
highp_f64mat2x3
 
typedef detail::tmat2x4< f64,
-highp > 
highp_f64mat2x4
 
typedef highp_f64mat3x3 highp_f64mat3
 
typedef detail::tmat3x2< f64,
-highp > 
highp_f64mat3x2
 
typedef detail::tmat3x3< f64,
-highp > 
highp_f64mat3x3
 
typedef detail::tmat3x4< f64,
-highp > 
highp_f64mat3x4
 
typedef highp_f64mat4x4 highp_f64mat4
 
typedef detail::tmat4x2< f64,
-highp > 
highp_f64mat4x2
 
typedef detail::tmat4x3< f64,
-highp > 
highp_f64mat4x3
 
typedef detail::tmat4x4< f64,
-highp > 
highp_f64mat4x4
 
typedef detail::tquat< f64, highp > highp_f64quat
 
typedef detail::tvec1< f64, highp > highp_f64vec1
 
typedef detail::tvec2< f64, highp > highp_f64vec2
 
typedef detail::tvec3< f64, highp > highp_f64vec3
 
typedef detail::tvec4< f64, highp > highp_f64vec4
 
typedef detail::float32 highp_float32
 
typedef detail::float32 highp_float32_t
 
typedef detail::float64 highp_float64
 
typedef detail::float64 highp_float64_t
 
typedef highp_fmat2x2 highp_fmat2
 
typedef detail::tmat2x2< f32,
-highp > 
highp_fmat2x2
 
typedef detail::tmat2x3< f32,
-highp > 
highp_fmat2x3
 
typedef detail::tmat2x4< f32,
-highp > 
highp_fmat2x4
 
typedef highp_fmat3x3 highp_fmat3
 
typedef detail::tmat3x2< f32,
-highp > 
highp_fmat3x2
 
typedef detail::tmat3x3< f32,
-highp > 
highp_fmat3x3
 
typedef detail::tmat3x4< f32,
-highp > 
highp_fmat3x4
 
typedef highp_fmat4x4 highp_fmat4
 
typedef detail::tmat4x2< f32,
-highp > 
highp_fmat4x2
 
typedef detail::tmat4x3< f32,
-highp > 
highp_fmat4x3
 
typedef detail::tmat4x4< f32,
-highp > 
highp_fmat4x4
 
typedef highp_quat highp_fquat
 
typedef detail::tvec1< float,
-highp > 
highp_fvec1
 
typedef detail::tvec2< float,
-highp > 
highp_fvec2
 
typedef detail::tvec3< float,
-highp > 
highp_fvec3
 
typedef detail::tvec4< float,
-highp > 
highp_fvec4
 
typedef detail::int16 highp_i16
 
typedef detail::tvec1< i16, highp > highp_i16vec1
 
typedef detail::tvec2< i16, highp > highp_i16vec2
 
typedef detail::tvec3< i16, highp > highp_i16vec3
 
typedef detail::tvec4< i16, highp > highp_i16vec4
 
typedef detail::int32 highp_i32
 
typedef detail::tvec1< i32, highp > highp_i32vec1
 
typedef detail::tvec2< i32, highp > highp_i32vec2
 
typedef detail::tvec3< i32, highp > highp_i32vec3
 
typedef detail::tvec4< i32, highp > highp_i32vec4
 
typedef detail::int64 highp_i64
 
typedef detail::tvec1< i64, highp > highp_i64vec1
 
typedef detail::tvec2< i64, highp > highp_i64vec2
 
typedef detail::tvec3< i64, highp > highp_i64vec3
 
typedef detail::tvec4< i64, highp > highp_i64vec4
 
typedef detail::int8 highp_i8
 
typedef detail::tvec1< i8, highp > highp_i8vec1
 
typedef detail::tvec2< i8, highp > highp_i8vec2
 
typedef detail::tvec3< i8, highp > highp_i8vec3
 
typedef detail::tvec4< i8, highp > highp_i8vec4
 
typedef detail::int16 highp_int16
 
typedef detail::int16 highp_int16_t
 
typedef detail::int32 highp_int32
 
typedef detail::int32 highp_int32_t
 
typedef detail::int64 highp_int64
 
typedef detail::int64 highp_int64_t
 
typedef detail::int8 highp_int8
 
typedef detail::int8 highp_int8_t
 
typedef detail::tquat< float,
-highp > 
highp_quat
 
typedef detail::uint16 highp_u16
 
typedef detail::tvec1< u16, highp > highp_u16vec1
 
typedef detail::tvec2< u16, highp > highp_u16vec2
 
typedef detail::tvec3< u16, highp > highp_u16vec3
 
typedef detail::tvec4< u16, highp > highp_u16vec4
 
typedef detail::uint32 highp_u32
 
typedef detail::tvec1< u32, highp > highp_u32vec1
 
typedef detail::tvec2< u32, highp > highp_u32vec2
 
typedef detail::tvec3< u32, highp > highp_u32vec3
 
typedef detail::tvec4< u32, highp > highp_u32vec4
 
typedef detail::uint64 highp_u64
 
typedef detail::tvec1< u64, highp > highp_u64vec1
 
typedef detail::tvec2< u64, highp > highp_u64vec2
 
typedef detail::tvec3< u64, highp > highp_u64vec3
 
typedef detail::tvec4< u64, highp > highp_u64vec4
 
typedef detail::uint8 highp_u8
 
typedef detail::tvec1< u8, highp > highp_u8vec1
 
typedef detail::tvec2< u8, highp > highp_u8vec2
 
typedef detail::tvec3< u8, highp > highp_u8vec3
 
typedef detail::tvec4< u8, highp > highp_u8vec4
 
typedef detail::uint16 highp_uint16
 
typedef detail::uint16 highp_uint16_t
 
typedef detail::uint32 highp_uint32
 
typedef detail::uint32 highp_uint32_t
 
typedef detail::uint64 highp_uint64
 
typedef detail::uint64 highp_uint64_t
 
typedef detail::uint8 highp_uint8
 
typedef detail::uint8 highp_uint8_t
 
typedef detail::tvec1< float,
-highp > 
highp_vec1
 
typedef detail::int16 i16
 
typedef highp_i16vec1 i16vec1
 
typedef highp_i16vec2 i16vec2
 
typedef highp_i16vec3 i16vec3
 
typedef highp_i16vec4 i16vec4
 
typedef detail::int32 i32
 
typedef highp_i32vec1 i32vec1
 
typedef highp_i32vec2 i32vec2
 
typedef highp_i32vec3 i32vec3
 
typedef highp_i32vec4 i32vec4
 
typedef detail::int64 i64
 
typedef highp_i64vec1 i64vec1
 
typedef highp_i64vec2 i64vec2
 
typedef highp_i64vec3 i64vec3
 
typedef highp_i64vec4 i64vec4
 
typedef detail::int8 i8
 
typedef highp_i8vec1 i8vec1
 
typedef highp_i8vec2 i8vec2
 
typedef highp_i8vec3 i8vec3
 
typedef highp_i8vec4 i8vec4
 
typedef detail::int16 int16_t
 
typedef detail::int32 int32_t
 
typedef detail::int64 int64_t
 
typedef detail::int8 int8_t
 
typedef detail::tquat< double,
-lowp > 
lowp_dquat
 
typedef float32 lowp_f32
 
typedef lowp_f32mat2x2 lowp_f32mat2
 
typedef detail::tmat2x2< f32,
-lowp > 
lowp_f32mat2x2
 
typedef detail::tmat2x3< f32,
-lowp > 
lowp_f32mat2x3
 
typedef detail::tmat2x4< f32,
-lowp > 
lowp_f32mat2x4
 
typedef lowp_f32mat3x3 lowp_f32mat3
 
typedef detail::tmat3x2< f32,
-lowp > 
lowp_f32mat3x2
 
typedef detail::tmat3x3< f32,
-lowp > 
lowp_f32mat3x3
 
typedef detail::tmat3x4< f32,
-lowp > 
lowp_f32mat3x4
 
typedef lowp_f32mat4x4 lowp_f32mat4
 
typedef detail::tmat4x2< f32,
-lowp > 
lowp_f32mat4x2
 
typedef detail::tmat4x3< f32,
-lowp > 
lowp_f32mat4x3
 
typedef detail::tmat4x4< f32,
-lowp > 
lowp_f32mat4x4
 
typedef detail::tquat< f32, lowp > lowp_f32quat
 
typedef detail::tvec1< f32, lowp > lowp_f32vec1
 
typedef detail::tvec2< f32, lowp > lowp_f32vec2
 
typedef detail::tvec3< f32, lowp > lowp_f32vec3
 
typedef detail::tvec4< f32, lowp > lowp_f32vec4
 
typedef float64 lowp_f64
 
typedef lowp_f64mat2x2 lowp_f64mat2
 
typedef detail::tmat2x2< f64,
-lowp > 
lowp_f64mat2x2
 
typedef detail::tmat2x3< f64,
-lowp > 
lowp_f64mat2x3
 
typedef detail::tmat2x4< f64,
-lowp > 
lowp_f64mat2x4
 
typedef lowp_f64mat3x3 lowp_f64mat3
 
typedef detail::tmat3x2< f64,
-lowp > 
lowp_f64mat3x2
 
typedef detail::tmat3x3< f64,
-lowp > 
lowp_f64mat3x3
 
typedef detail::tmat3x4< f64,
-lowp > 
lowp_f64mat3x4
 
typedef lowp_f64mat4x4 lowp_f64mat4
 
typedef detail::tmat4x2< f64,
-lowp > 
lowp_f64mat4x2
 
typedef detail::tmat4x3< f64,
-lowp > 
lowp_f64mat4x3
 
typedef detail::tmat4x4< f64,
-lowp > 
lowp_f64mat4x4
 
typedef detail::tquat< f64, lowp > lowp_f64quat
 
typedef detail::tvec1< f64, lowp > lowp_f64vec1
 
typedef detail::tvec2< f64, lowp > lowp_f64vec2
 
typedef detail::tvec3< f64, lowp > lowp_f64vec3
 
typedef detail::tvec4< f64, lowp > lowp_f64vec4
 
typedef detail::float32 lowp_float32
 
typedef detail::float32 lowp_float32_t
 
typedef detail::float64 lowp_float64
 
typedef detail::float64 lowp_float64_t
 
typedef lowp_fmat2x2 lowp_fmat2
 
typedef detail::tmat2x2< f32,
-lowp > 
lowp_fmat2x2
 
typedef detail::tmat2x3< f32,
-lowp > 
lowp_fmat2x3
 
typedef detail::tmat2x4< f32,
-lowp > 
lowp_fmat2x4
 
typedef lowp_fmat3x3 lowp_fmat3
 
typedef detail::tmat3x2< f32,
-lowp > 
lowp_fmat3x2
 
typedef detail::tmat3x3< f32,
-lowp > 
lowp_fmat3x3
 
typedef detail::tmat3x4< f32,
-lowp > 
lowp_fmat3x4
 
typedef lowp_fmat4x4 lowp_fmat4
 
typedef detail::tmat4x2< f32,
-lowp > 
lowp_fmat4x2
 
typedef detail::tmat4x3< f32,
-lowp > 
lowp_fmat4x3
 
typedef detail::tmat4x4< f32,
-lowp > 
lowp_fmat4x4
 
typedef lowp_quat lowp_fquat
 
typedef detail::tvec1< float,
-lowp > 
lowp_fvec1
 
typedef detail::tvec2< float,
-lowp > 
lowp_fvec2
 
typedef detail::tvec3< float,
-lowp > 
lowp_fvec3
 
typedef detail::tvec4< float,
-lowp > 
lowp_fvec4
 
typedef detail::int16 lowp_i16
 
typedef detail::tvec1< i16, lowp > lowp_i16vec1
 
typedef detail::tvec2< i16, lowp > lowp_i16vec2
 
typedef detail::tvec3< i16, lowp > lowp_i16vec3
 
typedef detail::tvec4< i16, lowp > lowp_i16vec4
 
typedef detail::int32 lowp_i32
 
typedef detail::tvec1< i32, lowp > lowp_i32vec1
 
typedef detail::tvec2< i32, lowp > lowp_i32vec2
 
typedef detail::tvec3< i32, lowp > lowp_i32vec3
 
typedef detail::tvec4< i32, lowp > lowp_i32vec4
 
typedef detail::int64 lowp_i64
 
typedef detail::tvec1< i64, lowp > lowp_i64vec1
 
typedef detail::tvec2< i64, lowp > lowp_i64vec2
 
typedef detail::tvec3< i64, lowp > lowp_i64vec3
 
typedef detail::tvec4< i64, lowp > lowp_i64vec4
 
typedef detail::int8 lowp_i8
 
typedef detail::tvec1< i8, lowp > lowp_i8vec1
 
typedef detail::tvec2< i8, lowp > lowp_i8vec2
 
typedef detail::tvec3< i8, lowp > lowp_i8vec3
 
typedef detail::tvec4< i8, lowp > lowp_i8vec4
 
typedef detail::int16 lowp_int16
 
typedef detail::int16 lowp_int16_t
 
typedef detail::int32 lowp_int32
 
typedef detail::int32 lowp_int32_t
 
typedef detail::int64 lowp_int64
 
typedef detail::int64 lowp_int64_t
 
typedef detail::int8 lowp_int8
 
typedef detail::int8 lowp_int8_t
 
typedef detail::tquat< float,
-lowp > 
lowp_quat
 
typedef detail::uint16 lowp_u16
 
typedef detail::tvec1< u16, lowp > lowp_u16vec1
 
typedef detail::tvec2< u16, lowp > lowp_u16vec2
 
typedef detail::tvec3< u16, lowp > lowp_u16vec3
 
typedef detail::tvec4< u16, lowp > lowp_u16vec4
 
typedef detail::uint32 lowp_u32
 
typedef detail::tvec1< u32, lowp > lowp_u32vec1
 
typedef detail::tvec2< u32, lowp > lowp_u32vec2
 
typedef detail::tvec3< u32, lowp > lowp_u32vec3
 
typedef detail::tvec4< u32, lowp > lowp_u32vec4
 
typedef detail::uint64 lowp_u64
 
typedef detail::tvec1< u64, lowp > lowp_u64vec1
 
typedef detail::tvec2< u64, lowp > lowp_u64vec2
 
typedef detail::tvec3< u64, lowp > lowp_u64vec3
 
typedef detail::tvec4< u64, lowp > lowp_u64vec4
 
typedef detail::uint8 lowp_u8
 
typedef detail::tvec1< u8, lowp > lowp_u8vec1
 
typedef detail::tvec2< u8, lowp > lowp_u8vec2
 
typedef detail::tvec3< u8, lowp > lowp_u8vec3
 
typedef detail::tvec4< u8, lowp > lowp_u8vec4
 
typedef detail::uint16 lowp_uint16
 
typedef detail::uint16 lowp_uint16_t
 
typedef detail::uint32 lowp_uint32
 
typedef detail::uint32 lowp_uint32_t
 
typedef detail::uint64 lowp_uint64
 
typedef detail::uint64 lowp_uint64_t
 
typedef detail::uint8 lowp_uint8
 
typedef detail::uint8 lowp_uint8_t
 
typedef detail::tvec1< float,
-lowp > 
lowp_vec1
 
typedef detail::tquat< double,
-mediump > 
mediump_dquat
 
typedef float32 mediump_f32
 
typedef mediump_f32mat2x2 mediump_f32mat2
 
typedef detail::tmat2x2< f32,
-mediump > 
mediump_f32mat2x2
 
typedef detail::tmat2x3< f32,
-mediump > 
mediump_f32mat2x3
 
typedef detail::tmat2x4< f32,
-mediump > 
mediump_f32mat2x4
 
typedef mediump_f32mat3x3 mediump_f32mat3
 
typedef detail::tmat3x2< f32,
-mediump > 
mediump_f32mat3x2
 
typedef detail::tmat3x3< f32,
-mediump > 
mediump_f32mat3x3
 
typedef detail::tmat3x4< f32,
-mediump > 
mediump_f32mat3x4
 
typedef mediump_f32mat4x4 mediump_f32mat4
 
typedef detail::tmat4x2< f32,
-mediump > 
mediump_f32mat4x2
 
typedef detail::tmat4x3< f32,
-mediump > 
mediump_f32mat4x3
 
typedef detail::tmat4x4< f32,
-mediump > 
mediump_f32mat4x4
 
typedef detail::tquat< f32,
-mediump > 
mediump_f32quat
 
typedef detail::tvec1< f32,
-mediump > 
mediump_f32vec1
 
typedef detail::tvec2< f32,
-mediump > 
mediump_f32vec2
 
typedef detail::tvec3< f32,
-mediump > 
mediump_f32vec3
 
typedef detail::tvec4< f32,
-mediump > 
mediump_f32vec4
 
typedef float64 mediump_f64
 
typedef mediump_f64mat2x2 mediump_f64mat2
 
typedef detail::tmat2x2< f64,
-mediump > 
mediump_f64mat2x2
 
typedef detail::tmat2x3< f64,
-mediump > 
mediump_f64mat2x3
 
typedef detail::tmat2x4< f64,
-mediump > 
mediump_f64mat2x4
 
typedef mediump_f64mat3x3 mediump_f64mat3
 
typedef detail::tmat3x2< f64,
-mediump > 
mediump_f64mat3x2
 
typedef detail::tmat3x3< f64,
-mediump > 
mediump_f64mat3x3
 
typedef detail::tmat3x4< f64,
-mediump > 
mediump_f64mat3x4
 
typedef mediump_f64mat4x4 mediump_f64mat4
 
typedef detail::tmat4x2< f64,
-mediump > 
mediump_f64mat4x2
 
typedef detail::tmat4x3< f64,
-mediump > 
mediump_f64mat4x3
 
typedef detail::tmat4x4< f64,
-mediump > 
mediump_f64mat4x4
 
typedef detail::tquat< f64,
-mediump > 
mediump_f64quat
 
typedef detail::tvec1< f64,
-mediump > 
mediump_f64vec1
 
typedef detail::tvec2< f64,
-mediump > 
mediump_f64vec2
 
typedef detail::tvec3< f64,
-mediump > 
mediump_f64vec3
 
typedef detail::tvec4< f64,
-mediump > 
mediump_f64vec4
 
typedef detail::float32 mediump_float32
 
typedef detail::float32 mediump_float32_t
 
typedef detail::float64 mediump_float64
 
typedef detail::float64 mediump_float64_t
 
typedef mediump_fmat2x2 mediump_fmat2
 
typedef detail::tmat2x2< f32,
-mediump > 
mediump_fmat2x2
 
typedef detail::tmat2x3< f32,
-mediump > 
mediump_fmat2x3
 
typedef detail::tmat2x4< f32,
-mediump > 
mediump_fmat2x4
 
typedef mediump_fmat3x3 mediump_fmat3
 
typedef detail::tmat3x2< f32,
-mediump > 
mediump_fmat3x2
 
typedef detail::tmat3x3< f32,
-mediump > 
mediump_fmat3x3
 
typedef detail::tmat3x4< f32,
-mediump > 
mediump_fmat3x4
 
typedef mediump_fmat4x4 mediump_fmat4
 
typedef detail::tmat4x2< f32,
-mediump > 
mediump_fmat4x2
 
typedef detail::tmat4x3< f32,
-mediump > 
mediump_fmat4x3
 
typedef detail::tmat4x4< f32,
-mediump > 
mediump_fmat4x4
 
typedef mediump_quat mediump_fquat
 
typedef detail::tvec1< float,
-mediump > 
mediump_fvec1
 
typedef detail::tvec2< float,
-mediump > 
mediump_fvec2
 
typedef detail::tvec3< float,
-mediump > 
mediump_fvec3
 
typedef detail::tvec4< float,
-mediump > 
mediump_fvec4
 
typedef detail::int16 mediump_i16
 
typedef detail::tvec1< i16,
-mediump > 
mediump_i16vec1
 
typedef detail::tvec2< i16,
-mediump > 
mediump_i16vec2
 
typedef detail::tvec3< i16,
-mediump > 
mediump_i16vec3
 
typedef detail::tvec4< i16,
-mediump > 
mediump_i16vec4
 
typedef detail::int32 mediump_i32
 
typedef detail::tvec1< i32,
-mediump > 
mediump_i32vec1
 
typedef detail::tvec2< i32,
-mediump > 
mediump_i32vec2
 
typedef detail::tvec3< i32,
-mediump > 
mediump_i32vec3
 
typedef detail::tvec4< i32,
-mediump > 
mediump_i32vec4
 
typedef detail::int64 mediump_i64
 
typedef detail::tvec1< i64,
-mediump > 
mediump_i64vec1
 
typedef detail::tvec2< i64,
-mediump > 
mediump_i64vec2
 
typedef detail::tvec3< i64,
-mediump > 
mediump_i64vec3
 
typedef detail::tvec4< i64,
-mediump > 
mediump_i64vec4
 
typedef detail::int8 mediump_i8
 
typedef detail::tvec1< i8,
-mediump > 
mediump_i8vec1
 
typedef detail::tvec2< i8,
-mediump > 
mediump_i8vec2
 
typedef detail::tvec3< i8,
-mediump > 
mediump_i8vec3
 
typedef detail::tvec4< i8,
-mediump > 
mediump_i8vec4
 
typedef detail::int16 mediump_int16
 
typedef detail::int16 mediump_int16_t
 
typedef detail::int32 mediump_int32
 
typedef detail::int32 mediump_int32_t
 
typedef detail::int64 mediump_int64
 
typedef detail::int64 mediump_int64_t
 
typedef detail::int8 mediump_int8
 
typedef detail::int8 mediump_int8_t
 
typedef detail::tquat< float,
-mediump > 
mediump_quat
 
typedef detail::uint16 mediump_u16
 
typedef detail::tvec1< u16,
-mediump > 
mediump_u16vec1
 
typedef detail::tvec2< u16,
-mediump > 
mediump_u16vec2
 
typedef detail::tvec3< u16,
-mediump > 
mediump_u16vec3
 
typedef detail::tvec4< u16,
-mediump > 
mediump_u16vec4
 
typedef detail::uint32 mediump_u32
 
typedef detail::tvec1< u32,
-mediump > 
mediump_u32vec1
 
typedef detail::tvec2< u32,
-mediump > 
mediump_u32vec2
 
typedef detail::tvec3< u32,
-mediump > 
mediump_u32vec3
 
typedef detail::tvec4< u32,
-mediump > 
mediump_u32vec4
 
typedef detail::uint64 mediump_u64
 
typedef detail::tvec1< u64,
-mediump > 
mediump_u64vec1
 
typedef detail::tvec2< u64,
-mediump > 
mediump_u64vec2
 
typedef detail::tvec3< u64,
-mediump > 
mediump_u64vec3
 
typedef detail::tvec4< u64,
-mediump > 
mediump_u64vec4
 
typedef detail::uint8 mediump_u8
 
typedef detail::tvec1< u8,
-mediump > 
mediump_u8vec1
 
typedef detail::tvec2< u8,
-mediump > 
mediump_u8vec2
 
typedef detail::tvec3< u8,
-mediump > 
mediump_u8vec3
 
typedef detail::tvec4< u8,
-mediump > 
mediump_u8vec4
 
typedef detail::uint16 mediump_uint16
 
typedef detail::uint16 mediump_uint16_t
 
typedef detail::uint32 mediump_uint32
 
typedef detail::uint32 mediump_uint32_t
 
typedef detail::uint64 mediump_uint64
 
typedef detail::uint64 mediump_uint64_t
 
typedef detail::uint8 mediump_uint8
 
typedef detail::uint8 mediump_uint8_t
 
typedef detail::tvec1< float,
-mediump > 
mediump_vec1
 
-typedef highp_quat quat
 
typedef detail::uint16 u16
 
typedef highp_u16vec1 u16vec1
 
typedef highp_u16vec2 u16vec2
 
typedef highp_u16vec3 u16vec3
 
typedef highp_u16vec4 u16vec4
 
typedef detail::uint32 u32
 
typedef highp_u32vec1 u32vec1
 
typedef highp_u32vec2 u32vec2
 
typedef highp_u32vec3 u32vec3
 
typedef highp_u32vec4 u32vec4
 
typedef detail::uint64 u64
 
typedef highp_u64vec1 u64vec1
 
typedef highp_u64vec2 u64vec2
 
typedef highp_u64vec3 u64vec3
 
typedef highp_u64vec4 u64vec4
 
typedef detail::uint8 u8
 
typedef highp_u8vec1 u8vec1
 
typedef highp_u8vec2 u8vec2
 
typedef highp_u8vec3 u8vec3
 
typedef highp_u8vec4 u8vec4
 
typedef detail::uint16 uint16_t
 
typedef detail::uint32 uint32_t
 
typedef detail::uint64 uint64_t
 
typedef detail::uint8 uint8_t
 

+Functions

template<typename T , precision P>
GLM_FUNC_DECL bool leftHanded (tvec3< T, P > const &tangent, tvec3< T, P > const &binormal, tvec3< T, P > const &normal)
 
template<typename T , precision P>
GLM_FUNC_DECL bool rightHanded (tvec3< T, P > const &tangent, tvec3< T, P > const &binormal, tvec3< T, P > const &normal)
 

Detailed Description

OpenGL Mathematics (glm.g-truc.net)

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM Core

-
Date
2013-03-30 / 2013-03-31
-
Author
Christophe Riccio
+

GLM_GTX_handed_coordinate_space

+
Date
2005-12-21 / 2011-06-07
+
Author
Christophe Riccio
+
See also
GLM Core (dependence)
-

Definition in file fwd.hpp.

+

Definition in file handed_coordinate_space.hpp.

diff --git a/doc/api/a00041_source.html b/doc/api/a00041_source.html index cfc889b2..888d4b0d 100644 --- a/doc/api/a00041_source.html +++ b/doc/api/a00041_source.html @@ -3,8 +3,8 @@ - -GLM: fwd.hpp Source File + +0.9.6: handed_coordinate_space.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,1951 +41,51 @@
-
fwd.hpp
+
handed_coordinate_space.hpp
Go to the documentation of this file.
1 
-
29 #ifndef GLM_FWD_INCLUDED
-
30 #define GLM_FWD_INCLUDED
-
31 
-
32 #include "detail/type_int.hpp"
-
33 #include "detail/type_float.hpp"
-
34 #include "detail/type_vec.hpp"
-
35 #include "detail/type_mat.hpp"
-
36 
-
38 // GLM_GTC_quaternion
-
39 namespace glm{
-
40 namespace detail
-
41 {
-
42  template <typename T, precision P> struct tquat;
-
43 }//namespace detail
-
44 
-
45 
-
49  typedef detail::tquat<float, lowp> lowp_quat;
-
50 
-
54  typedef detail::tquat<float, mediump> mediump_quat;
-
55 
-
59  typedef detail::tquat<float, highp> highp_quat;
-
60 
-
61 #if(defined(GLM_PRECISION_HIGHP_FLOAT) && !defined(GLM_PRECISION_MEDIUMP_FLOAT) && !defined(GLM_PRECISION_LOWP_FLOAT))
-
62  typedef highp_quat quat;
-
63 #elif(!defined(GLM_PRECISION_HIGHP_FLOAT) && defined(GLM_PRECISION_MEDIUMP_FLOAT) && !defined(GLM_PRECISION_LOWP_FLOAT))
-
64  typedef mediump_quat quat;
-
65 #elif(!defined(GLM_PRECISION_HIGHP_FLOAT) && !defined(GLM_PRECISION_MEDIUMP_FLOAT) && defined(GLM_PRECISION_LOWP_FLOAT))
-
66  typedef lowp_quat quat;
-
67 #elif(!defined(GLM_PRECISION_HIGHP_FLOAT) && !defined(GLM_PRECISION_MEDIUMP_FLOAT) && !defined(GLM_PRECISION_LOWP_FLOAT))
-
68  typedef highp_quat quat;
-
70 #endif
-
71 
- -
76 
- -
81 
- -
86 
-
90  typedef quat fquat;
-
91 
-
92 
-
96  typedef detail::tquat<double, lowp> lowp_dquat;
-
97 
-
101  typedef detail::tquat<double, mediump> mediump_dquat;
-
102 
-
106  typedef detail::tquat<double, highp> highp_dquat;
-
107 
-
108 #if(defined(GLM_PRECISION_HIGHP_DOUBLE) && !defined(GLM_PRECISION_MEDIUMP_DOUBLE) && !defined(GLM_PRECISION_LOWP_DOUBLE))
-
109  typedef highp_dquat dquat;
-
110 #elif(!defined(GLM_PRECISION_HIGHP_DOUBLE) && defined(GLM_PRECISION_MEDIUMP_DOUBLE) && !defined(GLM_PRECISION_LOWP_DOUBLE))
-
111  typedef mediump_dquat dquat;
-
112 #elif(!defined(GLM_PRECISION_HIGHP_DOUBLE) && !defined(GLM_PRECISION_MEDIUMP_DOUBLE) && defined(GLM_PRECISION_LOWP_DOUBLE))
-
113  typedef lowp_dquat dquat;
-
114 #elif(!defined(GLM_PRECISION_HIGHP_DOUBLE) && !defined(GLM_PRECISION_MEDIUMP_DOUBLE) && !defined(GLM_PRECISION_LOWP_DOUBLE))
-
115  typedef highp_dquat dquat;
-
119 #endif
-
120 
-
121 }//namespace glm
-
122 
-
124 // GLM_GTC_precision
-
125 namespace glm
-
126 {
-
129 
-
132  typedef detail::int8 lowp_int8;
-
133 
-
136  typedef detail::int16 lowp_int16;
-
137 
-
140  typedef detail::int32 lowp_int32;
-
141 
-
144  typedef detail::int64 lowp_int64;
-
145 
-
148  typedef detail::int8 lowp_int8_t;
-
149 
-
152  typedef detail::int16 lowp_int16_t;
-
153 
-
156  typedef detail::int32 lowp_int32_t;
-
157 
-
160  typedef detail::int64 lowp_int64_t;
-
161 
-
164  typedef detail::int8 lowp_i8;
-
165 
-
168  typedef detail::int16 lowp_i16;
-
169 
-
172  typedef detail::int32 lowp_i32;
-
173 
-
176  typedef detail::int64 lowp_i64;
-
177 
-
180  typedef detail::int8 mediump_int8;
-
181 
-
184  typedef detail::int16 mediump_int16;
-
185 
-
188  typedef detail::int32 mediump_int32;
-
189 
-
192  typedef detail::int64 mediump_int64;
-
193 
-
196  typedef detail::int8 mediump_int8_t;
-
197 
-
200  typedef detail::int16 mediump_int16_t;
-
201 
-
204  typedef detail::int32 mediump_int32_t;
-
205 
-
208  typedef detail::int64 mediump_int64_t;
-
209 
-
212  typedef detail::int8 mediump_i8;
-
213 
-
216  typedef detail::int16 mediump_i16;
-
217 
-
220  typedef detail::int32 mediump_i32;
-
221 
-
224  typedef detail::int64 mediump_i64;
-
225 
-
228  typedef detail::int8 highp_int8;
-
229 
-
232  typedef detail::int16 highp_int16;
-
233 
-
236  typedef detail::int32 highp_int32;
-
237 
-
240  typedef detail::int64 highp_int64;
-
241 
-
244  typedef detail::int8 highp_int8_t;
-
245 
-
248  typedef detail::int16 highp_int16_t;
-
249 
-
252  typedef detail::int32 highp_int32_t;
-
253 
-
256  typedef detail::int64 highp_int64_t;
-
257 
-
260  typedef detail::int8 highp_i8;
-
261 
-
264  typedef detail::int16 highp_i16;
-
265 
-
268  typedef detail::int32 highp_i32;
-
269 
-
272  typedef detail::int64 highp_i64;
-
273 
-
274 
-
277  typedef detail::int8 int8;
-
278 
-
281  typedef detail::int16 int16;
-
282 
-
285  typedef detail::int32 int32;
-
286 
-
289  typedef detail::int64 int64;
-
290 
-
293  typedef detail::int8 int8_t;
-
294 
-
297  typedef detail::int16 int16_t;
-
298 
-
301  typedef detail::int32 int32_t;
-
302 
-
305  typedef detail::int64 int64_t;
-
306 
-
309  typedef detail::int8 i8;
-
310 
-
313  typedef detail::int16 i16;
-
314 
-
317  typedef detail::int32 i32;
-
318 
-
321  typedef detail::int64 i64;
-
322 
-
323 
-
324 
-
327  typedef detail::tvec1<i8, lowp> lowp_i8vec1;
-
328 
-
331  typedef detail::tvec2<i8, lowp> lowp_i8vec2;
-
332 
-
335  typedef detail::tvec3<i8, lowp> lowp_i8vec3;
-
336 
-
339  typedef detail::tvec4<i8, lowp> lowp_i8vec4;
-
340 
-
341 
-
344  typedef detail::tvec1<i8, mediump> mediump_i8vec1;
-
345 
-
348  typedef detail::tvec2<i8, mediump> mediump_i8vec2;
-
349 
-
352  typedef detail::tvec3<i8, mediump> mediump_i8vec3;
-
353 
-
356  typedef detail::tvec4<i8, mediump> mediump_i8vec4;
-
357 
-
358 
-
361  typedef detail::tvec1<i8, highp> highp_i8vec1;
-
362 
-
365  typedef detail::tvec2<i8, highp> highp_i8vec2;
-
366 
-
369  typedef detail::tvec3<i8, highp> highp_i8vec3;
-
370 
-
373  typedef detail::tvec4<i8, highp> highp_i8vec4;
-
374 
-
375 #if(defined(GLM_PRECISION_LOWP_INT))
-
376  typedef lowp_i8vec1 i8vec1;
-
377  typedef lowp_i8vec2 i8vec2;
-
378  typedef lowp_i8vec3 i8vec3;
-
379  typedef lowp_i8vec4 i8vec4;
-
380 #elif(defined(GLM_PRECISION_MEDIUMP_INT))
-
381  typedef mediump_i8vec1 i8vec1;
-
382  typedef mediump_i8vec2 i8vec2;
-
383  typedef mediump_i8vec3 i8vec3;
-
384  typedef mediump_i8vec4 i8vec4;
-
385 #else
-
386  typedef highp_i8vec1 i8vec1;
-
389 
- -
393 
- -
397 
- -
401 #endif
-
402 
-
403 
-
406  typedef detail::tvec1<i16, lowp> lowp_i16vec1;
-
407 
-
410  typedef detail::tvec2<i16, lowp> lowp_i16vec2;
-
411 
-
414  typedef detail::tvec3<i16, lowp> lowp_i16vec3;
-
415 
-
418  typedef detail::tvec4<i16, lowp> lowp_i16vec4;
-
419 
-
420 
-
423  typedef detail::tvec1<i16, mediump> mediump_i16vec1;
-
424 
-
427  typedef detail::tvec2<i16, mediump> mediump_i16vec2;
-
428 
-
431  typedef detail::tvec3<i16, mediump> mediump_i16vec3;
-
432 
-
435  typedef detail::tvec4<i16, mediump> mediump_i16vec4;
-
436 
-
437 
-
440  typedef detail::tvec1<i16, highp> highp_i16vec1;
-
441 
-
444  typedef detail::tvec2<i16, highp> highp_i16vec2;
-
445 
-
448  typedef detail::tvec3<i16, highp> highp_i16vec3;
-
449 
-
452  typedef detail::tvec4<i16, highp> highp_i16vec4;
-
453 
-
454 
-
455 #if(defined(GLM_PRECISION_LOWP_INT))
-
456  typedef lowp_i16vec1 i16vec1;
-
457  typedef lowp_i16vec2 i16vec2;
-
458  typedef lowp_i16vec3 i16vec3;
-
459  typedef lowp_i16vec4 i16vec4;
-
460 #elif(defined(GLM_PRECISION_MEDIUMP_INT))
-
461  typedef mediump_i16vec1 i16vec1;
-
462  typedef mediump_i16vec2 i16vec2;
-
463  typedef mediump_i16vec3 i16vec3;
-
464  typedef mediump_i16vec4 i16vec4;
-
465 #else
-
466  typedef highp_i16vec1 i16vec1;
-
469 
- -
473 
- -
477 
- -
481 #endif
-
482 
-
483 
-
486  typedef detail::tvec1<i32, lowp> lowp_i32vec1;
-
487 
-
490  typedef detail::tvec2<i32, lowp> lowp_i32vec2;
-
491 
-
494  typedef detail::tvec3<i32, lowp> lowp_i32vec3;
-
495 
-
498  typedef detail::tvec4<i32, lowp> lowp_i32vec4;
-
499 
-
500 
-
503  typedef detail::tvec1<i32, mediump> mediump_i32vec1;
-
504 
-
507  typedef detail::tvec2<i32, mediump> mediump_i32vec2;
-
508 
-
511  typedef detail::tvec3<i32, mediump> mediump_i32vec3;
-
512 
-
515  typedef detail::tvec4<i32, mediump> mediump_i32vec4;
-
516 
-
517 
-
520  typedef detail::tvec1<i32, highp> highp_i32vec1;
-
521 
-
524  typedef detail::tvec2<i32, highp> highp_i32vec2;
-
525 
-
528  typedef detail::tvec3<i32, highp> highp_i32vec3;
-
529 
-
532  typedef detail::tvec4<i32, highp> highp_i32vec4;
-
533 
-
534 #if(defined(GLM_PRECISION_LOWP_INT))
-
535  typedef lowp_i32vec1 i32vec1;
-
536  typedef lowp_i32vec2 i32vec2;
-
537  typedef lowp_i32vec3 i32vec3;
-
538  typedef lowp_i32vec4 i32vec4;
-
539 #elif(defined(GLM_PRECISION_MEDIUMP_INT))
-
540  typedef mediump_i32vec1 i32vec1;
-
541  typedef mediump_i32vec2 i32vec2;
-
542  typedef mediump_i32vec3 i32vec3;
-
543  typedef mediump_i32vec4 i32vec4;
-
544 #else
-
545  typedef highp_i32vec1 i32vec1;
-
548 
- -
552 
- -
556 
- -
560 #endif
-
561 
-
562 
-
565  typedef detail::tvec1<i32, lowp> lowp_i32vec1;
-
566 
-
569  typedef detail::tvec2<i32, lowp> lowp_i32vec2;
-
570 
-
573  typedef detail::tvec3<i32, lowp> lowp_i32vec3;
-
574 
-
577  typedef detail::tvec4<i32, lowp> lowp_i32vec4;
-
578 
-
579 
-
582  typedef detail::tvec1<i32, mediump> mediump_i32vec1;
-
583 
-
586  typedef detail::tvec2<i32, mediump> mediump_i32vec2;
-
587 
-
590  typedef detail::tvec3<i32, mediump> mediump_i32vec3;
-
591 
-
594  typedef detail::tvec4<i32, mediump> mediump_i32vec4;
-
595 
-
596 
-
599  typedef detail::tvec1<i32, highp> highp_i32vec1;
-
600 
-
603  typedef detail::tvec2<i32, highp> highp_i32vec2;
-
604 
-
607  typedef detail::tvec3<i32, highp> highp_i32vec3;
-
608 
-
611  typedef detail::tvec4<i32, highp> highp_i32vec4;
-
612 
-
613 #if(defined(GLM_PRECISION_LOWP_INT))
-
614  typedef lowp_i32vec1 i32vec1;
-
615  typedef lowp_i32vec2 i32vec2;
-
616  typedef lowp_i32vec3 i32vec3;
-
617  typedef lowp_i32vec4 i32vec4;
-
618 #elif(defined(GLM_PRECISION_MEDIUMP_INT))
-
619  typedef mediump_i32vec1 i32vec1;
-
620  typedef mediump_i32vec2 i32vec2;
-
621  typedef mediump_i32vec3 i32vec3;
-
622  typedef mediump_i32vec4 i32vec4;
-
623 #else
-
624  typedef highp_i32vec1 i32vec1;
-
627 
-
630  typedef highp_i32vec2 i32vec2;
-
631 
-
634  typedef highp_i32vec3 i32vec3;
-
635 
-
638  typedef highp_i32vec4 i32vec4;
-
639 #endif
-
640 
-
641 
-
642 
-
645  typedef detail::tvec1<i64, lowp> lowp_i64vec1;
-
646 
-
649  typedef detail::tvec2<i64, lowp> lowp_i64vec2;
-
650 
-
653  typedef detail::tvec3<i64, lowp> lowp_i64vec3;
-
654 
-
657  typedef detail::tvec4<i64, lowp> lowp_i64vec4;
-
658 
-
659 
-
662  typedef detail::tvec1<i64, mediump> mediump_i64vec1;
-
663 
-
666  typedef detail::tvec2<i64, mediump> mediump_i64vec2;
-
667 
-
670  typedef detail::tvec3<i64, mediump> mediump_i64vec3;
-
671 
-
674  typedef detail::tvec4<i64, mediump> mediump_i64vec4;
-
675 
-
676 
-
679  typedef detail::tvec1<i64, highp> highp_i64vec1;
-
680 
-
683  typedef detail::tvec2<i64, highp> highp_i64vec2;
-
684 
-
687  typedef detail::tvec3<i64, highp> highp_i64vec3;
-
688 
-
691  typedef detail::tvec4<i64, highp> highp_i64vec4;
-
692 
-
693 #if(defined(GLM_PRECISION_LOWP_INT))
-
694  typedef lowp_i64vec1 i64vec1;
-
695  typedef lowp_i64vec2 i64vec2;
-
696  typedef lowp_i64vec3 i64vec3;
-
697  typedef lowp_i64vec4 i64vec4;
-
698 #elif(defined(GLM_PRECISION_MEDIUMP_INT))
-
699  typedef mediump_i64vec1 i64vec1;
-
700  typedef mediump_i64vec2 i64vec2;
-
701  typedef mediump_i64vec3 i64vec3;
-
702  typedef mediump_i64vec4 i64vec4;
-
703 #else
-
704  typedef highp_i64vec1 i64vec1;
-
707 
- -
711 
- -
715 
- -
719 #endif
-
720 
-
721 
-
723  // Unsigned int vector types
-
724 
-
727  typedef detail::uint8 lowp_uint8;
-
728 
-
731  typedef detail::uint16 lowp_uint16;
-
732 
-
735  typedef detail::uint32 lowp_uint32;
-
736 
-
739  typedef detail::uint64 lowp_uint64;
-
740 
-
741 
-
744  typedef detail::uint8 lowp_uint8_t;
-
745 
-
748  typedef detail::uint16 lowp_uint16_t;
-
749 
-
752  typedef detail::uint32 lowp_uint32_t;
-
753 
-
756  typedef detail::uint64 lowp_uint64_t;
-
757 
-
758 
-
761  typedef detail::uint8 lowp_u8;
-
762 
-
765  typedef detail::uint16 lowp_u16;
-
766 
-
769  typedef detail::uint32 lowp_u32;
-
770 
-
773  typedef detail::uint64 lowp_u64;
-
774 
-
775 
-
776 
-
779  typedef detail::uint8 mediump_uint8;
-
780 
-
783  typedef detail::uint16 mediump_uint16;
-
784 
-
787  typedef detail::uint32 mediump_uint32;
-
788 
-
791  typedef detail::uint64 mediump_uint64;
-
792 
-
795  typedef detail::uint8 mediump_uint8_t;
-
796 
-
799  typedef detail::uint16 mediump_uint16_t;
-
800 
-
803  typedef detail::uint32 mediump_uint32_t;
-
804 
-
807  typedef detail::uint64 mediump_uint64_t;
-
808 
-
811  typedef detail::uint8 mediump_u8;
-
812 
-
815  typedef detail::uint16 mediump_u16;
-
816 
-
819  typedef detail::uint32 mediump_u32;
-
820 
-
823  typedef detail::uint64 mediump_u64;
-
824 
-
825 
-
826 
-
829  typedef detail::uint8 highp_uint8;
-
830 
-
833  typedef detail::uint16 highp_uint16;
-
834 
-
837  typedef detail::uint32 highp_uint32;
-
838 
-
841  typedef detail::uint64 highp_uint64;
-
842 
-
845  typedef detail::uint8 highp_uint8_t;
-
846 
-
849  typedef detail::uint16 highp_uint16_t;
-
850 
-
853  typedef detail::uint32 highp_uint32_t;
-
854 
-
857  typedef detail::uint64 highp_uint64_t;
-
858 
-
861  typedef detail::uint8 highp_u8;
-
862 
-
865  typedef detail::uint16 highp_u16;
-
866 
-
869  typedef detail::uint32 highp_u32;
-
870 
-
873  typedef detail::uint64 highp_u64;
-
874 
-
875 
-
876 
-
879  typedef detail::uint8 uint8;
-
880 
-
883  typedef detail::uint16 uint16;
-
884 
-
887  typedef detail::uint32 uint32;
-
888 
-
891  typedef detail::uint64 uint64;
-
892 
-
895  typedef detail::uint8 uint8_t;
-
896 
-
899  typedef detail::uint16 uint16_t;
-
900 
-
903  typedef detail::uint32 uint32_t;
-
904 
-
907  typedef detail::uint64 uint64_t;
-
908 
-
911  typedef detail::uint8 u8;
-
912 
-
915  typedef detail::uint16 u16;
-
916 
-
919  typedef detail::uint32 u32;
-
920 
-
923  typedef detail::uint64 u64;
-
924 
-
925 
-
926 
-
927 
-
930  typedef detail::tvec1<u8, lowp> lowp_u8vec1;
-
931 
-
934  typedef detail::tvec2<u8, lowp> lowp_u8vec2;
-
935 
-
938  typedef detail::tvec3<u8, lowp> lowp_u8vec3;
-
939 
-
942  typedef detail::tvec4<u8, lowp> lowp_u8vec4;
-
943 
-
944 
-
947  typedef detail::tvec1<u8, mediump> mediump_u8vec1;
-
948 
-
951  typedef detail::tvec2<u8, mediump> mediump_u8vec2;
-
952 
-
955  typedef detail::tvec3<u8, mediump> mediump_u8vec3;
-
956 
-
959  typedef detail::tvec4<u8, mediump> mediump_u8vec4;
-
960 
-
961 
-
964  typedef detail::tvec1<u8, highp> highp_u8vec1;
-
965 
-
968  typedef detail::tvec2<u8, highp> highp_u8vec2;
-
969 
-
972  typedef detail::tvec3<u8, highp> highp_u8vec3;
-
973 
-
976  typedef detail::tvec4<u8, highp> highp_u8vec4;
-
977 
-
978 #if(defined(GLM_PRECISION_LOWP_INT))
-
979  typedef lowp_u8vec1 u8vec1;
-
980  typedef lowp_u8vec2 u8vec2;
-
981  typedef lowp_u8vec3 u8vec3;
-
982  typedef lowp_u8vec4 u8vec4;
-
983 #elif(defined(GLM_PRECISION_MEDIUMP_INT))
-
984  typedef mediump_u8vec1 u8vec1;
-
985  typedef mediump_u8vec2 u8vec2;
-
986  typedef mediump_u8vec3 u8vec3;
-
987  typedef mediump_u8vec4 u8vec4;
-
988 #else
-
989  typedef highp_u8vec1 u8vec1;
-
992 
- -
996 
- -
1000 
- -
1004 #endif
-
1005 
-
1006 
-
1009  typedef detail::tvec1<u16, lowp> lowp_u16vec1;
-
1010 
-
1013  typedef detail::tvec2<u16, lowp> lowp_u16vec2;
-
1014 
-
1017  typedef detail::tvec3<u16, lowp> lowp_u16vec3;
-
1018 
-
1021  typedef detail::tvec4<u16, lowp> lowp_u16vec4;
-
1022 
-
1023 
-
1026  typedef detail::tvec1<u16, mediump> mediump_u16vec1;
-
1027 
-
1030  typedef detail::tvec2<u16, mediump> mediump_u16vec2;
-
1031 
-
1034  typedef detail::tvec3<u16, mediump> mediump_u16vec3;
-
1035 
-
1038  typedef detail::tvec4<u16, mediump> mediump_u16vec4;
-
1039 
-
1040 
-
1043  typedef detail::tvec1<u16, highp> highp_u16vec1;
-
1044 
-
1047  typedef detail::tvec2<u16, highp> highp_u16vec2;
-
1048 
-
1051  typedef detail::tvec3<u16, highp> highp_u16vec3;
-
1052 
-
1055  typedef detail::tvec4<u16, highp> highp_u16vec4;
-
1056 
-
1057 
-
1058 #if(defined(GLM_PRECISION_LOWP_INT))
-
1059  typedef lowp_u16vec1 u16vec1;
-
1060  typedef lowp_u16vec2 u16vec2;
-
1061  typedef lowp_u16vec3 u16vec3;
-
1062  typedef lowp_u16vec4 u16vec4;
-
1063 #elif(defined(GLM_PRECISION_MEDIUMP_INT))
-
1064  typedef mediump_u16vec1 u16vec1;
-
1065  typedef mediump_u16vec2 u16vec2;
-
1066  typedef mediump_u16vec3 u16vec3;
-
1067  typedef mediump_u16vec4 u16vec4;
-
1068 #else
-
1069  typedef highp_u16vec1 u16vec1;
-
1072 
- -
1076 
- -
1080 
- -
1084 #endif
-
1085 
-
1086 
-
1089  typedef detail::tvec1<u32, lowp> lowp_u32vec1;
-
1090 
-
1093  typedef detail::tvec2<u32, lowp> lowp_u32vec2;
-
1094 
-
1097  typedef detail::tvec3<u32, lowp> lowp_u32vec3;
-
1098 
-
1101  typedef detail::tvec4<u32, lowp> lowp_u32vec4;
-
1102 
-
1103 
-
1106  typedef detail::tvec1<u32, mediump> mediump_u32vec1;
-
1107 
-
1110  typedef detail::tvec2<u32, mediump> mediump_u32vec2;
-
1111 
-
1114  typedef detail::tvec3<u32, mediump> mediump_u32vec3;
-
1115 
-
1118  typedef detail::tvec4<u32, mediump> mediump_u32vec4;
-
1119 
-
1120 
-
1123  typedef detail::tvec1<u32, highp> highp_u32vec1;
-
1124 
-
1127  typedef detail::tvec2<u32, highp> highp_u32vec2;
-
1128 
-
1131  typedef detail::tvec3<u32, highp> highp_u32vec3;
-
1132 
-
1135  typedef detail::tvec4<u32, highp> highp_u32vec4;
-
1136 
-
1137 #if(defined(GLM_PRECISION_LOWP_INT))
-
1138  typedef lowp_u32vec1 u32vec1;
-
1139  typedef lowp_u32vec2 u32vec2;
-
1140  typedef lowp_u32vec3 u32vec3;
-
1141  typedef lowp_u32vec4 u32vec4;
-
1142 #elif(defined(GLM_PRECISION_MEDIUMP_INT))
-
1143  typedef mediump_u32vec1 u32vec1;
-
1144  typedef mediump_u32vec2 u32vec2;
-
1145  typedef mediump_u32vec3 u32vec3;
-
1146  typedef mediump_u32vec4 u32vec4;
-
1147 #else
-
1148  typedef highp_u32vec1 u32vec1;
-
1151 
- -
1155 
- -
1159 
- -
1163 #endif
-
1164 
-
1165 
-
1168  typedef detail::tvec1<u32, lowp> lowp_u32vec1;
-
1169 
-
1172  typedef detail::tvec2<u32, lowp> lowp_u32vec2;
-
1173 
-
1176  typedef detail::tvec3<u32, lowp> lowp_u32vec3;
-
1177 
-
1180  typedef detail::tvec4<u32, lowp> lowp_u32vec4;
-
1181 
-
1182 
-
1185  typedef detail::tvec1<u32, mediump> mediump_u32vec1;
-
1186 
-
1189  typedef detail::tvec2<u32, mediump> mediump_u32vec2;
-
1190 
-
1193  typedef detail::tvec3<u32, mediump> mediump_u32vec3;
-
1194 
-
1197  typedef detail::tvec4<u32, mediump> mediump_u32vec4;
-
1198 
-
1199 
-
1202  typedef detail::tvec1<u32, highp> highp_u32vec1;
-
1203 
-
1206  typedef detail::tvec2<u32, highp> highp_u32vec2;
-
1207 
-
1210  typedef detail::tvec3<u32, highp> highp_u32vec3;
-
1211 
-
1214  typedef detail::tvec4<u32, highp> highp_u32vec4;
-
1215 
-
1216 #if(defined(GLM_PRECISION_LOWP_INT))
-
1217  typedef lowp_u32vec1 u32vec1;
-
1218  typedef lowp_u32vec2 u32vec2;
-
1219  typedef lowp_u32vec3 u32vec3;
-
1220  typedef lowp_u32vec4 u32vec4;
-
1221 #elif(defined(GLM_PRECISION_MEDIUMP_INT))
-
1222  typedef mediump_u32vec1 u32vec1;
-
1223  typedef mediump_u32vec2 u32vec2;
-
1224  typedef mediump_u32vec3 u32vec3;
-
1225  typedef mediump_u32vec4 u32vec4;
-
1226 #else
-
1227  typedef highp_u32vec1 u32vec1;
-
1230 
-
1233  typedef highp_u32vec2 u32vec2;
-
1234 
-
1237  typedef highp_u32vec3 u32vec3;
-
1238 
-
1241  typedef highp_u32vec4 u32vec4;
-
1242 #endif
-
1243 
-
1244 
-
1245 
-
1248  typedef detail::tvec1<u64, lowp> lowp_u64vec1;
-
1249 
-
1252  typedef detail::tvec2<u64, lowp> lowp_u64vec2;
-
1253 
-
1256  typedef detail::tvec3<u64, lowp> lowp_u64vec3;
-
1257 
-
1260  typedef detail::tvec4<u64, lowp> lowp_u64vec4;
-
1261 
-
1262 
-
1265  typedef detail::tvec1<u64, mediump> mediump_u64vec1;
-
1266 
-
1269  typedef detail::tvec2<u64, mediump> mediump_u64vec2;
-
1270 
-
1273  typedef detail::tvec3<u64, mediump> mediump_u64vec3;
-
1274 
-
1277  typedef detail::tvec4<u64, mediump> mediump_u64vec4;
-
1278 
-
1279 
-
1282  typedef detail::tvec1<u64, highp> highp_u64vec1;
-
1283 
-
1286  typedef detail::tvec2<u64, highp> highp_u64vec2;
-
1287 
-
1290  typedef detail::tvec3<u64, highp> highp_u64vec3;
-
1291 
-
1294  typedef detail::tvec4<u64, highp> highp_u64vec4;
-
1295 
-
1296 #if(defined(GLM_PRECISION_LOWP_UINT))
-
1297  typedef lowp_u64vec1 u64vec1;
-
1298  typedef lowp_u64vec2 u64vec2;
-
1299  typedef lowp_u64vec3 u64vec3;
-
1300  typedef lowp_u64vec4 u64vec4;
-
1301 #elif(defined(GLM_PRECISION_MEDIUMP_UINT))
-
1302  typedef mediump_u64vec1 u64vec1;
-
1303  typedef mediump_u64vec2 u64vec2;
-
1304  typedef mediump_u64vec3 u64vec3;
-
1305  typedef mediump_u64vec4 u64vec4;
-
1306 #else
-
1307  typedef highp_u64vec1 u64vec1;
-
1310 
- -
1314 
- -
1318 
- -
1322 #endif
-
1323 
-
1324 
-
1326  // Float vector types
-
1327 
-
1330  typedef detail::float32 lowp_float32;
-
1331 
-
1334  typedef detail::float64 lowp_float64;
-
1335 
-
1338  typedef detail::float32 lowp_float32_t;
-
1339 
-
1342  typedef detail::float64 lowp_float64_t;
-
1343 
- -
1347 
- -
1351 
-
1354  typedef detail::float32 lowp_float32;
-
1355 
-
1358  typedef detail::float64 lowp_float64;
-
1359 
-
1362  typedef detail::float32 lowp_float32_t;
-
1363 
-
1366  typedef detail::float64 lowp_float64_t;
-
1367 
-
1370  typedef float32 lowp_f32;
-
1371 
-
1374  typedef float64 lowp_f64;
-
1375 
-
1376 
-
1379  typedef detail::float32 lowp_float32;
-
1380 
-
1383  typedef detail::float64 lowp_float64;
-
1384 
-
1387  typedef detail::float32 lowp_float32_t;
-
1388 
-
1391  typedef detail::float64 lowp_float64_t;
-
1392 
-
1395  typedef float32 lowp_f32;
-
1396 
-
1399  typedef float64 lowp_f64;
-
1400 
-
1401 
-
1404  typedef detail::float32 mediump_float32;
-
1405 
-
1408  typedef detail::float64 mediump_float64;
-
1409 
-
1412  typedef detail::float32 mediump_float32_t;
-
1413 
-
1416  typedef detail::float64 mediump_float64_t;
-
1417 
- -
1421 
- -
1425 
-
1426 
-
1429  typedef detail::float32 highp_float32;
-
1430 
-
1433  typedef detail::float64 highp_float64;
-
1434 
-
1437  typedef detail::float32 highp_float32_t;
-
1438 
-
1441  typedef detail::float64 highp_float64_t;
-
1442 
- -
1446 
- -
1450 
-
1451 
-
1452 #if(defined(GLM_PRECISION_LOWP_FLOAT))
-
1453  typedef lowp_float32 float32;
-
1456 
-
1459  typedef lowp_float64 float64;
-
1460 
-
1463  typedef lowp_float32_t float32_t;
-
1464 
-
1467  typedef lowp_float64_t float64_t;
-
1468 
-
1471  typedef lowp_f32 f32;
-
1472 
-
1475  typedef lowp_f64 f64;
-
1476 
-
1477 #elif(defined(GLM_PRECISION_MEDIUMP_FLOAT))
-
1478 
-
1481  typedef mediump_float32 float32;
-
1482 
-
1485  typedef mediump_float64 float64;
-
1486 
-
1489  typedef mediump_float32 float32_t;
-
1490 
-
1493  typedef mediump_float64 float64_t;
-
1494 
-
1497  typedef mediump_float32 f32;
-
1498 
-
1501  typedef mediump_float64 f64;
-
1502 
-
1503 #else//(defined(GLM_PRECISION_HIGHP_FLOAT))
-
1504 
-
1507  typedef highp_float32 float32;
-
1508 
-
1511  typedef highp_float64 float64;
-
1512 
- -
1516 
- -
1520 
- -
1524 
- -
1528 #endif
-
1529 
-
1530 
-
1533  typedef detail::tvec1<float, lowp> lowp_vec1;
-
1534 
-
1537  typedef detail::tvec2<float, lowp> lowp_vec2;
-
1538 
-
1541  typedef detail::tvec3<float, lowp> lowp_vec3;
-
1542 
-
1545  typedef detail::tvec4<float, lowp> lowp_vec4;
-
1546 
-
1549  typedef detail::tvec1<float, lowp> lowp_fvec1;
-
1550 
-
1553  typedef detail::tvec2<float, lowp> lowp_fvec2;
-
1554 
-
1557  typedef detail::tvec3<float, lowp> lowp_fvec3;
-
1558 
-
1561  typedef detail::tvec4<float, lowp> lowp_fvec4;
-
1562 
-
1563 
-
1564 
-
1567  typedef detail::tvec1<float, mediump> mediump_vec1;
-
1568 
-
1571  typedef detail::tvec2<float, mediump> mediump_vec2;
-
1572 
-
1575  typedef detail::tvec3<float, mediump> mediump_vec3;
-
1576 
-
1579  typedef detail::tvec4<float, mediump> mediump_vec4;
-
1580 
-
1583  typedef detail::tvec1<float, mediump> mediump_fvec1;
-
1584 
-
1587  typedef detail::tvec2<float, mediump> mediump_fvec2;
-
1588 
-
1591  typedef detail::tvec3<float, mediump> mediump_fvec3;
-
1592 
-
1595  typedef detail::tvec4<float, mediump> mediump_fvec4;
-
1596 
-
1597 
-
1598 
-
1601  typedef detail::tvec1<float, highp> highp_vec1;
-
1602 
-
1605  typedef detail::tvec2<float, highp> highp_vec2;
-
1606 
-
1609  typedef detail::tvec3<float, highp> highp_vec3;
-
1610 
-
1613  typedef detail::tvec4<float, highp> highp_vec4;
-
1614 
-
1617  typedef detail::tvec1<float, highp> highp_fvec1;
-
1618 
-
1621  typedef detail::tvec2<float, highp> highp_fvec2;
-
1622 
-
1625  typedef detail::tvec3<float, highp> highp_fvec3;
-
1626 
-
1629  typedef detail::tvec4<float, highp> highp_fvec4;
-
1630 
-
1631 
-
1634  typedef detail::tvec1<f32, lowp> lowp_f32vec1;
-
1635 
-
1638  typedef detail::tvec2<f32, lowp> lowp_f32vec2;
-
1639 
-
1642  typedef detail::tvec3<f32, lowp> lowp_f32vec3;
-
1643 
-
1646  typedef detail::tvec4<f32, lowp> lowp_f32vec4;
-
1647 
-
1650  typedef detail::tvec1<f32, mediump> mediump_f32vec1;
-
1651 
-
1654  typedef detail::tvec2<f32, mediump> mediump_f32vec2;
-
1655 
-
1658  typedef detail::tvec3<f32, mediump> mediump_f32vec3;
-
1659 
-
1662  typedef detail::tvec4<f32, mediump> mediump_f32vec4;
-
1663 
-
1666  typedef detail::tvec1<f32, highp> highp_f32vec1;
-
1667 
-
1670  typedef detail::tvec2<f32, highp> highp_f32vec2;
-
1671 
-
1674  typedef detail::tvec3<f32, highp> highp_f32vec3;
-
1675 
-
1678  typedef detail::tvec4<f32, highp> highp_f32vec4;
-
1679 
-
1680 
-
1683  typedef detail::tvec1<f64, lowp> lowp_f64vec1;
-
1684 
-
1687  typedef detail::tvec2<f64, lowp> lowp_f64vec2;
-
1688 
-
1691  typedef detail::tvec3<f64, lowp> lowp_f64vec3;
-
1692 
-
1695  typedef detail::tvec4<f64, lowp> lowp_f64vec4;
-
1696 
-
1699  typedef detail::tvec1<f64, mediump> mediump_f64vec1;
-
1700 
-
1703  typedef detail::tvec2<f64, mediump> mediump_f64vec2;
-
1704 
-
1707  typedef detail::tvec3<f64, mediump> mediump_f64vec3;
-
1708 
-
1711  typedef detail::tvec4<f64, mediump> mediump_f64vec4;
-
1712 
-
1715  typedef detail::tvec1<f64, highp> highp_f64vec1;
-
1716 
-
1719  typedef detail::tvec2<f64, highp> highp_f64vec2;
-
1720 
-
1723  typedef detail::tvec3<f64, highp> highp_f64vec3;
-
1724 
-
1727  typedef detail::tvec4<f64, highp> highp_f64vec4;
-
1728 
-
1729 
-
1731  // Float matrix types
-
1732 
-
1735  //typedef lowp_f32 lowp_fmat1x1;
-
1736 
-
1739  typedef detail::tmat2x2<f32, lowp> lowp_fmat2x2;
-
1740 
-
1743  typedef detail::tmat2x3<f32, lowp> lowp_fmat2x3;
-
1744 
-
1747  typedef detail::tmat2x4<f32, lowp> lowp_fmat2x4;
-
1748 
-
1751  typedef detail::tmat3x2<f32, lowp> lowp_fmat3x2;
-
1752 
-
1755  typedef detail::tmat3x3<f32, lowp> lowp_fmat3x3;
-
1756 
-
1759  typedef detail::tmat3x4<f32, lowp> lowp_fmat3x4;
-
1760 
-
1763  typedef detail::tmat4x2<f32, lowp> lowp_fmat4x2;
-
1764 
-
1767  typedef detail::tmat4x3<f32, lowp> lowp_fmat4x3;
-
1768 
-
1771  typedef detail::tmat4x4<f32, lowp> lowp_fmat4x4;
-
1772 
-
1775  //typedef lowp_fmat1x1 lowp_fmat1;
-
1776 
- -
1780 
- -
1784 
- -
1788 
-
1789 
-
1792  //typedef mediump_f32 mediump_fmat1x1;
-
1793 
-
1796  typedef detail::tmat2x2<f32, mediump> mediump_fmat2x2;
-
1797 
-
1800  typedef detail::tmat2x3<f32, mediump> mediump_fmat2x3;
-
1801 
-
1804  typedef detail::tmat2x4<f32, mediump> mediump_fmat2x4;
-
1805 
-
1808  typedef detail::tmat3x2<f32, mediump> mediump_fmat3x2;
-
1809 
-
1812  typedef detail::tmat3x3<f32, mediump> mediump_fmat3x3;
-
1813 
-
1816  typedef detail::tmat3x4<f32, mediump> mediump_fmat3x4;
-
1817 
-
1820  typedef detail::tmat4x2<f32, mediump> mediump_fmat4x2;
-
1821 
-
1824  typedef detail::tmat4x3<f32, mediump> mediump_fmat4x3;
-
1825 
-
1828  typedef detail::tmat4x4<f32, mediump> mediump_fmat4x4;
-
1829 
-
1832  //typedef mediump_fmat1x1 mediump_fmat1;
-
1833 
- -
1837 
- -
1841 
- -
1845 
-
1846 
-
1847 
-
1850  //typedef highp_f32 highp_fmat1x1;
-
1851 
-
1854  typedef detail::tmat2x2<f32, highp> highp_fmat2x2;
-
1855 
-
1858  typedef detail::tmat2x3<f32, highp> highp_fmat2x3;
-
1859 
-
1862  typedef detail::tmat2x4<f32, highp> highp_fmat2x4;
-
1863 
-
1866  typedef detail::tmat3x2<f32, highp> highp_fmat3x2;
-
1867 
-
1870  typedef detail::tmat3x3<f32, highp> highp_fmat3x3;
-
1871 
-
1874  typedef detail::tmat3x4<f32, highp> highp_fmat3x4;
-
1875 
-
1878  typedef detail::tmat4x2<f32, highp> highp_fmat4x2;
-
1879 
-
1882  typedef detail::tmat4x3<f32, highp> highp_fmat4x3;
-
1883 
-
1886  typedef detail::tmat4x4<f32, highp> highp_fmat4x4;
-
1887 
-
1890  //typedef highp_fmat1x1 highp_fmat1;
-
1891 
- -
1895 
- -
1899 
- -
1903 
-
1904 
-
1907  //typedef f32 lowp_f32mat1x1;
-
1908 
-
1911  typedef detail::tmat2x2<f32, lowp> lowp_f32mat2x2;
-
1912 
-
1915  typedef detail::tmat2x3<f32, lowp> lowp_f32mat2x3;
-
1916 
-
1919  typedef detail::tmat2x4<f32, lowp> lowp_f32mat2x4;
-
1920 
-
1923  typedef detail::tmat3x2<f32, lowp> lowp_f32mat3x2;
-
1924 
-
1927  typedef detail::tmat3x3<f32, lowp> lowp_f32mat3x3;
-
1928 
-
1931  typedef detail::tmat3x4<f32, lowp> lowp_f32mat3x4;
-
1932 
-
1935  typedef detail::tmat4x2<f32, lowp> lowp_f32mat4x2;
-
1936 
-
1939  typedef detail::tmat4x3<f32, lowp> lowp_f32mat4x3;
-
1940 
-
1943  typedef detail::tmat4x4<f32, lowp> lowp_f32mat4x4;
-
1944 
-
1947  //typedef detail::tmat1x1<f32, lowp> lowp_f32mat1;
-
1948 
- -
1952 
- -
1956 
- -
1960 
-
1961 
-
1962 
-
1965  //typedef f32 mediump_f32mat1x1;
-
1966 
-
1969  typedef detail::tmat2x2<f32, mediump> mediump_f32mat2x2;
-
1970 
-
1973  typedef detail::tmat2x3<f32, mediump> mediump_f32mat2x3;
-
1974 
-
1977  typedef detail::tmat2x4<f32, mediump> mediump_f32mat2x4;
-
1978 
-
1981  typedef detail::tmat3x2<f32, mediump> mediump_f32mat3x2;
-
1982 
-
1985  typedef detail::tmat3x3<f32, mediump> mediump_f32mat3x3;
-
1986 
-
1989  typedef detail::tmat3x4<f32, mediump> mediump_f32mat3x4;
-
1990 
-
1993  typedef detail::tmat4x2<f32, mediump> mediump_f32mat4x2;
-
1994 
-
1997  typedef detail::tmat4x3<f32, mediump> mediump_f32mat4x3;
-
1998 
-
2001  typedef detail::tmat4x4<f32, mediump> mediump_f32mat4x4;
-
2002 
-
2005  //typedef detail::tmat1x1<f32, mediump> f32mat1;
-
2006 
- -
2010 
- -
2014 
- -
2018 
-
2019 
-
2020 
-
2021 
-
2024  //typedef f32 highp_f32mat1x1;
-
2025 
-
2028  typedef detail::tmat2x2<f32, highp> highp_f32mat2x2;
-
2029 
-
2032  typedef detail::tmat2x3<f32, highp> highp_f32mat2x3;
-
2033 
-
2036  typedef detail::tmat2x4<f32, highp> highp_f32mat2x4;
-
2037 
-
2040  typedef detail::tmat3x2<f32, highp> highp_f32mat3x2;
-
2041 
-
2044  typedef detail::tmat3x3<f32, highp> highp_f32mat3x3;
-
2045 
-
2048  typedef detail::tmat3x4<f32, highp> highp_f32mat3x4;
-
2049 
-
2052  typedef detail::tmat4x2<f32, highp> highp_f32mat4x2;
-
2053 
-
2056  typedef detail::tmat4x3<f32, highp> highp_f32mat4x3;
-
2057 
-
2060  typedef detail::tmat4x4<f32, highp> highp_f32mat4x4;
-
2061 
-
2064  //typedef detail::tmat1x1<f32, highp> f32mat1;
-
2065 
- -
2069 
- -
2073 
- -
2077 
-
2078 
-
2079 
-
2082  //typedef f64 lowp_f64mat1x1;
-
2083 
-
2086  typedef detail::tmat2x2<f64, lowp> lowp_f64mat2x2;
-
2087 
-
2090  typedef detail::tmat2x3<f64, lowp> lowp_f64mat2x3;
-
2091 
-
2094  typedef detail::tmat2x4<f64, lowp> lowp_f64mat2x4;
-
2095 
-
2098  typedef detail::tmat3x2<f64, lowp> lowp_f64mat3x2;
-
2099 
-
2102  typedef detail::tmat3x3<f64, lowp> lowp_f64mat3x3;
-
2103 
-
2106  typedef detail::tmat3x4<f64, lowp> lowp_f64mat3x4;
-
2107 
-
2110  typedef detail::tmat4x2<f64, lowp> lowp_f64mat4x2;
-
2111 
-
2114  typedef detail::tmat4x3<f64, lowp> lowp_f64mat4x3;
-
2115 
-
2118  typedef detail::tmat4x4<f64, lowp> lowp_f64mat4x4;
-
2119 
-
2122  //typedef lowp_f64mat1x1 lowp_f64mat1;
-
2123 
- -
2127 
- -
2131 
- -
2135 
-
2136 
-
2137 
-
2140  //typedef f64 Highp_f64mat1x1;
-
2141 
-
2144  typedef detail::tmat2x2<f64, mediump> mediump_f64mat2x2;
-
2145 
-
2148  typedef detail::tmat2x3<f64, mediump> mediump_f64mat2x3;
-
2149 
-
2152  typedef detail::tmat2x4<f64, mediump> mediump_f64mat2x4;
-
2153 
-
2156  typedef detail::tmat3x2<f64, mediump> mediump_f64mat3x2;
-
2157 
-
2160  typedef detail::tmat3x3<f64, mediump> mediump_f64mat3x3;
-
2161 
-
2164  typedef detail::tmat3x4<f64, mediump> mediump_f64mat3x4;
-
2165 
-
2168  typedef detail::tmat4x2<f64, mediump> mediump_f64mat4x2;
-
2169 
-
2172  typedef detail::tmat4x3<f64, mediump> mediump_f64mat4x3;
-
2173 
-
2176  typedef detail::tmat4x4<f64, mediump> mediump_f64mat4x4;
-
2177 
-
2180  //typedef mediump_f64mat1x1 mediump_f64mat1;
-
2181 
- -
2185 
- -
2189 
- -
2193 
-
2196  //typedef f64 highp_f64mat1x1;
-
2197 
-
2200  typedef detail::tmat2x2<f64, highp> highp_f64mat2x2;
-
2201 
-
2204  typedef detail::tmat2x3<f64, highp> highp_f64mat2x3;
-
2205 
-
2208  typedef detail::tmat2x4<f64, highp> highp_f64mat2x4;
-
2209 
-
2212  typedef detail::tmat3x2<f64, highp> highp_f64mat3x2;
-
2213 
-
2216  typedef detail::tmat3x3<f64, highp> highp_f64mat3x3;
-
2217 
-
2220  typedef detail::tmat3x4<f64, highp> highp_f64mat3x4;
-
2221 
-
2224  typedef detail::tmat4x2<f64, highp> highp_f64mat4x2;
-
2225 
-
2228  typedef detail::tmat4x3<f64, highp> highp_f64mat4x3;
-
2229 
-
2232  typedef detail::tmat4x4<f64, highp> highp_f64mat4x4;
-
2233 
-
2236  //typedef highp_f64mat1x1 highp_f64mat1;
-
2237 
- -
2241 
- -
2245 
- -
2249 
-
2251  // Quaternion types
-
2252 
-
2255  typedef detail::tquat<f32, lowp> lowp_f32quat;
-
2256 
-
2259  typedef detail::tquat<f64, lowp> lowp_f64quat;
-
2260 
-
2263  typedef detail::tquat<f32, mediump> mediump_f32quat;
-
2264 
-
2267  typedef detail::tquat<f64, mediump> mediump_f64quat;
-
2268 
-
2271  typedef detail::tquat<f32, highp> highp_f32quat;
-
2272 
-
2275  typedef detail::tquat<f64, highp> highp_f64quat;
-
2276 
-
2277 
-
2278 #if(defined(GLM_PRECISION_LOWP_FLOAT))
-
2279  typedef lowp_f32vec1 fvec1;
-
2280  typedef lowp_f32vec2 fvec2;
-
2281  typedef lowp_f32vec3 fvec3;
-
2282  typedef lowp_f32vec4 fvec4;
-
2283  typedef lowp_f32mat2 fmat2;
-
2284  typedef lowp_f32mat3 fmat3;
-
2285  typedef lowp_f32mat4 fmat4;
-
2286  typedef lowp_f32mat2x2 fmat2x2;
-
2287  typedef lowp_f32mat3x2 fmat3x2;
-
2288  typedef lowp_f32mat4x2 fmat4x2;
-
2289  typedef lowp_f32mat2x3 fmat2x3;
-
2290  typedef lowp_f32mat3x3 fmat3x3;
-
2291  typedef lowp_f32mat4x3 fmat4x3;
-
2292  typedef lowp_f32mat2x4 fmat2x4;
-
2293  typedef lowp_f32mat3x4 fmat3x4;
-
2294  typedef lowp_f32mat4x4 fmat4x4;
-
2295  typedef lowp_f32quat fquat;
-
2296 
-
2297  typedef lowp_f32vec1 f32vec1;
-
2298  typedef lowp_f32vec2 f32vec2;
-
2299  typedef lowp_f32vec3 f32vec3;
-
2300  typedef lowp_f32vec4 f32vec4;
-
2301  typedef lowp_f32mat2 f32mat2;
-
2302  typedef lowp_f32mat3 f32mat3;
-
2303  typedef lowp_f32mat4 f32mat4;
-
2304  typedef lowp_f32mat2x2 f32mat2x2;
-
2305  typedef lowp_f32mat3x2 f32mat3x2;
-
2306  typedef lowp_f32mat4x2 f32mat4x2;
-
2307  typedef lowp_f32mat2x3 f32mat2x3;
-
2308  typedef lowp_f32mat3x3 f32mat3x3;
-
2309  typedef lowp_f32mat4x3 f32mat4x3;
-
2310  typedef lowp_f32mat2x4 f32mat2x4;
-
2311  typedef lowp_f32mat3x4 f32mat3x4;
-
2312  typedef lowp_f32mat4x4 f32mat4x4;
-
2313  typedef lowp_f32quat f32quat;
-
2314 #elif(defined(GLM_PRECISION_MEDIUMP_FLOAT))
-
2315  typedef mediump_f32vec1 fvec1;
-
2316  typedef mediump_f32vec2 fvec2;
-
2317  typedef mediump_f32vec3 fvec3;
-
2318  typedef mediump_f32vec4 fvec4;
-
2319  typedef mediump_f32mat2 fmat2;
-
2320  typedef mediump_f32mat3 fmat3;
-
2321  typedef mediump_f32mat4 fmat4;
-
2322  typedef mediump_f32mat2x2 fmat2x2;
-
2323  typedef mediump_f32mat3x2 fmat3x2;
-
2324  typedef mediump_f32mat4x2 fmat4x2;
-
2325  typedef mediump_f32mat2x3 fmat2x3;
-
2326  typedef mediump_f32mat3x3 fmat3x3;
-
2327  typedef mediump_f32mat4x3 fmat4x3;
-
2328  typedef mediump_f32mat2x4 fmat2x4;
-
2329  typedef mediump_f32mat3x4 fmat3x4;
-
2330  typedef mediump_f32mat4x4 fmat4x4;
-
2331  typedef mediump_f32quat fquat;
-
2332 
-
2333  typedef mediump_f32vec1 f32vec1;
-
2334  typedef mediump_f32vec2 f32vec2;
-
2335  typedef mediump_f32vec3 f32vec3;
-
2336  typedef mediump_f32vec4 f32vec4;
-
2337  typedef mediump_f32mat2 f32mat2;
-
2338  typedef mediump_f32mat3 f32mat3;
-
2339  typedef mediump_f32mat4 f32mat4;
-
2340  typedef mediump_f32mat2x2 f32mat2x2;
-
2341  typedef mediump_f32mat3x2 f32mat3x2;
-
2342  typedef mediump_f32mat4x2 f32mat4x2;
-
2343  typedef mediump_f32mat2x3 f32mat2x3;
-
2344  typedef mediump_f32mat3x3 f32mat3x3;
-
2345  typedef mediump_f32mat4x3 f32mat4x3;
-
2346  typedef mediump_f32mat2x4 f32mat2x4;
-
2347  typedef mediump_f32mat3x4 f32mat3x4;
-
2348  typedef mediump_f32mat4x4 f32mat4x4;
-
2349  typedef mediump_f32quat f32quat;
-
2350 #else//if(defined(GLM_PRECISION_HIGHP_FLOAT))
-
2351  typedef highp_f32vec1 fvec1;
-
2354 
- -
2358 
- -
2362 
- -
2366 
- -
2370 
- -
2374 
- -
2378 
- -
2382 
- -
2386 
- -
2390 
- -
2394 
- -
2398 
- -
2402 
-
2405  typedef fmat2x2 fmat2;
-
2406 
-
2409  typedef fmat3x3 fmat3;
-
2410 
-
2413  typedef fmat4x4 fmat4;
-
2414 
-
2417  typedef highp_fquat fquat;
-
2418 
-
2419 
-
2420 
- -
2424 
- -
2428 
- -
2432 
- -
2436 
- -
2440 
- -
2444 
- -
2448 
- -
2452 
- -
2456 
- -
2460 
- -
2464 
- -
2468 
- -
2472 
- -
2476 
- -
2480 
- -
2484 
- -
2488 #endif
-
2489 
-
2490 
-
2491 #if(defined(GLM_PRECISION_LOWP_DOUBLE))
-
2492  typedef lowp_f64vec1 f64vec1;
-
2493  typedef lowp_f64vec2 f64vec2;
-
2494  typedef lowp_f64vec3 f64vec3;
-
2495  typedef lowp_f64vec4 f64vec4;
-
2496  typedef lowp_f64mat2 f64mat2;
-
2497  typedef lowp_f64mat3 f64mat3;
-
2498  typedef lowp_f64mat4 f64mat4;
-
2499  typedef lowp_f64mat2x2 f64mat2x2;
-
2500  typedef lowp_f64mat3x2 f64mat3x2;
-
2501  typedef lowp_f64mat4x2 f64mat4x2;
-
2502  typedef lowp_f64mat2x3 f64mat2x3;
-
2503  typedef lowp_f64mat3x3 f64mat3x3;
-
2504  typedef lowp_f64mat4x3 f64mat4x3;
-
2505  typedef lowp_f64mat2x4 f64mat2x4;
-
2506  typedef lowp_f64mat3x4 f64mat3x4;
-
2507  typedef lowp_f64mat4x4 f64mat4x4;
-
2508  typedef lowp_f64quat f64quat;
-
2509 #elif(defined(GLM_PRECISION_MEDIUMP_DOUBLE))
-
2510  typedef mediump_f64vec1 f64vec1;
-
2511  typedef mediump_f64vec2 f64vec2;
-
2512  typedef mediump_f64vec3 f64vec3;
-
2513  typedef mediump_f64vec4 f64vec4;
-
2514  typedef mediump_f64mat2 f64mat2;
-
2515  typedef mediump_f64mat3 f64mat3;
-
2516  typedef mediump_f64mat4 f64mat4;
-
2517  typedef mediump_f64mat2x2 f64mat2x2;
-
2518  typedef mediump_f64mat3x2 f64mat3x2;
-
2519  typedef mediump_f64mat4x2 f64mat4x2;
-
2520  typedef mediump_f64mat2x3 f64mat2x3;
-
2521  typedef mediump_f64mat3x3 f64mat3x3;
-
2522  typedef mediump_f64mat4x3 f64mat4x3;
-
2523  typedef mediump_f64mat2x4 f64mat2x4;
-
2524  typedef mediump_f64mat3x4 f64mat3x4;
-
2525  typedef mediump_f64mat4x4 f64mat4x4;
-
2526  typedef mediump_f64quat f64quat;
-
2527 #else
-
2528  typedef highp_f64vec1 f64vec1;
-
2531 
- -
2535 
- -
2539 
- -
2543 
- -
2547 
- -
2551 
- -
2555 
- -
2559 
- -
2563 
- -
2567 
- -
2571 
- -
2575 
- -
2579 
- -
2583 
- -
2587 
- -
2591 
- -
2595 #endif
-
2596 }//namespace glm
-
2597 
-
2598 #endif//GLM_FWD_INCLUDED
-
highp_i16vec1 i16vec1
Default precision 16 bit signed integer scalar type.
Definition: fwd.hpp:468
-
highp_u16vec1 u16vec1
Default precision 16 bit unsigned integer scalar type.
Definition: fwd.hpp:1071
-
detail::int8 mediump_int8_t
Medium precision 8 bit signed integer type.
Definition: fwd.hpp:196
-
highp_fmat4x4 highp_fmat4
High single-precision floating-point 4x4 matrix.
Definition: fwd.hpp:1902
-
detail::tmat4x4< f32, lowp > lowp_fmat4x4
Low single-precision floating-point 4x4 matrix.
Definition: fwd.hpp:1771
-
lowp_fmat2x2 lowp_fmat2
Low single-precision floating-point 1x1 matrix.
Definition: fwd.hpp:1779
-
highp_f32mat4x3 fmat4x3
Default single-precision floating-point 4x3 matrix.
Definition: fwd.hpp:2397
-
detail::tvec4< float, mediump > mediump_fvec4
Medium Single-precision floating-point vector of 4 components.
Definition: fwd.hpp:1595
-
detail::uint8 highp_uint8_t
Medium precision 8 bit unsigned integer type.
Definition: fwd.hpp:845
-
detail::tvec1< f64, lowp > lowp_f64vec1
Low double-precision floating-point vector of 1 component.
Definition: fwd.hpp:1683
-
detail::tmat3x4< f32, mediump > mediump_fmat3x4
Medium single-precision floating-point 3x4 matrix.
Definition: fwd.hpp:1816
-
mediump_fmat2x2 mediump_fmat2
Medium single-precision floating-point 1x1 matrix.
Definition: fwd.hpp:1836
-
highp_f32vec1 fvec1
Default single-precision floating-point vector of 1 components.
Definition: fwd.hpp:2353
-
highp_u8vec3 u8vec3
Default precision 8 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:999
-
detail::tvec3< float, lowp > lowp_fvec3
Low single-precision floating-point vector of 3 components.
Definition: fwd.hpp:1557
-
detail::int8 int8
8 bit signed integer type.
Definition: type_int.hpp:89
-
detail::tvec1< u16, highp > highp_u16vec1
High precision 16 bit unsigned integer scalar type.
Definition: fwd.hpp:1043
-
highp_i64vec2 i64vec2
Default precision 64 bit signed integer vector of 2 components type.
Definition: fwd.hpp:710
-
detail::float32 highp_float32_t
High 32 bit single-precision floating-point scalar.
Definition: fwd.hpp:1437
-
float32 mediump_f32
Medium 32 bit single-precision floating-point scalar.
Definition: fwd.hpp:1420
-
detail::tvec1< i16, lowp > lowp_i16vec1
Low precision 16 bit signed integer scalar type.
Definition: fwd.hpp:406
-
highp_u64vec3 u64vec3
Default precision 64 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:1317
-
detail::tvec2< i16, mediump > mediump_i16vec2
Medium precision 16 bit signed integer vector of 2 components type.
Definition: fwd.hpp:427
-
detail::tquat< f64, lowp > lowp_f64quat
Low double-precision floating-point quaternion.
Definition: fwd.hpp:2259
-
detail::uint16 mediump_u16
Medium precision 16 bit unsigned integer type.
Definition: fwd.hpp:815
-
detail::tmat2x4< f32, mediump > mediump_fmat2x4
Medium single-precision floating-point 2x4 matrix.
Definition: fwd.hpp:1804
-
detail::uint64 lowp_uint64
Low precision 64 bit unsigned integer type.
Definition: fwd.hpp:739
-
detail::tvec3< i8, highp > highp_i8vec3
High precision 8 bit signed integer vector of 3 components type.
Definition: fwd.hpp:369
-
detail::tvec3< i32, mediump > mediump_i32vec3
Medium precision 32 bit signed integer vector of 3 components type.
Definition: fwd.hpp:511
-
detail::tvec2< u8, lowp > lowp_u8vec2
Low precision 8 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:934
-
detail::uint32 mediump_uint32
Medium precision 32 bit unsigned integer type.
Definition: fwd.hpp:787
-
detail::uint32 uint32
32 bit unsigned integer type.
Definition: type_int.hpp:96
-
detail::int16 int16
16 bit signed integer type.
Definition: type_int.hpp:90
-
detail::tvec1< u64, highp > highp_u64vec1
High precision 64 bit unsigned integer scalar type.
Definition: fwd.hpp:1282
-
highp_i32vec2 i32vec2
Default precision 32 bit signed integer vector of 2 components type.
Definition: fwd.hpp:551
-
detail::uint8 lowp_uint8_t
Low precision 8 bit unsigned integer type.
Definition: fwd.hpp:744
-
mediump_f64mat3x3 mediump_f64mat3
Medium double-precision floating-point 3x3 matrix.
Definition: fwd.hpp:2188
-
float float32
Default 32 bit single-precision floating-point scalar.
Definition: type_float.hpp:81
-
detail::tvec2< u32, lowp > lowp_u32vec2
Low precision 32 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:1093
-
highp_u16vec3 u16vec3
Default precision 16 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:1079
-
detail::int32 highp_int32
High precision 32 bit signed integer type.
Definition: fwd.hpp:236
-
detail::uint8 uint8_t
8 bit unsigned integer type.
Definition: fwd.hpp:895
-
highp_f32vec3 f32vec3
Default single-precision floating-point vector of 3 components.
Definition: fwd.hpp:2431
-
detail::tvec4< i64, lowp > lowp_i64vec4
Low precision 64 bit signed integer vector of 4 components type.
Definition: fwd.hpp:657
-
detail::tquat< f32, highp > highp_f32quat
High single-precision floating-point quaternion.
Definition: fwd.hpp:2271
-
highp_u64vec1 u64vec1
Default precision 64 bit unsigned integer scalar type.
Definition: fwd.hpp:1309
-
detail::float32 mediump_float32
Medium 32 bit single-precision floating-point scalar.
Definition: fwd.hpp:1404
-
highp_fmat2x2 highp_fmat2
High single-precision floating-point 1x1 matrix.
Definition: fwd.hpp:1894
-
detail::tvec3< i16, lowp > lowp_i16vec3
Low precision 16 bit signed integer vector of 3 components type.
Definition: fwd.hpp:414
-
detail::tvec1< u8, lowp > lowp_u8vec1
Low precision 8 bit unsigned integer scalar type.
Definition: fwd.hpp:930
-
detail::tmat2x4< f64, mediump > mediump_f64mat2x4
Medium double-precision floating-point 2x4 matrix.
Definition: fwd.hpp:2152
-
detail::int16 highp_int16_t
High precision 16 bit signed integer type.
Definition: fwd.hpp:248
-
highp_u8vec4 u8vec4
Default precision 8 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:1003
-
detail::tmat4x2< f32, mediump > mediump_f32mat4x2
Medium single-precision floating-point 4x2 matrix.
Definition: fwd.hpp:1993
-
detail::int64 mediump_int64_t
Medium precision 64 bit signed integer type.
Definition: fwd.hpp:208
-
detail::tmat2x2< f32, mediump > mediump_f32mat2x2
High single-precision floating-point 1x1 matrix.
Definition: fwd.hpp:1969
-
detail::int32 lowp_int32
Low precision 32 bit signed integer type.
Definition: fwd.hpp:140
-
detail::tvec3< float, mediump > mediump_fvec3
Medium Single-precision floating-point vector of 3 components.
Definition: fwd.hpp:1591
-
detail::int64 int64_t
64 bit signed integer type.
Definition: fwd.hpp:305
-
detail::tvec3< f64, lowp > lowp_f64vec3
Low double-precision floating-point vector of 3 components.
Definition: fwd.hpp:1691
-
detail::tmat4x3< f32, lowp > lowp_fmat4x3
Low single-precision floating-point 4x3 matrix.
Definition: fwd.hpp:1767
-
detail::tvec1< i8, mediump > mediump_i8vec1
Medium precision 8 bit signed integer scalar type.
Definition: fwd.hpp:344
-
highp_float32_t f32
Default 32 bit single-precision floating-point scalar.
Definition: fwd.hpp:1523
-
detail::tvec3< u64, lowp > lowp_u64vec3
Low precision 64 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:1256
-
detail::uint32 uint32_t
32 bit unsigned integer type.
Definition: fwd.hpp:903
-
detail::uint8 u8
8 bit unsigned integer type.
Definition: fwd.hpp:911
-
detail::int64 int64
64 bit signed integer type.
Definition: type_int.hpp:92
-
detail::float32 lowp_float32
Low 32 bit single-precision floating-point scalar.
Definition: fwd.hpp:1330
-
detail::tvec3< i16, highp > highp_i16vec3
High precision 16 bit signed integer vector of 3 components type.
Definition: fwd.hpp:448
-
detail::tvec2< i64, lowp > lowp_i64vec2
Low precision 64 bit signed integer vector of 2 components type.
Definition: fwd.hpp:649
-
detail::uint16 lowp_u16
Low precision 16 bit unsigned integer type.
Definition: fwd.hpp:765
-
highp_float32_t float32_t
Default 32 bit single-precision floating-point scalar.
Definition: fwd.hpp:1515
-
detail::int32 highp_int32_t
32 bit signed integer type.
Definition: fwd.hpp:252
-
highp_f32vec2 fvec2
Default single-precision floating-point vector of 2 components.
Definition: fwd.hpp:2357
-
highp_i16vec2 i16vec2
Default precision 16 bit signed integer vector of 2 components type.
Definition: fwd.hpp:472
-
detail::tvec4< u64, highp > highp_u64vec4
High precision 64 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:1294
-
detail::float32 highp_float32
High 32 bit single-precision floating-point scalar.
Definition: fwd.hpp:1429
-
detail::tmat3x2< f32, mediump > mediump_fmat3x2
Medium single-precision floating-point 3x2 matrix.
Definition: fwd.hpp:1808
-
detail::tvec3< i64, highp > highp_i64vec3
High precision 64 bit signed integer vector of 3 components type.
Definition: fwd.hpp:687
-
lowp_f64mat3x3 lowp_f64mat3
Low double-precision floating-point 3x3 matrix.
Definition: fwd.hpp:2130
-
detail::tvec4< f64, lowp > lowp_f64vec4
Low double-precision floating-point vector of 4 components.
Definition: fwd.hpp:1695
-
detail::tmat4x3< f32, mediump > mediump_f32mat4x3
Medium single-precision floating-point 4x3 matrix.
Definition: fwd.hpp:1997
-
detail::tmat4x2< f32, lowp > lowp_fmat4x2
Low single-precision floating-point 4x2 matrix.
Definition: fwd.hpp:1763
-
detail::uint32 mediump_uint32_t
Medium precision 32 bit unsigned integer type.
Definition: fwd.hpp:803
-
lowp_quat lowp_fquat
Quaternion of low single-precision floating-point numbers.
Definition: fwd.hpp:75
-
detail::uint32 highp_uint32
Medium precision 32 bit unsigned integer type.
Definition: fwd.hpp:837
-
detail::tvec1< float, lowp > lowp_fvec1
Low single-precision floating-point vector of 1 component.
Definition: fwd.hpp:1549
-
detail::uint16 mediump_uint16
Medium precision 16 bit unsigned integer type.
Definition: fwd.hpp:783
-
detail::tvec3< i64, lowp > lowp_i64vec3
Low precision 64 bit signed integer vector of 3 components type.
Definition: fwd.hpp:653
-
detail::tmat4x4< f32, mediump > mediump_f32mat4x4
Medium single-precision floating-point 4x4 matrix.
Definition: fwd.hpp:2001
-
detail::tmat4x3< f32, mediump > mediump_fmat4x3
Medium single-precision floating-point 4x3 matrix.
Definition: fwd.hpp:1824
-
detail::tmat3x4< f64, lowp > lowp_f64mat3x4
Low double-precision floating-point 3x4 matrix.
Definition: fwd.hpp:2106
-
detail::tvec4< float, mediump > mediump_vec4
4 components vector of medium single-precision floating-point numbers.
Definition: type_vec.hpp:288
-
detail::tvec3< i32, lowp > lowp_i32vec3
Low precision 32 bit signed integer vector of 3 components type.
Definition: fwd.hpp:494
-
detail::uint16 lowp_uint16_t
Low precision 16 bit unsigned integer type.
Definition: fwd.hpp:748
-
detail::tvec2< u64, mediump > mediump_u64vec2
Medium precision 64 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:1269
-
detail::int16 mediump_int16
Medium precision 16 bit signed integer type.
Definition: fwd.hpp:184
-
detail::tvec4< u16, highp > highp_u16vec4
High precision 16 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:1055
-
detail::tquat< f64, highp > highp_f64quat
High double-precision floating-point quaternion.
Definition: fwd.hpp:2275
-
detail::tvec2< u16, lowp > lowp_u16vec2
Low precision 16 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:1013
-
highp_f64mat3x4 f64mat3x4
Default double-precision floating-point 3x4 matrix.
Definition: fwd.hpp:2566
-
lowp_fmat3x3 lowp_fmat3
Low single-precision floating-point 3x3 matrix.
Definition: fwd.hpp:1783
-
detail::uint8 mediump_uint8_t
Medium precision 8 bit unsigned integer type.
Definition: fwd.hpp:795
-
detail::tmat2x2< f32, lowp > lowp_fmat2x2
Low single-precision floating-point 1x1 matrix.
Definition: fwd.hpp:1739
-
detail::int32 i32
32 bit signed integer type.
Definition: fwd.hpp:317
-
float64 lowp_f64
Low 64 bit double-precision floating-point scalar.
Definition: fwd.hpp:1350
-
mediump_f64mat4x4 mediump_f64mat4
Medium double-precision floating-point 4x4 matrix.
Definition: fwd.hpp:2192
-
detail::tmat3x3< f32, mediump > mediump_fmat3x3
Medium single-precision floating-point 3x3 matrix.
Definition: fwd.hpp:1812
-
detail::tmat4x3< f64, highp > highp_f64mat4x3
High double-precision floating-point 4x3 matrix.
Definition: fwd.hpp:2228
-
detail::tvec3< u32, highp > highp_u32vec3
High precision 32 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:1131
-
mediump_f32mat2x2 mediump_f32mat2
Medium single-precision floating-point 1x1 matrix.
Definition: fwd.hpp:2009
-
quat fquat
Quaternion of default single-precision floating-point numbers.
Definition: fwd.hpp:90
-
highp_f64vec1 f64vec1
Default double-precision floating-point vector of 1 components.
Definition: fwd.hpp:2530
-
detail::int8 lowp_int8_t
Low precision 8 bit signed integer type.
Definition: fwd.hpp:148
-
detail::uint16 highp_uint16
Medium precision 16 bit unsigned integer type.
Definition: fwd.hpp:833
-
detail::tvec3< u16, mediump > mediump_u16vec3
Medium precision 16 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:1034
-
detail::tmat4x2< f32, highp > highp_fmat4x2
High single-precision floating-point 4x2 matrix.
Definition: fwd.hpp:1878
-
detail::tmat2x3< f64, lowp > lowp_f64mat2x3
Low double-precision floating-point 2x3 matrix.
Definition: fwd.hpp:2090
-
detail::tvec4< float, highp > highp_fvec4
High Single-precision floating-point vector of 4 components.
Definition: fwd.hpp:1629
-
detail::tmat3x2< f64, mediump > mediump_f64mat3x2
Medium double-precision floating-point 3x2 matrix.
Definition: fwd.hpp:2156
-
highp_f64mat3x3 highp_f64mat3
High double-precision floating-point 3x3 matrix.
Definition: fwd.hpp:2244
-
detail::tvec4< u64, lowp > lowp_u64vec4
Low precision 64 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:1260
-
detail::tmat3x3< f64, highp > highp_f64mat3x3
High double-precision floating-point 3x3 matrix.
Definition: fwd.hpp:2216
-
detail::uint64 mediump_u64
Medium precision 64 bit unsigned integer type.
Definition: fwd.hpp:823
-
detail::uint64 uint64_t
64 bit unsigned integer type.
Definition: fwd.hpp:907
-
detail::tvec2< i32, mediump > mediump_i32vec2
Medium precision 32 bit signed integer vector of 2 components type.
Definition: fwd.hpp:507
-
detail::tvec1< i8, highp > highp_i8vec1
High precision 8 bit signed integer scalar type.
Definition: fwd.hpp:361
-
detail::tvec1< i32, mediump > mediump_i32vec1
Medium precision 32 bit signed integer scalar type.
Definition: fwd.hpp:503
-
float64 highp_f64
High 64 bit double-precision floating-point scalar.
Definition: fwd.hpp:1449
-
detail::tvec2< f64, lowp > lowp_f64vec2
Low double-precision floating-point vector of 2 components.
Definition: fwd.hpp:1687
-
detail::tmat2x4< f32, mediump > mediump_f32mat2x4
Medium single-precision floating-point 2x4 matrix.
Definition: fwd.hpp:1977
-
detail::float64 mediump_float64_t
Medium 64 bit double-precision floating-point scalar.
Definition: fwd.hpp:1416
-
detail::tvec1< i64, mediump > mediump_i64vec1
Medium precision 64 bit signed integer scalar type.
Definition: fwd.hpp:662
-
highp_i64vec1 i64vec1
Default precision 64 bit signed integer scalar type.
Definition: fwd.hpp:706
-
detail::tmat3x4< f64, mediump > mediump_f64mat3x4
Medium double-precision floating-point 3x4 matrix.
Definition: fwd.hpp:2164
-
detail::int16 int16_t
16 bit signed integer type.
Definition: fwd.hpp:297
-
detail::tvec1< f32, highp > highp_f32vec1
High single-precision floating-point vector of 1 component.
Definition: fwd.hpp:1666
-
highp_f32vec2 f32vec2
Default single-precision floating-point vector of 2 components.
Definition: fwd.hpp:2427
-
detail::tmat4x2< f32, lowp > lowp_f32mat4x2
Low single-precision floating-point 4x2 matrix.
Definition: fwd.hpp:1935
-
detail::tvec2< float, highp > highp_fvec2
High Single-precision floating-point vector of 2 components.
Definition: fwd.hpp:1621
-
detail::tvec1< float, highp > highp_vec1
High single-precision floating-point vector of 1 component.
Definition: fwd.hpp:1601
-
detail::tvec4< u32, highp > highp_u32vec4
High precision 32 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:1135
-
detail::uint16 highp_u16
Medium precision 16 bit unsigned integer type.
Definition: fwd.hpp:865
-
detail::tvec4< i8, lowp > lowp_i8vec4
Low precision 8 bit signed integer vector of 4 components type.
Definition: fwd.hpp:339
-
detail::tvec4< u32, lowp > lowp_u32vec4
Low precision 32 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:1101
-
highp_f64mat4x4 f64mat4x4
Default double-precision floating-point 4x4 matrix.
Definition: fwd.hpp:2578
-
highp_f64mat4x2 f64mat4x2
Default double-precision floating-point 4x2 matrix.
Definition: fwd.hpp:2570
-
detail::tvec2< i8, mediump > mediump_i8vec2
Medium precision 8 bit signed integer vector of 2 components type.
Definition: fwd.hpp:348
-
detail::float64 highp_float64_t
High 64 bit double-precision floating-point scalar.
Definition: fwd.hpp:1441
-
detail::tvec4< u16, lowp > lowp_u16vec4
Low precision 16 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:1021
-
highp_f32vec3 fvec3
Default single-precision floating-point vector of 3 components.
Definition: fwd.hpp:2361
-
detail::tvec3< u8, mediump > mediump_u8vec3
Medium precision 8 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:955
-
detail::tmat2x2< f64, lowp > lowp_f64mat2x2
Low double-precision floating-point 1x1 matrix.
Definition: fwd.hpp:2086
-
detail::int64 i64
64 bit signed integer type.
Definition: fwd.hpp:321
-
detail::tvec2< f32, highp > highp_f32vec2
High single-precision floating-point vector of 2 components.
Definition: fwd.hpp:1670
-
detail::tvec3< float, lowp > lowp_vec3
3 components vector of low single-precision floating-point numbers.
Definition: type_vec.hpp:190
-
detail::tvec2< u8, highp > highp_u8vec2
High precision 8 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:968
-
detail::int32 mediump_int32
Medium precision 32 bit signed integer type.
Definition: fwd.hpp:188
-
detail::tmat4x4< f32, highp > highp_fmat4x4
High single-precision floating-point 4x4 matrix.
Definition: fwd.hpp:1886
-
f32mat4x4 f32mat4
Default single-precision floating-point 4x4 matrix.
Definition: fwd.hpp:2483
-
detail::tmat2x4< f32, lowp > lowp_fmat2x4
Low single-precision floating-point 2x4 matrix.
Definition: fwd.hpp:1747
-
detail::int64 lowp_i64
Low precision 64 bit signed integer type.
Definition: fwd.hpp:176
-
detail::tvec3< float, highp > highp_vec3
3 components vector of high single-precision floating-point numbers.
Definition: type_vec.hpp:176
-
detail::tvec4< i16, mediump > mediump_i16vec4
Medium precision 16 bit signed integer vector of 4 components type.
Definition: fwd.hpp:435
-
detail::uint64 uint64
64 bit unsigned integer type.
Definition: type_int.hpp:97
-
highp_quat highp_fquat
Quaternion of high single-precision floating-point numbers.
Definition: fwd.hpp:85
-
detail::tvec2< i32, highp > highp_i32vec2
High precision 32 bit signed integer vector of 2 components type.
Definition: fwd.hpp:524
-
detail::int64 highp_int64
High precision 64 bit signed integer type.
Definition: fwd.hpp:240
-
detail::uint32 highp_uint32_t
Medium precision 32 bit unsigned integer type.
Definition: fwd.hpp:853
-
lowp_f64mat4x4 lowp_f64mat4
Low double-precision floating-point 4x4 matrix.
Definition: fwd.hpp:2134
-
detail::tquat< float, mediump > mediump_quat
Quaternion of medium single-precision floating-point numbers.
Definition: fwd.hpp:54
-
detail::tvec4< float, lowp > lowp_fvec4
Low single-precision floating-point vector of 4 components.
Definition: fwd.hpp:1561
-
detail::int16 mediump_int16_t
Medium precision 16 bit signed integer type.
Definition: fwd.hpp:200
-
detail::tmat3x3< f32, lowp > lowp_f32mat3x3
Low single-precision floating-point 3x3 matrix.
Definition: fwd.hpp:1927
-
detail::tvec3< u8, highp > highp_u8vec3
High precision 8 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:972
-
detail::tvec2< u64, highp > highp_u64vec2
High precision 64 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:1286
-
detail::int16 lowp_int16_t
Low precision 16 bit signed integer type.
Definition: fwd.hpp:152
-
detail::tmat2x3< f64, highp > highp_f64mat2x3
High double-precision floating-point 2x3 matrix.
Definition: fwd.hpp:2204
-
detail::tvec1< i16, highp > highp_i16vec1
High precision 16 bit signed integer scalar type.
Definition: fwd.hpp:440
-
detail::tvec3< u64, highp > highp_u64vec3
High precision 64 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:1290
-
detail::tmat3x2< f32, highp > highp_fmat3x2
High single-precision floating-point 3x2 matrix.
Definition: fwd.hpp:1866
-
highp_i8vec4 i8vec4
Default precision 8 bit signed integer vector of 4 components type.
Definition: fwd.hpp:400
-
detail::tmat4x3< f32, highp > highp_f32mat4x3
High single-precision floating-point 4x3 matrix.
Definition: fwd.hpp:2056
-
detail::tvec1< i32, lowp > lowp_i32vec1
Low precision 32 bit signed integer scalar type.
Definition: fwd.hpp:486
-
detail::tmat3x3< f64, lowp > lowp_f64mat3x3
Low double-precision floating-point 3x3 matrix.
Definition: fwd.hpp:2102
-
detail::int32 mediump_int32_t
Medium precision 32 bit signed integer type.
Definition: fwd.hpp:204
-
highp_f32mat4x3 f32mat4x3
Default single-precision floating-point 4x3 matrix.
Definition: fwd.hpp:2467
-
detail::uint16 lowp_uint16
Low precision 16 bit unsigned integer type.
Definition: fwd.hpp:731
-
highp_f32mat3x4 f32mat3x4
Default single-precision floating-point 3x4 matrix.
Definition: fwd.hpp:2459
-
mediump_f32mat4x4 mediump_f32mat4
Medium single-precision floating-point 4x4 matrix.
Definition: fwd.hpp:2017
-
detail::tmat3x3< f32, highp > highp_fmat3x3
High single-precision floating-point 3x3 matrix.
Definition: fwd.hpp:1870
-
detail::float32 mediump_float32_t
Medium 32 bit single-precision floating-point scalar.
Definition: fwd.hpp:1412
-
detail::tvec4< i16, lowp > lowp_i16vec4
Low precision 16 bit signed integer vector of 4 components type.
Definition: fwd.hpp:418
-
detail::int64 mediump_int64
Medium precision 64 bit signed integer type.
Definition: fwd.hpp:192
-
detail::tvec4< u8, highp > highp_u8vec4
High precision 8 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:976
-
highp_u32vec2 u32vec2
Default precision 32 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:1154
-
detail::int32 lowp_int32_t
Low precision 32 bit signed integer type.
Definition: fwd.hpp:156
-
detail::float64 lowp_float64_t
Low 64 bit double-precision floating-point scalar.
Definition: fwd.hpp:1342
-
highp_f64mat2x3 f64mat2x3
Default double-precision floating-point 2x3 matrix.
Definition: fwd.hpp:2550
-
detail::uint16 highp_uint16_t
Medium precision 16 bit unsigned integer type.
Definition: fwd.hpp:849
-
highp_f32vec4 f32vec4
Default single-precision floating-point vector of 4 components.
Definition: fwd.hpp:2435
-
detail::tmat4x4< f64, mediump > mediump_f64mat4x4
Medium double-precision floating-point 4x4 matrix.
Definition: fwd.hpp:2176
-
f64mat3x3 f64mat3
Default double-precision floating-point 3x3 matrix.
Definition: fwd.hpp:2586
-
detail::tvec3< i64, mediump > mediump_i64vec3
Medium precision 64 bit signed integer vector of 3 components type.
Definition: fwd.hpp:670
-
detail::uint64 highp_uint64
Medium precision 64 bit unsigned integer type.
Definition: fwd.hpp:841
-
detail::tvec1< float, mediump > mediump_vec1
Medium single-precision floating-point vector of 1 component.
Definition: fwd.hpp:1567
-
detail::tvec4< i32, lowp > lowp_i32vec4
Low precision 32 bit signed integer vector of 4 components type.
Definition: fwd.hpp:498
-
highp_dquat dquat
Quaternion of default double-precision floating-point numbers.
Definition: fwd.hpp:118
-
detail::uint64 highp_u64
Medium precision 64 bit unsigned integer type.
Definition: fwd.hpp:873
-
detail::uint8 lowp_uint8
Low precision 8 bit unsigned integer type.
Definition: fwd.hpp:727
-
highp_i16vec3 i16vec3
Default precision 16 bit signed integer vector of 3 components type.
Definition: fwd.hpp:476
-
detail::int16 i16
16 bit signed integer type.
Definition: fwd.hpp:313
-
detail::tvec1< u16, mediump > mediump_u16vec1
Medium precision 16 bit unsigned integer scalar type.
Definition: fwd.hpp:1026
-
detail::tvec1< u32, lowp > lowp_u32vec1
Low precision 32 bit unsigned integer scalar type.
Definition: fwd.hpp:1089
-
detail::uint64 lowp_u64
Low precision 64 bit unsigned integer type.
Definition: fwd.hpp:773
-
detail::uint64 lowp_uint64_t
Low precision 64 bit unsigned integer type.
Definition: fwd.hpp:756
-
detail::tvec1< i16, mediump > mediump_i16vec1
Medium precision 16 bit signed integer scalar type.
Definition: fwd.hpp:423
-
detail::tquat< f32, lowp > lowp_f32quat
Low single-precision floating-point quaternion.
Definition: fwd.hpp:2255
-
detail::int8 int8_t
8 bit signed integer type.
Definition: fwd.hpp:293
-
detail::tvec1< float, lowp > lowp_vec1
Low single-precision floating-point vector of 1 component.
Definition: fwd.hpp:1533
-
detail::tvec4< u8, mediump > mediump_u8vec4
Medium precision 8 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:959
-
highp_f64vec3 f64vec3
Default double-precision floating-point vector of 3 components.
Definition: fwd.hpp:2538
-
fmat4x4 fmat4
Default single-precision floating-point 4x4 matrix.
Definition: fwd.hpp:2413
-
detail::tmat4x3< f32, lowp > lowp_f32mat4x3
Low single-precision floating-point 4x3 matrix.
Definition: fwd.hpp:1939
-
detail::uint16 uint16_t
16 bit unsigned integer type.
Definition: fwd.hpp:899
-
detail::tmat2x3< f64, mediump > mediump_f64mat2x3
Medium double-precision floating-point 2x3 matrix.
Definition: fwd.hpp:2148
-
detail::tmat2x2< f32, lowp > lowp_f32mat2x2
Low single-precision floating-point 1x1 matrix.
Definition: fwd.hpp:1911
-
detail::uint8 lowp_u8
Low precision 8 bit unsigned integer type.
Definition: fwd.hpp:761
-
detail::tmat3x2< f64, highp > highp_f64mat3x2
High double-precision floating-point 3x2 matrix.
Definition: fwd.hpp:2212
-
detail::int8 i8
8 bit signed integer type.
Definition: fwd.hpp:309
-
detail::tvec1< i8, lowp > lowp_i8vec1
Low precision 8 bit signed integer scalar type.
Definition: fwd.hpp:327
-
highp_f32mat4x2 f32mat4x2
Default single-precision floating-point 4x2 matrix.
Definition: fwd.hpp:2463
-
detail::tmat3x3< f32, lowp > lowp_fmat3x3
Low single-precision floating-point 3x3 matrix.
Definition: fwd.hpp:1755
-
detail::tmat2x3< f32, mediump > mediump_f32mat2x3
Medium single-precision floating-point 2x3 matrix.
Definition: fwd.hpp:1973
-
highp_quat quat
Quaternion of default single-precision floating-point numbers.
Definition: fwd.hpp:69
-
detail::uint32 lowp_uint32_t
Low precision 32 bit unsigned integer type.
Definition: fwd.hpp:752
-
mediump_fmat4x4 mediump_fmat4
Medium single-precision floating-point 4x4 matrix.
Definition: fwd.hpp:1844
-
detail::tvec2< f64, mediump > mediump_f64vec2
Medium double-precision floating-point vector of 2 components.
Definition: fwd.hpp:1703
-
detail::int32 int32
32 bit signed integer type.
Definition: type_int.hpp:91
-
highp_i64vec4 i64vec4
Default precision 64 bit signed integer vector of 4 components type.
Definition: fwd.hpp:718
-
detail::tvec3< u16, lowp > lowp_u16vec3
Low precision 16 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:1017
-
detail::tvec2< u16, highp > highp_u16vec2
High precision 16 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:1047
-
f64mat4x4 f64mat4
Default double-precision floating-point 4x4 matrix.
Definition: fwd.hpp:2590
-
highp_f64mat2x4 f64mat2x4
Default double-precision floating-point 2x4 matrix.
Definition: fwd.hpp:2554
-
highp_f32mat4x2 fmat4x2
Default single-precision floating-point 4x2 matrix.
Definition: fwd.hpp:2393
-
detail::tvec1< float, highp > highp_fvec1
High single-precision floating-point vector of 1 component.
Definition: fwd.hpp:1617
-
detail::tmat2x2< f32, mediump > mediump_fmat2x2
Medium single-precision floating-point 1x1 matrix.
Definition: fwd.hpp:1796
-
highp_f32mat2x2 fmat2x2
Default single-precision floating-point 2x2 matrix.
Definition: fwd.hpp:2369
-
detail::tmat4x3< f64, lowp > lowp_f64mat4x3
Low double-precision floating-point 4x3 matrix.
Definition: fwd.hpp:2114
-
detail::int32 highp_i32
High precision 32 bit signed integer type.
Definition: fwd.hpp:268
-
detail::tvec1< f64, highp > highp_f64vec1
High double-precision floating-point vector of 1 component.
Definition: fwd.hpp:1715
-
fmat2x2 fmat2
Default single-precision floating-point 2x2 matrix.
Definition: fwd.hpp:2405
-
detail::tmat2x2< f32, highp > highp_fmat2x2
High single-precision floating-point 1x1 matrix.
Definition: fwd.hpp:1854
-
detail::tquat< float, highp > highp_quat
Quaternion of high single-precision floating-point numbers.
Definition: fwd.hpp:59
-
highp_u64vec2 u64vec2
Default precision 64 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:1313
-
detail::int64 highp_int64_t
High precision 64 bit signed integer type.
Definition: fwd.hpp:256
-
detail::int32 int32_t
32 bit signed integer type.
Definition: fwd.hpp:301
-
detail::tvec1< u8, highp > highp_u8vec1
High precision 8 bit unsigned integer scalar type.
Definition: fwd.hpp:964
-
detail::tvec3< u8, lowp > lowp_u8vec3
Low precision 8 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:938
-
detail::tmat2x4< f64, highp > highp_f64mat2x4
High double-precision floating-point 2x4 matrix.
Definition: fwd.hpp:2208
-
detail::tvec4< f32, mediump > mediump_f32vec4
Medium single-precision floating-point vector of 4 components.
Definition: fwd.hpp:1662
-
lowp_f32mat4x4 lowp_f32mat4
Low single-precision floating-point 4x4 matrix.
Definition: fwd.hpp:1959
-
detail::tvec3< f32, lowp > lowp_f32vec3
Low single-precision floating-point vector of 3 components.
Definition: fwd.hpp:1642
-
detail::tvec3< u64, mediump > mediump_u64vec3
Medium precision 64 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:1273
-
highp_f32mat3x2 f32mat3x2
Default single-precision floating-point 3x2 matrix.
Definition: fwd.hpp:2451
-
detail::tvec4< u32, mediump > mediump_u32vec4
Medium precision 32 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:1118
-
highp_f64mat4x3 f64mat4x3
Default double-precision floating-point 4x3 matrix.
Definition: fwd.hpp:2574
-
float32 highp_f32
High 32 bit single-precision floating-point scalar.
Definition: fwd.hpp:1445
-
detail::tmat4x4< f32, lowp > lowp_f32mat4x4
Low single-precision floating-point 4x4 matrix.
Definition: fwd.hpp:1943
-
detail::int64 lowp_int64_t
Low precision 64 bit signed integer type.
Definition: fwd.hpp:160
-
detail::tquat< f64, mediump > mediump_f64quat
Medium double-precision floating-point quaternion.
Definition: fwd.hpp:2267
-
detail::tvec2< u8, mediump > mediump_u8vec2
Medium precision 8 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:951
-
detail::int8 mediump_int8
Medium precision 8 bit signed integer type.
Definition: fwd.hpp:180
-
detail::tvec3< i8, lowp > lowp_i8vec3
Low precision 8 bit signed integer vector of 3 components type.
Definition: fwd.hpp:335
-
detail::tvec2< u32, mediump > mediump_u32vec2
Medium precision 32 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:1110
-
detail::float64 lowp_float64
Low 64 bit double-precision floating-point scalar.
Definition: fwd.hpp:1334
-
detail::float32 lowp_float32_t
Low 32 bit single-precision floating-point scalar.
Definition: fwd.hpp:1338
-
detail::uint32 highp_u32
Medium precision 32 bit unsigned integer type.
Definition: fwd.hpp:869
-
detail::tquat< f32, mediump > mediump_f32quat
Medium single-precision floating-point quaternion.
Definition: fwd.hpp:2263
-
highp_u16vec4 u16vec4
Default precision 16 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:1083
-
detail::int16 lowp_int16
Low precision 16 bit signed integer type.
Definition: fwd.hpp:136
-
detail::uint64 mediump_uint64_t
Medium precision 64 bit unsigned integer type.
Definition: fwd.hpp:807
-
highp_f32mat3x3 highp_f32mat3
High single-precision floating-point 3x3 matrix.
Definition: fwd.hpp:2072
-
highp_u16vec2 u16vec2
Default precision 16 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:1075
-
detail::uint64 u64
64 bit unsigned integer type.
Definition: fwd.hpp:923
-
detail::tvec1< i32, highp > highp_i32vec1
High precision 32 bit signed integer scalar type.
Definition: fwd.hpp:520
-
f64mat2x2 f64mat2
Default double-precision floating-point 2x2 matrix.
Definition: fwd.hpp:2582
-
detail::tmat4x2< f32, highp > highp_f32mat4x2
High single-precision floating-point 4x2 matrix.
Definition: fwd.hpp:2052
-
lowp_fmat4x4 lowp_fmat4
Low single-precision floating-point 4x4 matrix.
Definition: fwd.hpp:1787
-
detail::tmat2x3< f32, highp > highp_f32mat2x3
High single-precision floating-point 2x3 matrix.
Definition: fwd.hpp:2032
-
detail::float64 mediump_float64
Medium 64 bit double-precision floating-point scalar.
Definition: fwd.hpp:1408
-
detail::tvec1< u64, lowp > lowp_u64vec1
Low precision 64 bit unsigned integer scalar type.
Definition: fwd.hpp:1248
-
detail::tvec1< u8, mediump > mediump_u8vec1
Medium precision 8 bit unsigned integer scalar type.
Definition: fwd.hpp:947
-
lowp_f64mat2x2 lowp_f64mat2
Low double-precision floating-point 1x1 matrix.
Definition: fwd.hpp:2126
-
detail::tvec1< i64, lowp > lowp_i64vec1
Low precision 64 bit signed integer scalar type.
Definition: fwd.hpp:645
-
detail::tvec2< i8, lowp > lowp_i8vec2
Low precision 8 bit signed integer vector of 2 components type.
Definition: fwd.hpp:331
-
detail::tvec4< i8, mediump > mediump_i8vec4
Medium precision 8 bit signed integer vector of 4 components type.
Definition: fwd.hpp:356
-
detail::tmat3x2< f64, lowp > lowp_f64mat3x2
Low double-precision floating-point 3x2 matrix.
Definition: fwd.hpp:2098
-
mediump_f64mat2x2 mediump_f64mat2
Medium double-precision floating-point 1x1 matrix.
Definition: fwd.hpp:2184
-
highp_u64vec4 u64vec4
Default precision 64 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:1321
-
detail::tquat< double, lowp > lowp_dquat
Quaternion of low double-precision floating-point numbers.
Definition: fwd.hpp:96
-
detail::uint8 mediump_u8
Medium precision 8 bit unsigned integer type.
Definition: fwd.hpp:811
-
detail::tvec2< u32, highp > highp_u32vec2
High precision 32 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:1127
-
highp_f32mat4x4 f32mat4x4
Default single-precision floating-point 4x4 matrix.
Definition: fwd.hpp:2471
-
detail::float64 highp_float64
High 64 bit double-precision floating-point scalar.
Definition: fwd.hpp:1433
-
highp_f32mat2x3 fmat2x3
Default single-precision floating-point 2x3 matrix.
Definition: fwd.hpp:2373
-
detail::tvec4< i8, highp > highp_i8vec4
High precision 8 bit signed integer vector of 4 components type.
Definition: fwd.hpp:373
-
detail::tvec4< f64, highp > highp_f64vec4
High double-precision floating-point vector of 4 components.
Definition: fwd.hpp:1727
-
highp_f32mat4x4 fmat4x4
Default single-precision floating-point 4x4 matrix.
Definition: fwd.hpp:2401
-
detail::tquat< double, highp > highp_dquat
Quaternion of high double-precision floating-point numbers.
Definition: fwd.hpp:106
-
highp_f32mat4x4 highp_f32mat4
High single-precision floating-point 4x4 matrix.
Definition: fwd.hpp:2076
-
detail::tmat3x2< f32, lowp > lowp_fmat3x2
Low single-precision floating-point 3x2 matrix.
Definition: fwd.hpp:1751
-
detail::tvec2< f32, lowp > lowp_f32vec2
Low single-precision floating-point vector of 2 components.
Definition: fwd.hpp:1638
-
highp_u8vec2 u8vec2
Default precision 8 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:995
-
detail::tvec4< f32, lowp > lowp_f32vec4
Low single-precision floating-point vector of 4 components.
Definition: fwd.hpp:1646
-
detail::tvec3< f32, highp > highp_f32vec3
High single-precision floating-point vector of 3 components.
Definition: fwd.hpp:1674
-
highp_u32vec3 u32vec3
Default precision 32 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:1158
-
detail::tvec1< f32, mediump > mediump_f32vec1
Medium single-precision floating-point vector of 1 component.
Definition: fwd.hpp:1650
-
detail::uint8 uint8
8 bit unsigned integer type.
Definition: type_int.hpp:94
-
detail::int8 lowp_int8
Low precision 8 bit signed integer type.
Definition: fwd.hpp:132
-
detail::tmat3x3< f32, highp > highp_f32mat3x3
High single-precision floating-point 3x3 matrix.
Definition: fwd.hpp:2044
-
detail::uint32 mediump_u32
Medium precision 32 bit unsigned integer type.
Definition: fwd.hpp:819
-
detail::tvec2< i64, mediump > mediump_i64vec2
Medium precision 64 bit signed integer vector of 2 components type.
Definition: fwd.hpp:666
-
detail::uint32 lowp_uint32
Low precision 32 bit unsigned integer type.
Definition: fwd.hpp:735
-
highp_f64mat2x2 highp_f64mat2
High double-precision floating-point 1x1 matrix.
Definition: fwd.hpp:2240
-
detail::int32 lowp_i32
Low precision 32 bit signed integer type.
Definition: fwd.hpp:172
-
detail::tmat3x2< f32, lowp > lowp_f32mat3x2
Low single-precision floating-point 3x2 matrix.
Definition: fwd.hpp:1923
-
lowp_f32mat3x3 lowp_f32mat3
Low single-precision floating-point 3x3 matrix.
Definition: fwd.hpp:1955
-
detail::uint32 u32
32 bit unsigned integer type.
Definition: fwd.hpp:919
-
highp_i8vec2 i8vec2
Default precision 8 bit signed integer vector of 2 components type.
Definition: fwd.hpp:392
-
detail::tmat4x4< f32, highp > highp_f32mat4x4
High single-precision floating-point 4x4 matrix.
Definition: fwd.hpp:2060
-
highp_i32vec3 i32vec3
Default precision 32 bit signed integer vector of 3 components type.
Definition: fwd.hpp:555
-
detail::tmat2x2< f64, mediump > mediump_f64mat2x2
Medium double-precision floating-point 1x1 matrix.
Definition: fwd.hpp:2144
-
detail::tmat2x4< f32, lowp > lowp_f32mat2x4
Low single-precision floating-point 2x4 matrix.
Definition: fwd.hpp:1919
-
highp_f64mat2x2 f64mat2x2
Default double-precision floating-point 2x2 matrix.
Definition: fwd.hpp:2546
-
highp_f64mat4x4 highp_f64mat4
High double-precision floating-point 4x4 matrix.
Definition: fwd.hpp:2248
-
detail::tmat2x3< f32, lowp > lowp_f32mat2x3
Low single-precision floating-point 2x3 matrix.
Definition: fwd.hpp:1915
-
highp_f32vec1 f32vec1
Default single-precision floating-point vector of 1 components.
Definition: fwd.hpp:2423
-
detail::tmat2x3< f32, highp > highp_fmat2x3
High single-precision floating-point 2x3 matrix.
Definition: fwd.hpp:1858
-
detail::tmat4x4< f32, mediump > mediump_fmat4x4
Medium single-precision floating-point 4x4 matrix.
Definition: fwd.hpp:1828
-
detail::tmat4x3< f64, mediump > mediump_f64mat4x3
Medium double-precision floating-point 4x3 matrix.
Definition: fwd.hpp:2172
-
detail::tvec3< float, highp > highp_fvec3
High Single-precision floating-point vector of 3 components.
Definition: fwd.hpp:1625
-
detail::tvec3< f64, mediump > mediump_f64vec3
Medium double-precision floating-point vector of 3 components.
Definition: fwd.hpp:1707
-
detail::tvec1< u16, lowp > lowp_u16vec1
Low precision 16 bit unsigned integer scalar type.
Definition: fwd.hpp:1009
-
highp_f32mat2x4 fmat2x4
Default single-precision floating-point 2x4 matrix.
Definition: fwd.hpp:2377
-
highp_fmat3x3 highp_fmat3
High single-precision floating-point 3x3 matrix.
Definition: fwd.hpp:1898
-
detail::int64 highp_i64
High precision 64 bit signed integer type.
Definition: fwd.hpp:272
-
highp_float64_t float64_t
Default 64 bit double-precision floating-point scalar.
Definition: fwd.hpp:1519
-
detail::tmat4x2< f64, highp > highp_f64mat4x2
High double-precision floating-point 4x2 matrix.
Definition: fwd.hpp:2224
-
detail::tvec4< f32, highp > highp_f32vec4
High single-precision floating-point vector of 4 components.
Definition: fwd.hpp:1678
-
f32mat3x3 f32mat3
Default single-precision floating-point 3x3 matrix.
Definition: fwd.hpp:2479
-
detail::int8 highp_i8
High precision 8 bit signed integer type.
Definition: fwd.hpp:260
-
detail::tvec4< u64, mediump > mediump_u64vec4
Medium precision 64 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:1277
-
highp_i8vec3 i8vec3
Default precision 8 bit signed integer vector of 3 components type.
Definition: fwd.hpp:396
-
detail::tvec2< float, highp > highp_vec2
2 components vector of high single-precision floating-point numbers.
Definition: type_vec.hpp:65
-
detail::int32 mediump_i32
Medium precision 32 bit signed integer type.
Definition: fwd.hpp:220
-
detail::tvec2< u64, lowp > lowp_u64vec2
Low precision 64 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:1252
-
detail::tvec2< i16, highp > highp_i16vec2
High precision 16 bit signed integer vector of 2 components type.
Definition: fwd.hpp:444
-
detail::tvec1< u64, mediump > mediump_u64vec1
Medium precision 64 bit unsigned integer scalar type.
Definition: fwd.hpp:1265
-
detail::tvec2< float, mediump > mediump_fvec2
Medium Single-precision floating-point vector of 2 components.
Definition: fwd.hpp:1587
-
detail::tmat3x2< f32, highp > highp_f32mat3x2
High single-precision floating-point 3x2 matrix.
Definition: fwd.hpp:2040
-
detail::tvec2< i8, highp > highp_i8vec2
High precision 8 bit signed integer vector of 2 components type.
Definition: fwd.hpp:365
-
detail::tmat3x4< f32, lowp > lowp_f32mat3x4
Low single-precision floating-point 3x4 matrix.
Definition: fwd.hpp:1931
-
detail::tmat4x4< f64, lowp > lowp_f64mat4x4
Low double-precision floating-point 4x4 matrix.
Definition: fwd.hpp:2118
-
highp_f32quat f32quat
Default single-precision floating-point quaternion.
Definition: fwd.hpp:2487
-
highp_u8vec1 u8vec1
Default precision 8 bit unsigned integer scalar type.
Definition: fwd.hpp:991
-
detail::uint64 mediump_uint64
Medium precision 64 bit unsigned integer type.
Definition: fwd.hpp:791
-
highp_i32vec1 i32vec1
Default precision 32 bit signed integer scalar type.
Definition: fwd.hpp:547
-
detail::tvec2< float, lowp > lowp_fvec2
Low single-precision floating-point vector of 2 components.
Definition: fwd.hpp:1553
-
detail::tmat2x2< f32, highp > highp_f32mat2x2
High single-precision floating-point 1x1 matrix.
Definition: fwd.hpp:2028
-
detail::tvec4< f64, mediump > mediump_f64vec4
Medium double-precision floating-point vector of 4 components.
Definition: fwd.hpp:1711
-
lowp_f32mat2x2 lowp_f32mat2
Low single-precision floating-point 1x1 matrix.
Definition: fwd.hpp:1951
-
highp_u32vec4 u32vec4
Default precision 32 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:1162
-
detail::uint8 highp_u8
Medium precision 8 bit unsigned integer type.
Definition: fwd.hpp:861
-
highp_f32mat2x2 f32mat2x2
Default single-precision floating-point 2x2 matrix.
Definition: fwd.hpp:2439
-
detail::tmat3x2< f32, mediump > mediump_f32mat3x2
Medium single-precision floating-point 3x2 matrix.
Definition: fwd.hpp:1981
-
highp_i32vec4 i32vec4
Default precision 32 bit signed integer vector of 4 components type.
Definition: fwd.hpp:559
-
detail::uint8 mediump_uint8
Medium precision 8 bit unsigned integer type.
Definition: fwd.hpp:779
-
highp_i16vec4 i16vec4
Default precision 16 bit signed integer vector of 4 components type.
Definition: fwd.hpp:480
-
detail::tvec3< f32, mediump > mediump_f32vec3
Medium single-precision floating-point vector of 3 components.
Definition: fwd.hpp:1658
-
highp_float64_t f64
Default 64 bit double-precision floating-point scalar.
Definition: fwd.hpp:1527
-
detail::tmat3x4< f32, highp > highp_fmat3x4
High single-precision floating-point 3x4 matrix.
Definition: fwd.hpp:1874
-
detail::int8 mediump_i8
Medium precision 8 bit signed integer type.
Definition: fwd.hpp:212
-
detail::int64 mediump_i64
Medium precision 64 bit signed integer type.
Definition: fwd.hpp:224
-
detail::int16 highp_int16
High precision 16 bit signed integer type.
Definition: fwd.hpp:232
-
highp_f64vec2 f64vec2
Default double-precision floating-point vector of 2 components.
Definition: fwd.hpp:2534
-
mediump_fmat3x3 mediump_fmat3
Medium single-precision floating-point 3x3 matrix.
Definition: fwd.hpp:1840
-
detail::tvec3< f64, highp > highp_f64vec3
High double-precision floating-point vector of 3 components.
Definition: fwd.hpp:1723
-
highp_i8vec1 i8vec1
Default precision 8 bit signed integer scalar type.
Definition: fwd.hpp:388
-
detail::tvec2< float, lowp > lowp_vec2
2 components vector of low single-precision floating-point numbers.
Definition: type_vec.hpp:79
-
highp_f64mat3x2 f64mat3x2
Default double-precision floating-point 3x2 matrix.
Definition: fwd.hpp:2558
-
detail::tmat3x4< f32, mediump > mediump_f32mat3x4
Medium single-precision floating-point 3x4 matrix.
Definition: fwd.hpp:1989
-
float64 mediump_f64
Medium 64 bit double-precision floating-point scalar.
Definition: fwd.hpp:1424
-
detail::tmat2x3< f32, lowp > lowp_fmat2x3
Low single-precision floating-point 2x3 matrix.
Definition: fwd.hpp:1743
-
highp_f32mat2x2 highp_f32mat2
High single-precision floating-point 1x1 matrix.
Definition: fwd.hpp:2068
-
detail::uint32 lowp_u32
Low precision 32 bit unsigned integer type.
Definition: fwd.hpp:769
-
detail::int16 highp_i16
High precision 16 bit signed integer type.
Definition: fwd.hpp:264
-
detail::int8 highp_int8
High precision 8 bit signed integer type.
Definition: fwd.hpp:228
-
detail::tvec2< i64, highp > highp_i64vec2
High precision 64 bit signed integer vector of 2 components type.
Definition: fwd.hpp:683
-
float32 lowp_f32
Low 32 bit single-precision floating-point scalar.
Definition: fwd.hpp:1346
-
detail::tvec4< u16, mediump > mediump_u16vec4
Medium precision 16 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:1038
-
detail::tvec3< i8, mediump > mediump_i8vec3
Medium precision 8 bit signed integer vector of 3 components type.
Definition: fwd.hpp:352
-
detail::tmat2x3< f32, mediump > mediump_fmat2x3
Medium single-precision floating-point 2x3 matrix.
Definition: fwd.hpp:1800
-
detail::tmat3x4< f64, highp > highp_f64mat3x4
High double-precision floating-point 3x4 matrix.
Definition: fwd.hpp:2220
-
detail::tmat4x3< f32, highp > highp_fmat4x3
High single-precision floating-point 4x3 matrix.
Definition: fwd.hpp:1882
-
detail::tvec1< i64, highp > highp_i64vec1
High precision 64 bit signed integer scalar type.
Definition: fwd.hpp:679
-
detail::tmat4x2< f32, mediump > mediump_fmat4x2
Medium single-precision floating-point 4x2 matrix.
Definition: fwd.hpp:1820
-
detail::tvec4< i32, highp > highp_i32vec4
High precision 32 bit signed integer vector of 4 components type.
Definition: fwd.hpp:532
-
detail::tmat2x4< f32, highp > highp_f32mat2x4
High single-precision floating-point 2x4 matrix.
Definition: fwd.hpp:2036
-
detail::tmat3x3< f32, mediump > mediump_f32mat3x3
Medium single-precision floating-point 3x3 matrix.
Definition: fwd.hpp:1985
-
detail::tvec3< i16, mediump > mediump_i16vec3
Medium precision 16 bit signed integer vector of 3 components type.
Definition: fwd.hpp:431
-
mediump_quat mediump_fquat
Quaternion of medium single-precision floating-point numbers.
Definition: fwd.hpp:80
-
highp_u32vec1 u32vec1
Default precision 32 bit unsigned integer scalar type.
Definition: fwd.hpp:1150
-
detail::tmat3x4< f32, highp > highp_f32mat3x4
High single-precision floating-point 3x4 matrix.
Definition: fwd.hpp:2048
-
detail::uint16 u16
16 bit unsigned integer type.
Definition: fwd.hpp:915
-
fmat3x3 fmat3
Default single-precision floating-point 3x3 matrix.
Definition: fwd.hpp:2409
-
detail::tvec1< f64, mediump > mediump_f64vec1
Medium double-precision floating-point vector of 1 component.
Definition: fwd.hpp:1699
-
detail::int16 lowp_i16
Low precision 16 bit signed integer type.
Definition: fwd.hpp:168
-
detail::tmat2x4< f64, lowp > lowp_f64mat2x4
Low double-precision floating-point 2x4 matrix.
Definition: fwd.hpp:2094
-
detail::tvec3< i32, highp > highp_i32vec3
High precision 32 bit signed integer vector of 3 components type.
Definition: fwd.hpp:528
-
highp_f32mat2x3 f32mat2x3
Default single-precision floating-point 2x3 matrix.
Definition: fwd.hpp:2443
-
mediump_f32mat3x3 mediump_f32mat3
Medium single-precision floating-point 3x3 matrix.
Definition: fwd.hpp:2013
-
detail::uint16 uint16
16 bit unsigned integer type.
Definition: type_int.hpp:95
-
highp_f32vec4 fvec4
Default single-precision floating-point vector of 4 components.
Definition: fwd.hpp:2365
-
detail::tmat3x4< f32, lowp > lowp_fmat3x4
Low single-precision floating-point 3x4 matrix.
Definition: fwd.hpp:1759
-
detail::tmat4x4< f64, highp > highp_f64mat4x4
High double-precision floating-point 4x4 matrix.
Definition: fwd.hpp:2232
-
highp_f64quat f64quat
Default double-precision floating-point quaternion.
Definition: fwd.hpp:2594
-
detail::tvec2< i16, lowp > lowp_i16vec2
Low precision 16 bit signed integer vector of 2 components type.
Definition: fwd.hpp:410
-
detail::tquat< float, lowp > lowp_quat
Quaternion of low single-precision floating-point numbers.
Definition: fwd.hpp:49
-
detail::tvec1< u32, highp > highp_u32vec1
High precision 32 bit unsigned integer scalar type.
Definition: fwd.hpp:1123
-
detail::tvec4< i32, mediump > mediump_i32vec4
Medium precision 32 bit signed integer vector of 4 components type.
Definition: fwd.hpp:515
-
detail::int8 highp_int8_t
High precision 8 bit signed integer type.
Definition: fwd.hpp:244
-
detail::tvec3< u32, lowp > lowp_u32vec3
Low precision 32 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:1097
-
highp_f32mat2x4 f32mat2x4
Default single-precision floating-point 2x4 matrix.
Definition: fwd.hpp:2447
-
f32mat2x2 f32mat2
Default single-precision floating-point 2x2 matrix.
Definition: fwd.hpp:2475
-
detail::tvec2< u16, mediump > mediump_u16vec2
Medium precision 16 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:1030
-
detail::tvec3< u32, mediump > mediump_u32vec3
Medium precision 32 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:1114
-
detail::tvec4< float, lowp > lowp_vec4
4 components vector of low single-precision floating-point numbers.
Definition: type_vec.hpp:294
-
highp_f64vec4 f64vec4
Default double-precision floating-point vector of 4 components.
Definition: fwd.hpp:2542
-
detail::tvec2< float, mediump > mediump_vec2
2 components vector of medium single-precision floating-point numbers.
Definition: type_vec.hpp:72
-
detail::int64 lowp_int64
Low precision 64 bit signed integer type.
Definition: fwd.hpp:144
-
detail::tmat3x3< f64, mediump > mediump_f64mat3x3
Medium double-precision floating-point 3x3 matrix.
Definition: fwd.hpp:2160
-
detail::uint64 highp_uint64_t
Medium precision 64 bit unsigned integer type.
Definition: fwd.hpp:857
-
detail::tquat< double, mediump > mediump_dquat
Quaternion of medium double-precision floating-point numbers.
Definition: fwd.hpp:101
-
detail::tmat2x4< f32, highp > highp_fmat2x4
High single-precision floating-point 2x4 matrix.
Definition: fwd.hpp:1862
-
double float64
Default 64 bit double-precision floating-point scalar.
Definition: type_float.hpp:82
-
detail::tvec2< f32, mediump > mediump_f32vec2
Medium single-precision floating-point vector of 2 components.
Definition: fwd.hpp:1654
-
highp_f32mat3x3 fmat3x3
Default single-precision floating-point 3x3 matrix.
Definition: fwd.hpp:2385
-
detail::uint8 highp_uint8
Medium precision 8 bit unsigned integer type.
Definition: fwd.hpp:829
-
detail::int8 lowp_i8
Low precision 8 bit signed integer type.
Definition: fwd.hpp:164
-
detail::tmat2x2< f64, highp > highp_f64mat2x2
High double-precision floating-point 1x1 matrix.
Definition: fwd.hpp:2200
-
detail::tvec2< f64, highp > highp_f64vec2
High double-precision floating-point vector of 2 components.
Definition: fwd.hpp:1719
-
detail::tvec3< u16, highp > highp_u16vec3
High precision 16 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:1051
-
detail::tvec1< float, mediump > mediump_fvec1
Medium single-precision floating-point vector of 1 component.
Definition: fwd.hpp:1583
-
detail::tvec1< f32, lowp > lowp_f32vec1
Low single-precision floating-point vector of 1 component.
Definition: fwd.hpp:1634
-
detail::tvec4< i16, highp > highp_i16vec4
High precision 16 bit signed integer vector of 4 components type.
Definition: fwd.hpp:452
-
detail::tvec4< i64, highp > highp_i64vec4
High precision 64 bit signed integer vector of 4 components type.
Definition: fwd.hpp:691
-
detail::tvec1< u32, mediump > mediump_u32vec1
Medium precision 32 bit unsigned integer scalar type.
Definition: fwd.hpp:1106
-
detail::tvec4< i64, mediump > mediump_i64vec4
Medium precision 64 bit signed integer vector of 4 components type.
Definition: fwd.hpp:674
-
detail::tvec2< i32, lowp > lowp_i32vec2
Low precision 32 bit signed integer vector of 2 components type.
Definition: fwd.hpp:490
-
highp_f32mat3x3 f32mat3x3
Default single-precision floating-point 3x3 matrix.
Definition: fwd.hpp:2455
-
highp_f64mat3x3 f64mat3x3
Default double-precision floating-point 3x3 matrix.
Definition: fwd.hpp:2562
-
highp_f32mat3x4 fmat3x4
Default single-precision floating-point 3x4 matrix.
Definition: fwd.hpp:2389
-
detail::tvec4< float, highp > highp_vec4
4 components vector of high single-precision floating-point numbers.
Definition: type_vec.hpp:282
-
detail::tvec4< u8, lowp > lowp_u8vec4
Low precision 8 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:942
-
detail::tmat4x2< f64, lowp > lowp_f64mat4x2
Low double-precision floating-point 4x2 matrix.
Definition: fwd.hpp:2110
-
detail::tmat4x2< f64, mediump > mediump_f64mat4x2
Medium double-precision floating-point 4x2 matrix.
Definition: fwd.hpp:2168
-
highp_f32mat3x2 fmat3x2
Default single-precision floating-point 3x2 matrix.
Definition: fwd.hpp:2381
-
detail::int16 mediump_i16
Medium precision 16 bit signed integer type.
Definition: fwd.hpp:216
-
highp_i64vec3 i64vec3
Default precision 64 bit signed integer vector of 3 components type.
Definition: fwd.hpp:714
-
detail::uint16 mediump_uint16_t
Medium precision 16 bit unsigned integer type.
Definition: fwd.hpp:799
-
detail::tvec3< float, mediump > mediump_vec3
3 components vector of medium single-precision floating-point numbers.
Definition: type_vec.hpp:183
+
42 #pragma once
+
43 
+
44 // Dependency:
+
45 #include "../glm.hpp"
+
46 
+
47 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+
48 # pragma message("GLM: GLM_GTX_handed_coordinate_space extension included")
+
49 #endif
+
50 
+
51 namespace glm
+
52 {
+
55 
+
58  template <typename T, precision P>
+
59  GLM_FUNC_DECL bool rightHanded(
+
60  tvec3<T, P> const & tangent,
+
61  tvec3<T, P> const & binormal,
+
62  tvec3<T, P> const & normal);
+
63 
+
66  template <typename T, precision P>
+
67  GLM_FUNC_DECL bool leftHanded(
+
68  tvec3<T, P> const & tangent,
+
69  tvec3<T, P> const & binormal,
+
70  tvec3<T, P> const & normal);
+
71 
+
73 }// namespace glm
+
74 
+
75 #include "handed_coordinate_space.inl"
+
GLM_FUNC_DECL bool rightHanded(tvec3< T, P > const &tangent, tvec3< T, P > const &binormal, tvec3< T, P > const &normal)
Return if a trihedron right handed or not.
+
Definition: _noise.hpp:39
+
GLM_FUNC_DECL bool leftHanded(tvec3< T, P > const &tangent, tvec3< T, P > const &binormal, tvec3< T, P > const &normal)
Return if a trihedron left handed or not.
diff --git a/doc/api/a00042.html b/doc/api/a00042.html index 67521fe5..6ba6343e 100644 --- a/doc/api/a00042.html +++ b/doc/api/a00042.html @@ -3,8 +3,8 @@ - -GLM: geometric.hpp File Reference + +0.9.6: integer.hpp File Reference @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,32 +41,54 @@
+
+Functions
-
geometric.hpp File Reference
+
gtc/integer.hpp File Reference

Go to the source code of this file.

+ + + + + + + + + + + + + + +

+Functions

template<typename genIUType >
GLM_FUNC_DECL genIUType log2 (genIUType x)
 
template<typename genIUType >
GLM_FUNC_DECL genIUType mod (genIUType x, genIUType y)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > mod (vecType< T, P > const &x, T y)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > mod (vecType< T, P > const &x, vecType< T, P > const &y)
 

Detailed Description

OpenGL Mathematics (glm.g-truc.net)

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM Core

-
Date
2013-12-24 / 2013-12-24
-
Author
Christophe Riccio
+

GLM_GTC_integer

+
Date
2014-11-17 / 2014-11-17
+
Author
Christophe Riccio
+
See also
GLM Core (dependence)
+
+GLM_GTC_integer (dependence)
-

Definition in file geometric.hpp.

+

Definition in file gtc/integer.hpp.

diff --git a/doc/api/a00042_source.html b/doc/api/a00042_source.html index 0a2989c3..707c8963 100644 --- a/doc/api/a00042_source.html +++ b/doc/api/a00042_source.html @@ -3,8 +3,8 @@ - -GLM: geometric.hpp Source File + +0.9.6: integer.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,27 +41,56 @@
-
geometric.hpp
+
gtc/integer.hpp
Go to the documentation of this file.
1 
-
29 #ifndef GLM_GEOMETRIC_INCLUDED
-
30 #define GLM_GEOMETRIC_INCLUDED
-
31 
-
32 #include "detail/func_geometric.hpp"
-
33 
-
34 #endif//GLM_GEOMETRIC_INCLUDED
+
43 #pragma once
+
44 
+
45 // Dependencies
+
46 #include "../detail/setup.hpp"
+
47 #include "../detail/precision.hpp"
+
48 #include "../detail/func_common.hpp"
+
49 #include "../detail/func_integer.hpp"
+
50 #include "../detail/func_exponential.hpp"
+
51 #include <limits>
+
52 
+
53 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+
54 # pragma message("GLM: GLM_GTC_integer extension included")
+
55 #endif
+
56 
+
57 namespace glm
+
58 {
+
61 
+
64  template <typename genIUType>
+
65  GLM_FUNC_DECL genIUType log2(genIUType x);
+
66 
+
75  template <typename genIUType>
+
76  GLM_FUNC_DECL genIUType mod(genIUType x, genIUType y);
+
77 
+
87  template <typename T, precision P, template <typename, precision> class vecType>
+
88  GLM_FUNC_DECL vecType<T, P> mod(vecType<T, P> const & x, T y);
+
89 
+
99  template <typename T, precision P, template <typename, precision> class vecType>
+
100  GLM_FUNC_DECL vecType<T, P> mod(vecType<T, P> const & x, vecType<T, P> const & y);
+
101 
+
103 } //namespace glm
+
104 
+
105 #include "integer.inl"
+
GLM_FUNC_DECL genIUType log2(genIUType x)
Returns the log2 of x for integer values.
+
Definition: _noise.hpp:39
+
GLM_FUNC_DECL genIUType mod(genIUType x, genIUType y)
Modulus.
diff --git a/doc/api/a00043.html b/doc/api/a00043.html index 66e956ed..bd2a439a 100644 --- a/doc/api/a00043.html +++ b/doc/api/a00043.html @@ -3,8 +3,8 @@ - -GLM: glm.hpp File Reference + +0.9.6: integer.hpp File Reference @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,38 +41,65 @@
+
+Typedefs | +Functions
-
glm.hpp File Reference
+
gtx/integer.hpp File Reference

Go to the source code of this file.

+ + + + +

+Typedefs

typedef signed int sint
 
+ + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename genType >
GLM_FUNC_DECL genType factorial (genType const &x)
 
GLM_FUNC_DECL unsigned int floor_log2 (unsigned int x)
 
GLM_FUNC_DECL int mod (int x, int y)
 
GLM_FUNC_DECL uint mod (uint x, uint y)
 
GLM_FUNC_DECL uint nlz (uint x)
 
GLM_FUNC_DECL int pow (int x, int y)
 
GLM_FUNC_DECL uint pow (uint x, uint y)
 
GLM_FUNC_DECL int sqrt (int x)
 
GLM_FUNC_DECL uint sqrt (uint x)
 

Detailed Description

OpenGL Mathematics (glm.g-truc.net)

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-
Date
2009-05-01 / 2011-05-16
+

GLM_GTX_integer

+
Date
2005-12-24 / 2011-10-13
Author
Christophe Riccio
-

GLM Core (Dependence)

-

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM Core

-
Date
2005-01-14 / 2011-10-24
-
Author
Christophe Riccio
+
See also
GLM Core (dependence)
-

Definition in file glm.hpp.

+

Definition in file gtx/integer.hpp.

diff --git a/doc/api/a00043_source.html b/doc/api/a00043_source.html index a8a518be..d848ea76 100644 --- a/doc/api/a00043_source.html +++ b/doc/api/a00043_source.html @@ -3,8 +3,8 @@ - -GLM: glm.hpp Source File + +0.9.6: integer.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,81 +41,67 @@
-
glm.hpp
+
gtx/integer.hpp
Go to the documentation of this file.
1 
-
78 #include "detail/_fixes.hpp"
-
79 
-
80 #ifndef GLM_INCLUDED
-
81 #define GLM_INCLUDED
-
82 
-
83 #include <cmath>
-
84 #include <climits>
-
85 #include <cfloat>
-
86 #include <limits>
-
87 #include <cassert>
-
88 #include "fwd.hpp"
+
42 #pragma once
+
43 
+
44 // Dependency:
+
45 #include "../glm.hpp"
+
46 #include "../gtc/integer.hpp"
+
47 
+
48 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+
49 # pragma message("GLM: GLM_GTX_integer extension included")
+
50 #endif
+
51 
+
52 namespace glm
+
53 {
+
56 
+
59  GLM_FUNC_DECL int pow(int x, int y);
+
60 
+
63  GLM_FUNC_DECL int sqrt(int x);
+
64 
+
67  GLM_FUNC_DECL unsigned int floor_log2(unsigned int x);
+
68 
+
71  GLM_FUNC_DECL int mod(int x, int y);
+
72 
+
75  template <typename genType>
+
76  GLM_FUNC_DECL genType factorial(genType const & x);
+
77 
+
80  typedef signed int sint;
+
81 
+
84  GLM_FUNC_DECL uint pow(uint x, uint y);
+
85 
+
88  GLM_FUNC_DECL uint sqrt(uint x);
89 
-
90 #if(defined(GLM_MESSAGES) && !defined(GLM_MESSAGE_CORE_INCLUDED_DISPLAYED))
-
91 # define GLM_MESSAGE_CORE_INCLUDED_DISPLAYED
-
92 # pragma message("GLM: Core library included")
-
93 #endif//GLM_MESSAGE
-
94 
-
95 #include "vec2.hpp"
-
96 #include "vec3.hpp"
-
97 #include "vec4.hpp"
-
98 #include "mat2x2.hpp"
-
99 #include "mat2x3.hpp"
-
100 #include "mat2x4.hpp"
-
101 #include "mat3x2.hpp"
-
102 #include "mat3x3.hpp"
-
103 #include "mat3x4.hpp"
-
104 #include "mat4x2.hpp"
-
105 #include "mat4x3.hpp"
-
106 #include "mat4x4.hpp"
-
107 
-
108 #include "trigonometric.hpp"
-
109 #include "exponential.hpp"
-
110 #include "common.hpp"
-
111 #include "packing.hpp"
-
112 #include "geometric.hpp"
-
113 #include "matrix.hpp"
-
114 #include "vector_relational.hpp"
-
115 #include "integer.hpp"
-
116 
-
117 #endif//GLM_INCLUDED
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
+
92  GLM_FUNC_DECL uint mod(uint x, uint y);
+
93 
+
96  GLM_FUNC_DECL uint nlz(uint x);
+
97 
+
99 }//namespace glm
+
100 
+
101 #include "integer.inl"
+
GLM_FUNC_DECL uint mod(uint x, uint y)
Modulus.
+
signed int sint
32bit signed integer.
Definition: gtx/integer.hpp:80
+
unsigned int uint
Unsigned integer type.
Definition: type_int.hpp:306
+
GLM_FUNC_DECL uint pow(uint x, uint y)
Returns x raised to the y power.
+
GLM_FUNC_DECL uint nlz(uint x)
Returns the number of leading zeros.
+
Definition: _noise.hpp:39
+
GLM_FUNC_DECL uint sqrt(uint x)
Returns the positive square root of x.
+
GLM_FUNC_DECL genType factorial(genType const &x)
Return the factorial value of a number (!12 max, integer only) From GLM_GTX_integer extension...
+
GLM_FUNC_DECL unsigned int floor_log2(unsigned int x)
Returns the floor log2 of x.
diff --git a/doc/api/a00044.html b/doc/api/a00044.html index ac2b3516..b2d05875 100644 --- a/doc/api/a00044.html +++ b/doc/api/a00044.html @@ -3,8 +3,8 @@ - -GLM: gradient_paint.hpp File Reference + +0.9.6: integer.hpp File Reference @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,53 +41,33 @@
-
-Namespaces | -Functions
-
gradient_paint.hpp File Reference
+
integer.hpp File Reference

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
- - - - - - - -

-Functions

template<typename T , precision P>
linearGradient (detail::tvec2< T, P > const &Point0, detail::tvec2< T, P > const &Point1, detail::tvec2< T, P > const &Position)
 
template<typename T , precision P>
radialGradient (detail::tvec2< T, P > const &Center, T const &Radius, detail::tvec2< T, P > const &Focal, detail::tvec2< T, P > const &Position)
 

Detailed Description

OpenGL Mathematics (glm.g-truc.net)

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_gradient_paint

-
Date
2009-03-06 / 2011-06-07
-
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
-
-GLM_GTX_optimum_pow (dependence)
+

GLM Core

+
Date
2013-12-24 / 2013-12-24
+
Author
Christophe Riccio
-

Definition in file gradient_paint.hpp.

+

Definition in file integer.hpp.

diff --git a/doc/api/a00044_source.html b/doc/api/a00044_source.html index f26b6a08..820479e2 100644 --- a/doc/api/a00044_source.html +++ b/doc/api/a00044_source.html @@ -3,8 +3,8 @@ - -GLM: gradient_paint.hpp Source File + +0.9.6: integer.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,55 +41,25 @@
-
gradient_paint.hpp
+
integer.hpp
Go to the documentation of this file.
1 
-
38 #ifndef GLM_GTX_gradient_paint
-
39 #define GLM_GTX_gradient_paint
-
40 
-
41 // Dependency:
-
42 #include "../glm.hpp"
-
43 #include "../gtx/optimum_pow.hpp"
-
44 
-
45 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
46 # pragma message("GLM: GLM_GTX_gradient_paint extension included")
-
47 #endif
-
48 
-
49 namespace glm
-
50 {
-
53 
-
56  template <typename T, precision P>
- -
58  detail::tvec2<T, P> const & Center,
-
59  T const & Radius,
-
60  detail::tvec2<T, P> const & Focal,
-
61  detail::tvec2<T, P> const & Position);
-
62 
-
65  template <typename T, precision P>
- -
67  detail::tvec2<T, P> const & Point0,
-
68  detail::tvec2<T, P> const & Point1,
-
69  detail::tvec2<T, P> const & Position);
-
70 
-
72 }// namespace glm
-
73 
-
74 #include "gradient_paint.inl"
-
75 
-
76 #endif//GLM_GTX_gradient_paint
-
T radialGradient(detail::tvec2< T, P > const &Center, T const &Radius, detail::tvec2< T, P > const &Focal, detail::tvec2< T, P > const &Position)
Return a color from a radial gradient.
-
T linearGradient(detail::tvec2< T, P > const &Point0, detail::tvec2< T, P > const &Point1, detail::tvec2< T, P > const &Position)
Return a color from a linear gradient.
+
33 #pragma once
+
34 
+
35 #include "detail/func_integer.hpp"
+
OpenGL Mathematics (glm.g-truc.net)
diff --git a/doc/api/a00045.html b/doc/api/a00045.html index 350df17f..e94268b1 100644 --- a/doc/api/a00045.html +++ b/doc/api/a00045.html @@ -3,8 +3,8 @@ - -GLM: handed_coordinate_space.hpp File Reference + +0.9.6: intersect.hpp File Reference @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,51 +41,60 @@
-Namespaces | Functions
-
handed_coordinate_space.hpp File Reference
+
intersect.hpp File Reference

Go to the source code of this file.

- - - -

-Namespaces

 glm
 
- - - - - - + + + + + + + + + + + + + + + + + +

Functions

template<typename T , precision P>
bool leftHanded (detail::tvec3< T, P > const &tangent, detail::tvec3< T, P > const &binormal, detail::tvec3< T, P > const &normal)
 
template<typename T , precision P>
bool rightHanded (detail::tvec3< T, P > const &tangent, detail::tvec3< T, P > const &binormal, detail::tvec3< T, P > const &normal)
 
template<typename genType >
GLM_FUNC_DECL bool intersectLineSphere (genType const &point0, genType const &point1, genType const &sphereCenter, typename genType::value_type sphereRadius, genType &intersectionPosition1, genType &intersectionNormal1, genType &intersectionPosition2=genType(), genType &intersectionNormal2=genType())
 
template<typename genType >
GLM_FUNC_DECL bool intersectLineTriangle (genType const &orig, genType const &dir, genType const &vert0, genType const &vert1, genType const &vert2, genType &position)
 
template<typename genType >
GLM_FUNC_DECL bool intersectRayPlane (genType const &orig, genType const &dir, genType const &planeOrig, genType const &planeNormal, typename genType::value_type &intersectionDistance)
 
template<typename genType >
GLM_FUNC_DECL bool intersectRaySphere (genType const &rayStarting, genType const &rayNormalizedDirection, genType const &sphereCenter, typename genType::value_type const sphereRadiusSquered, typename genType::value_type &intersectionDistance)
 
template<typename genType >
GLM_FUNC_DECL bool intersectRaySphere (genType const &rayStarting, genType const &rayNormalizedDirection, genType const &sphereCenter, const typename genType::value_type sphereRadius, genType &intersectionPosition, genType &intersectionNormal)
 
template<typename genType >
GLM_FUNC_DECL bool intersectRayTriangle (genType const &orig, genType const &dir, genType const &vert0, genType const &vert1, genType const &vert2, genType &baryPosition)
 

Detailed Description

OpenGL Mathematics (glm.g-truc.net)

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_handed_coordinate_space

-
Date
2005-12-21 / 2011-06-07
+

GLM_GTX_intersect

+
Date
2007-04-03 / 2011-06-07
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
+
See also
GLM Core (dependence)
+
+GLM_GTX_closest_point (dependence)
-

Definition in file handed_coordinate_space.hpp.

+

Definition in file intersect.hpp.

diff --git a/doc/api/a00045_source.html b/doc/api/a00045_source.html index 34418437..a9944976 100644 --- a/doc/api/a00045_source.html +++ b/doc/api/a00045_source.html @@ -3,8 +3,8 @@ - -GLM: handed_coordinate_space.hpp Source File + +0.9.6: intersect.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,53 +41,80 @@
-
handed_coordinate_space.hpp
+
intersect.hpp
Go to the documentation of this file.
1 
-
38 #ifndef GLM_GTX_handed_coordinate_space
-
39 #define GLM_GTX_handed_coordinate_space
-
40 
-
41 // Dependency:
-
42 #include "../glm.hpp"
-
43 
-
44 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
45 # pragma message("GLM: GLM_GTX_handed_coordinate_space extension included")
-
46 #endif
-
47 
-
48 namespace glm
-
49 {
+
43 #pragma once
+
44 
+
45 // Dependency:
+
46 #include "../glm.hpp"
+
47 #include "../gtx/closest_point.hpp"
+
48 
+
49 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+
50 # pragma message("GLM: GLM_GTX_closest_point extension included")
+
51 #endif
52 
-
55  template <typename T, precision P>
-
56  bool rightHanded(
-
57  detail::tvec3<T, P> const & tangent,
-
58  detail::tvec3<T, P> const & binormal,
-
59  detail::tvec3<T, P> const & normal);
-
60 
-
63  template <typename T, precision P>
-
64  bool leftHanded(
-
65  detail::tvec3<T, P> const & tangent,
-
66  detail::tvec3<T, P> const & binormal,
-
67  detail::tvec3<T, P> const & normal);
-
68 
-
70 }// namespace glm
-
71 
-
72 #include "handed_coordinate_space.inl"
-
73 
-
74 #endif//GLM_GTX_handed_coordinate_space
-
bool leftHanded(detail::tvec3< T, P > const &tangent, detail::tvec3< T, P > const &binormal, detail::tvec3< T, P > const &normal)
Return if a trihedron left handed or not.
-
bool rightHanded(detail::tvec3< T, P > const &tangent, detail::tvec3< T, P > const &binormal, detail::tvec3< T, P > const &normal)
Return if a trihedron right handed or not.
+
53 namespace glm
+
54 {
+
57 
+
61  template <typename genType>
+
62  GLM_FUNC_DECL bool intersectRayPlane(
+
63  genType const & orig, genType const & dir,
+
64  genType const & planeOrig, genType const & planeNormal,
+
65  typename genType::value_type & intersectionDistance);
+
66 
+
69  template <typename genType>
+
70  GLM_FUNC_DECL bool intersectRayTriangle(
+
71  genType const & orig, genType const & dir,
+
72  genType const & vert0, genType const & vert1, genType const & vert2,
+
73  genType & baryPosition);
+
74 
+
77  template <typename genType>
+
78  GLM_FUNC_DECL bool intersectLineTriangle(
+
79  genType const & orig, genType const & dir,
+
80  genType const & vert0, genType const & vert1, genType const & vert2,
+
81  genType & position);
+
82 
+
86  template <typename genType>
+
87  GLM_FUNC_DECL bool intersectRaySphere(
+
88  genType const & rayStarting, genType const & rayNormalizedDirection,
+
89  genType const & sphereCenter, typename genType::value_type const sphereRadiusSquered,
+
90  typename genType::value_type & intersectionDistance);
+
91 
+
94  template <typename genType>
+
95  GLM_FUNC_DECL bool intersectRaySphere(
+
96  genType const & rayStarting, genType const & rayNormalizedDirection,
+
97  genType const & sphereCenter, const typename genType::value_type sphereRadius,
+
98  genType & intersectionPosition, genType & intersectionNormal);
+
99 
+
102  template <typename genType>
+
103  GLM_FUNC_DECL bool intersectLineSphere(
+
104  genType const & point0, genType const & point1,
+
105  genType const & sphereCenter, typename genType::value_type sphereRadius,
+
106  genType & intersectionPosition1, genType & intersectionNormal1,
+
107  genType & intersectionPosition2 = genType(), genType & intersectionNormal2 = genType());
+
108 
+
110 }//namespace glm
+
111 
+
112 #include "intersect.inl"
+
GLM_FUNC_DECL bool intersectRaySphere(genType const &rayStarting, genType const &rayNormalizedDirection, genType const &sphereCenter, const typename genType::value_type sphereRadius, genType &intersectionPosition, genType &intersectionNormal)
Compute the intersection of a ray and a sphere.
+
GLM_FUNC_DECL bool intersectRayPlane(genType const &orig, genType const &dir, genType const &planeOrig, genType const &planeNormal, typename genType::value_type &intersectionDistance)
Compute the intersection of a ray and a triangle.
+
GLM_FUNC_DECL bool intersectLineTriangle(genType const &orig, genType const &dir, genType const &vert0, genType const &vert1, genType const &vert2, genType &position)
Compute the intersection of a line and a triangle.
+
GLM_FUNC_DECL bool intersectLineSphere(genType const &point0, genType const &point1, genType const &sphereCenter, typename genType::value_type sphereRadius, genType &intersectionPosition1, genType &intersectionNormal1, genType &intersectionPosition2=genType(), genType &intersectionNormal2=genType())
Compute the intersection of a line and a sphere.
+
Definition: _noise.hpp:39
+
GLM_FUNC_DECL bool intersectRayTriangle(genType const &orig, genType const &dir, genType const &vert0, genType const &vert1, genType const &vert2, genType &baryPosition)
Compute the intersection of a ray and a triangle.
diff --git a/doc/api/a00046.html b/doc/api/a00046.html new file mode 100644 index 00000000..f2e87590 --- /dev/null +++ b/doc/api/a00046.html @@ -0,0 +1,78 @@ + + + + + + +0.9.6: intrinsic_common.hpp File Reference + + + + + + +
+
+ + + + + + + +
+
0.9.6 +
+
+
+ + + + + +
+
+
+
intrinsic_common.hpp File Reference
+
+
+ +

Go to the source code of this file.

+

Detailed Description

+

OpenGL Mathematics (glm.g-truc.net)

+

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+

GLM Core

+
Date
2009-05-11 / 2011-06-15
+
Author
Christophe Riccio
+

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+

GLM Core

+
Date
2009-06-05 / 2011-06-15
+
Author
Christophe Riccio
+ +

Definition in file intrinsic_common.hpp.

+
+ + + + diff --git a/doc/api/a00046_source.html b/doc/api/a00046_source.html index 1ecd183f..97384d5f 100644 --- a/doc/api/a00046_source.html +++ b/doc/api/a00046_source.html @@ -3,8 +3,8 @@ - -GLM: hint.hpp Source File + +0.9.6: intrinsic_common.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,33 +41,82 @@
-
hint.hpp
+
intrinsic_common.hpp
-
1 
-
29 #ifndef glm_core_type
-
30 #define glm_core_type
-
31 
-
32 namespace glm
-
33 {
-
34  // Use dont_care, nicest and fastest to optimize implementations.
-
35  class dont_care {};
-
36  class nicest {};
-
37  class fastest {};
-
38 }//namespace glm
-
39 
-
40 #endif//glm_core_type
+Go to the documentation of this file.
1 
+
29 #pragma once
+
30 
+
31 #include "setup.hpp"
+
32 
+
33 #if(!(GLM_ARCH & GLM_ARCH_SSE2))
+
34 # error "SSE2 instructions not supported or enabled"
+
35 #else
+
36 
+
37 namespace glm{
+
38 namespace detail
+
39 {
+
40  __m128 sse_abs_ps(__m128 x);
+
41 
+
42  __m128 sse_sgn_ps(__m128 x);
+
43 
+
44  //floor
+
45  __m128 sse_flr_ps(__m128 v);
+
46 
+
47  //trunc
+
48  __m128 sse_trc_ps(__m128 v);
+
49 
+
50  //round
+
51  __m128 sse_nd_ps(__m128 v);
+
52 
+
53  //roundEven
+
54  __m128 sse_rde_ps(__m128 v);
+
55 
+
56  __m128 sse_rnd_ps(__m128 x);
+
57 
+
58  __m128 sse_ceil_ps(__m128 v);
+
59 
+
60  __m128 sse_frc_ps(__m128 x);
+
61 
+
62  __m128 sse_mod_ps(__m128 x, __m128 y);
+
63 
+
64  __m128 sse_modf_ps(__m128 x, __m128i & i);
+
65 
+
66  //GLM_FUNC_QUALIFIER __m128 sse_min_ps(__m128 x, __m128 y)
+
67 
+
68  //GLM_FUNC_QUALIFIER __m128 sse_max_ps(__m128 x, __m128 y)
+
69 
+
70  __m128 sse_clp_ps(__m128 v, __m128 minVal, __m128 maxVal);
+
71 
+
72  __m128 sse_mix_ps(__m128 v1, __m128 v2, __m128 a);
+
73 
+
74  __m128 sse_stp_ps(__m128 edge, __m128 x);
+
75 
+
76  __m128 sse_ssp_ps(__m128 edge0, __m128 edge1, __m128 x);
+
77 
+
78  __m128 sse_nan_ps(__m128 x);
+
79 
+
80  __m128 sse_inf_ps(__m128 x);
+
81 
+
82 }//namespace detail
+
83 }//namespace glm
+
84 
+
85 #include "intrinsic_common.inl"
+
86 
+
87 #endif//GLM_ARCH
+
Definition: _noise.hpp:39
+
OpenGL Mathematics (glm.g-truc.net)
diff --git a/doc/api/a00047.html b/doc/api/a00047.html index fe93462e..1d0af991 100644 --- a/doc/api/a00047.html +++ b/doc/api/a00047.html @@ -3,8 +3,8 @@ - -GLM: inertia.hpp File Reference + +0.9.6: intrinsic_exponential.hpp File Reference @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,43 +41,32 @@
-
-Namespaces
-
inertia.hpp File Reference
+
intrinsic_exponential.hpp File Reference

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 

Detailed Description

OpenGL Mathematics (glm.g-truc.net)

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_inertia

-
Date
2006-04-21 / 2011-06-07
-
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
-
-GLM_GTX_extented_min_max (dependence)
+

GLM Core

+
Date
2009-05-11 / 2011-06-15
+
Author
Christophe Riccio
-

Definition in file inertia.hpp.

+

Definition in file intrinsic_exponential.hpp.

diff --git a/doc/api/a00047_source.html b/doc/api/a00047_source.html index f56a9492..239fe1ad 100644 --- a/doc/api/a00047_source.html +++ b/doc/api/a00047_source.html @@ -3,8 +3,8 @@ - -GLM: inertia.hpp Source File + +0.9.6: intrinsic_exponential.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,80 +41,72 @@
-
inertia.hpp
+
intrinsic_exponential.hpp
Go to the documentation of this file.
1 
-
39 #ifndef GLM_GTX_inertia
-
40 #define GLM_GTX_inertia
-
41 
-
42 // Dependency:
-
43 #include "../glm.hpp"
-
44 
-
45 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
46 # pragma message("GLM: GLM_GTX_inertia extension included")
-
47 #endif
-
48 
-
49 namespace glm
-
50 {
-
51  /*
-
54 
-
57  template <typename T, precision P>
-
58  detail::tmat3x3<T, P> boxInertia3(
-
59  T const & Mass,
-
60  detail::tvec3<T, P> const & Scale);
-
61 
-
64  template <typename T, precision P>
-
65  detail::tmat4x4<T, P> boxInertia4(
-
66  T const & Mass,
-
67  detail::tvec3<T, P> const & Scale);
-
68 
-
71  template <typename T, precision P>
-
72  detail::tmat3x3<T, P> diskInertia3(
-
73  T const & Mass,
-
74  T const & Radius);
-
75 
-
78  template <typename T, precision P>
-
79  detail::tmat4x4<T, P> diskInertia4(
-
80  T const & Mass,
-
81  T const & Radius);
-
82 
-
85  template <typename T, precision P>
-
86  detail::tmat3x3<T, P> ballInertia3(
-
87  T const & Mass,
-
88  T const & Radius);
-
89 
-
92  template <typename T, precision P>
-
93  detail::tmat4x4<T, P> ballInertia4(
-
94  T const & Mass,
-
95  T const & Radius);
-
96 
-
99  template <typename T, precision P>
-
100  detail::tmat3x3<T, P> sphereInertia3(
-
101  T const & Mass,
-
102  T const & Radius);
-
103 
-
106  template <typename T, precision P>
-
107  detail::tmat4x4<T, P> sphereInertia4(
-
108  T const & Mass,
-
109  T const & Radius);
-
110  */
-
112 }// namespace glm
-
113 
-
114 #include "inertia.inl"
-
115 
-
116 #endif//GLM_GTX_inertia
+
29 #pragma once
+
30 
+
31 #include "setup.hpp"
+
32 
+
33 #if(!(GLM_ARCH & GLM_ARCH_SSE2))
+
34 # error "SSE2 instructions not supported or enabled"
+
35 #else
+
36 
+
37 namespace glm{
+
38 namespace detail
+
39 {
+
40 /*
+
41 GLM_FUNC_QUALIFIER __m128 sse_rsqrt_nr_ss(__m128 const x)
+
42 {
+
43  __m128 recip = _mm_rsqrt_ss( x ); // "estimate" opcode
+
44  const static __m128 three = { 3, 3, 3, 3 }; // aligned consts for fast load
+
45  const static __m128 half = { 0.5,0.5,0.5,0.5 };
+
46  __m128 halfrecip = _mm_mul_ss( half, recip );
+
47  __m128 threeminus_xrr = _mm_sub_ss( three, _mm_mul_ss( x, _mm_mul_ss ( recip, recip ) ) );
+
48  return _mm_mul_ss( halfrecip, threeminus_xrr );
+
49 }
+
50 
+
51 GLM_FUNC_QUALIFIER __m128 sse_normalize_fast_ps( float * RESTRICT vOut, float * RESTRICT vIn )
+
52 {
+
53  __m128 x = _mm_load_ss(&vIn[0]);
+
54  __m128 y = _mm_load_ss(&vIn[1]);
+
55  __m128 z = _mm_load_ss(&vIn[2]);
+
56 
+
57  const __m128 l = // compute x*x + y*y + z*z
+
58  _mm_add_ss(
+
59  _mm_add_ss( _mm_mul_ss(x,x),
+
60  _mm_mul_ss(y,y)
+
61  ),
+
62  _mm_mul_ss( z, z )
+
63  );
+
64 
+
65 
+
66  const __m128 rsqt = _mm_rsqrt_nr_ss( l );
+
67  _mm_store_ss( &vOut[0] , _mm_mul_ss( rsqt, x ) );
+
68  _mm_store_ss( &vOut[1] , _mm_mul_ss( rsqt, y ) );
+
69  _mm_store_ss( &vOut[2] , _mm_mul_ss( rsqt, z ) );
+
70 
+
71  return _mm_mul_ss( l , rsqt );
+
72 }
+
73 */
+
74 }//namespace detail
+
75 }//namespace glm
+
76 
+
77 #endif//GLM_ARCH
+
Definition: _noise.hpp:39
+
OpenGL Mathematics (glm.g-truc.net)
diff --git a/doc/api/a00048.html b/doc/api/a00048.html new file mode 100644 index 00000000..88f13d34 --- /dev/null +++ b/doc/api/a00048.html @@ -0,0 +1,72 @@ + + + + + + +0.9.6: intrinsic_geometric.hpp File Reference + + + + + + +
+
+ + + + + + + +
+
0.9.6 +
+
+
+ + + + + +
+
+
+
intrinsic_geometric.hpp File Reference
+
+
+ +

Go to the source code of this file.

+

Detailed Description

+

OpenGL Mathematics (glm.g-truc.net)

+

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+

GLM Core

+
Date
2009-05-08 / 2011-06-15
+
Author
Christophe Riccio
+ +

Definition in file intrinsic_geometric.hpp.

+
+ + + + diff --git a/doc/api/a00048_source.html b/doc/api/a00048_source.html index 26150855..97cdcf2e 100644 --- a/doc/api/a00048_source.html +++ b/doc/api/a00048_source.html @@ -3,8 +3,8 @@ - -GLM: int_10_10_10_2.hpp Source File + +0.9.6: intrinsic_geometric.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,44 +41,70 @@
-
int_10_10_10_2.hpp
+
intrinsic_geometric.hpp
-
1 
-
24 #ifndef GLM_GTX_int_10_10_10_2
-
25 #define GLM_GTX_int_10_10_10_2
-
26 
-
27 // Dependency:
-
28 #include "../glm.hpp"
-
29 #include "../gtx/raw_data.hpp"
+Go to the documentation of this file.
1 
+
29 #pragma once
30 
-
31 #if(defined(GLM_MESSAGES))
-
32 # pragma message("GLM: GLM_GTX_int_10_10_10_2 extension is deprecated, include GLM_GTC_packing (glm/gtc/packing.hpp) instead")
-
33 #endif
-
34 
-
35 namespace glm
-
36 {
-
38  GLM_DEPRECATED dword uint10_10_10_2_cast(glm::vec4 const & v);
-
39 
-
40 }//namespace glm
-
41 
-
42 #include "int_10_10_10_2.inl"
-
43 
-
44 #endif//GLM_GTX_int_10_10_10_2
-
detail::uint32 dword
Type for dword numbers.
Definition: raw_data.hpp:63
-
highp_vec4 vec4
4 components vector of floating-point numbers.
Definition: type_vec.hpp:398
-
GLM_DEPRECATED dword uint10_10_10_2_cast(glm::vec4 const &v)
Deprecated, use packUnorm3x10_1x2 instead.
+
31 #include "setup.hpp"
+
32 
+
33 #if(!(GLM_ARCH & GLM_ARCH_SSE2))
+
34 # error "SSE2 instructions not supported or enabled"
+
35 #else
+
36 
+
37 #include "intrinsic_common.hpp"
+
38 
+
39 namespace glm{
+
40 namespace detail
+
41 {
+
42  //length
+
43  __m128 sse_len_ps(__m128 x);
+
44 
+
45  //distance
+
46  __m128 sse_dst_ps(__m128 p0, __m128 p1);
+
47 
+
48  //dot
+
49  __m128 sse_dot_ps(__m128 v1, __m128 v2);
+
50 
+
51  // SSE1
+
52  __m128 sse_dot_ss(__m128 v1, __m128 v2);
+
53 
+
54  //cross
+
55  __m128 sse_xpd_ps(__m128 v1, __m128 v2);
+
56 
+
57  //normalize
+
58  __m128 sse_nrm_ps(__m128 v);
+
59 
+
60  //faceforward
+
61  __m128 sse_ffd_ps(__m128 N, __m128 I, __m128 Nref);
+
62 
+
63  //reflect
+
64  __m128 sse_rfe_ps(__m128 I, __m128 N);
+
65 
+
66  //refract
+
67  __m128 sse_rfa_ps(__m128 I, __m128 N, __m128 eta);
+
68 
+
69 }//namespace detail
+
70 }//namespace glm
+
71 
+
72 #include "intrinsic_geometric.inl"
+
73 
+
74 #endif//GLM_ARCH
+
OpenGL Mathematics (glm.g-truc.net)
+
Definition: _noise.hpp:39
+
OpenGL Mathematics (glm.g-truc.net)
diff --git a/doc/api/a00049.html b/doc/api/a00049.html index fc82dad3..c3293e74 100644 --- a/doc/api/a00049.html +++ b/doc/api/a00049.html @@ -3,8 +3,8 @@ - -GLM: integer.hpp File Reference + +0.9.6: intrinsic_integer.hpp File Reference @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,73 +41,32 @@
-
-Namespaces | -Typedefs | -Functions
-
gtx/integer.hpp File Reference
+
intrinsic_integer.hpp File Reference

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
- - - -

-Typedefs

typedef signed int sint
 
- - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename genType >
genType factorial (genType const &x)
 
unsigned int floor_log2 (unsigned int x)
 
template<typename genIUType >
genIUType log2 (genIUType const &x)
 
int mod (int x, int y)
 
uint mod (uint x, uint y)
 
uint nlz (uint x)
 
int pow (int x, int y)
 
uint pow (uint x, uint y)
 
int sqrt (int x)
 
uint sqrt (uint x)
 

Detailed Description

OpenGL Mathematics (glm.g-truc.net)

-

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_integer

-
Date
2005-12-24 / 2011-10-13
-
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
+

GLM Core

+
Date
2009-05-11 / 2011-06-15
+
Author
Christophe Riccio
-

Definition in file gtx/integer.hpp.

+

Definition in file intrinsic_integer.hpp.

diff --git a/doc/api/a00049_source.html b/doc/api/a00049_source.html index 6c5bb318..25d67c92 100644 --- a/doc/api/a00049_source.html +++ b/doc/api/a00049_source.html @@ -3,8 +3,8 @@ - -GLM: integer.hpp Source File + +0.9.6: intrinsic_integer.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,72 +41,43 @@
-
gtx/integer.hpp
+
intrinsic_integer.hpp
Go to the documentation of this file.
1 
-
38 #ifndef GLM_GTX_integer
-
39 #define GLM_GTX_integer
-
40 
-
41 // Dependency:
-
42 #include "../glm.hpp"
-
43 
-
44 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
45 # pragma message("GLM: GLM_GTX_integer extension included")
-
46 #endif
-
47 
-
48 namespace glm
-
49 {
-
52 
-
55  int pow(int x, int y);
-
56 
-
59  int sqrt(int x);
-
60 
-
63  template <typename genIUType>
-
64  genIUType log2(genIUType const & x);
-
65 
-
68  unsigned int floor_log2(unsigned int x);
-
69 
-
72  int mod(int x, int y);
-
73 
-
76  template <typename genType>
-
77  genType factorial(genType const & x);
-
78 
-
81  typedef signed int sint;
-
82 
-
85  uint pow(uint x, uint y);
-
86 
-
89  uint sqrt(uint x);
-
90 
-
93  uint mod(uint x, uint y);
-
94 
-
97  uint nlz(uint x);
-
98 
-
100 }//namespace glm
-
101 
-
102 #include "integer.inl"
-
103 
-
104 #endif//GLM_GTX_integer
-
GLM_FUNC_DECL genType sqrt(genType const &x)
Returns the positive square root of x.
-
unsigned int floor_log2(unsigned int x)
Returns the floor log2 of x.
-
unsigned int uint
Unsigned integer type.
Definition: type_int.hpp:171
-
signed int sint
32bit signed integer.
Definition: gtx/integer.hpp:81
-
GLM_FUNC_DECL genType mod(genType const &x, genType const &y)
Modulus.
-
GLM_FUNC_DECL genType log2(genType const &x)
Returns the base 2 log of x, i.e., returns the value y, which satisfies the equation x = 2 ^ y...
-
genType factorial(genType const &x)
Return the factorial value of a number (!12 max, integer only) From GLM_GTX_integer extension...
-
GLM_FUNC_DECL genType pow(genType const &base, genType const &exponent)
Returns &#39;base&#39; raised to the power &#39;exponent&#39;.
-
uint nlz(uint x)
Returns the number of leading zeros.
+
29 #pragma once
+
30 
+
31 #include "glm/glm.hpp"
+
32 
+
33 #if(!(GLM_ARCH & GLM_ARCH_SSE2))
+
34 # error "SSE2 instructions not supported or enabled"
+
35 #else
+
36 
+
37 namespace glm{
+
38 namespace detail
+
39 {
+
40  __m128i _mm_bit_interleave_si128(__m128i x);
+
41  __m128i _mm_bit_interleave_si128(__m128i x, __m128i y);
+
42 
+
43 }//namespace detail
+
44 }//namespace glm
+
45 
+
46 #include "intrinsic_integer.inl"
+
47 
+
48 #endif//GLM_ARCH
+
OpenGL Mathematics (glm.g-truc.net)
+
Definition: _noise.hpp:39
diff --git a/doc/api/a00050_source.html b/doc/api/a00050_source.html index b92d295c..834de71f 100644 --- a/doc/api/a00050_source.html +++ b/doc/api/a00050_source.html @@ -3,8 +3,8 @@ - -GLM: integer.hpp Source File + +0.9.6: intrinsic_matrix.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,27 +41,63 @@
-
integer.hpp
+
intrinsic_matrix.hpp
-Go to the documentation of this file.
1 
-
29 #ifndef GLM_INTEGER_INCLUDED
-
30 #define GLM_INTEGER_INCLUDED
-
31 
-
32 #include "detail/func_integer.hpp"
-
33 
-
34 #endif//GLM_INTEGER_INCLUDED
+
1 
+
29 #pragma once
+
30 
+
31 #include "setup.hpp"
+
32 
+
33 #if(!(GLM_ARCH & GLM_ARCH_SSE2))
+
34 # error "SSE2 instructions not supported or enabled"
+
35 #else
+
36 
+
37 #include "intrinsic_geometric.hpp"
+
38 
+
39 namespace glm{
+
40 namespace detail
+
41 {
+
42  void sse_add_ps(__m128 in1[4], __m128 in2[4], __m128 out[4]);
+
43 
+
44  void sse_sub_ps(__m128 in1[4], __m128 in2[4], __m128 out[4]);
+
45 
+
46  __m128 sse_mul_ps(__m128 m[4], __m128 v);
+
47 
+
48  __m128 sse_mul_ps(__m128 v, __m128 m[4]);
+
49 
+
50  void sse_mul_ps(__m128 const in1[4], __m128 const in2[4], __m128 out[4]);
+
51 
+
52  void sse_transpose_ps(__m128 const in[4], __m128 out[4]);
+
53 
+
54  void sse_inverse_ps(__m128 const in[4], __m128 out[4]);
+
55 
+
56  void sse_rotate_ps(__m128 const in[4], float Angle, float const v[3], __m128 out[4]);
+
57 
+
58  __m128 sse_det_ps(__m128 const m[4]);
+
59 
+
60  __m128 sse_slow_det_ps(__m128 const m[4]);
+
61 
+
62 }//namespace detail
+
63 }//namespace glm
+
64 
+
65 #include "intrinsic_matrix.inl"
+
66 
+
67 #endif//GLM_ARCH
+
Definition: _noise.hpp:39
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
diff --git a/doc/api/a00051.html b/doc/api/a00051.html index 32f88c89..0d0fe6a6 100644 --- a/doc/api/a00051.html +++ b/doc/api/a00051.html @@ -3,8 +3,8 @@ - -GLM: intersect.hpp File Reference + +0.9.6: intrinsic_trigonometric.hpp File Reference @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,65 +41,32 @@
-
-Namespaces | -Functions
-
intersect.hpp File Reference
+
intrinsic_trigonometric.hpp File Reference

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
- - - - - - - - - - - - - - - - - - - -

-Functions

template<typename genType >
bool intersectLineSphere (genType const &point0, genType const &point1, genType const &sphereCenter, typename genType::value_type sphereRadius, genType &intersectionPosition1, genType &intersectionNormal1, genType &intersectionPosition2=genType(), genType &intersectionNormal2=genType())
 
template<typename genType >
bool intersectLineTriangle (genType const &orig, genType const &dir, genType const &vert0, genType const &vert1, genType const &vert2, genType &position)
 
template<typename genType >
bool intersectRayPlane (genType const &orig, genType const &dir, genType const &planeOrig, genType const &planeNormal, typename genType::value_type &intersectionDistance)
 
template<typename genType >
bool intersectRaySphere (genType const &rayStarting, genType const &rayNormalizedDirection, genType const &sphereCenter, typename genType::value_type const sphereRadiusSquered, typename genType::value_type &intersectionDistance)
 
template<typename genType >
bool intersectRaySphere (genType const &rayStarting, genType const &rayNormalizedDirection, genType const &sphereCenter, const typename genType::value_type sphereRadius, genType &intersectionPosition, genType &intersectionNormal)
 
template<typename genType >
bool intersectRayTriangle (genType const &orig, genType const &dir, genType const &vert0, genType const &vert1, genType const &vert2, genType &baryPosition)
 

Detailed Description

OpenGL Mathematics (glm.g-truc.net)

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_intersect

-
Date
2007-04-03 / 2011-06-07
-
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
-
-GLM_GTX_closest_point (dependence)
+

GLM Core

+
Date
2009-06-09 / 2011-06-15
+
Author
Christophe Riccio
-

Definition in file intersect.hpp.

+

Definition in file intrinsic_trigonometric.hpp.

diff --git a/doc/api/a00051_source.html b/doc/api/a00051_source.html index df8fa596..7ac7b6d9 100644 --- a/doc/api/a00051_source.html +++ b/doc/api/a00051_source.html @@ -3,8 +3,8 @@ - -GLM: intersect.hpp Source File + +0.9.6: intrinsic_trigonometric.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,82 +41,41 @@
-
intersect.hpp
+
intrinsic_trigonometric.hpp
Go to the documentation of this file.
1 
-
39 #ifndef GLM_GTX_intersect
-
40 #define GLM_GTX_intersect
-
41 
-
42 // Dependency:
-
43 #include "../glm.hpp"
-
44 #include "../gtx/closest_point.hpp"
+
29 #pragma once
+
30 
+
31 #include "setup.hpp"
+
32 
+
33 #if(!(GLM_ARCH & GLM_ARCH_SSE2))
+
34 # error "SSE2 instructions not supported or enabled"
+
35 #else
+
36 
+
37 namespace glm{
+
38 namespace detail
+
39 {
+
40 
+
41 }//namespace detail
+
42 }//namespace glm
+
43 
+
44 #include "intrinsic_trigonometric.inl"
45 
-
46 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
47 # pragma message("GLM: GLM_GTX_closest_point extension included")
-
48 #endif
-
49 
-
50 namespace glm
-
51 {
-
54 
-
58  template <typename genType>
-
59  bool intersectRayPlane(
-
60  genType const & orig, genType const & dir,
-
61  genType const & planeOrig, genType const & planeNormal,
-
62  typename genType::value_type & intersectionDistance);
-
63 
-
66  template <typename genType>
- -
68  genType const & orig, genType const & dir,
-
69  genType const & vert0, genType const & vert1, genType const & vert2,
-
70  genType & baryPosition);
-
71 
-
74  template <typename genType>
- -
76  genType const & orig, genType const & dir,
-
77  genType const & vert0, genType const & vert1, genType const & vert2,
-
78  genType & position);
-
79 
-
83  template <typename genType>
-
84  bool intersectRaySphere(
-
85  genType const & rayStarting, genType const & rayNormalizedDirection,
-
86  genType const & sphereCenter, typename genType::value_type const sphereRadiusSquered,
-
87  typename genType::value_type & intersectionDistance);
-
88 
-
91  template <typename genType>
-
92  bool intersectRaySphere(
-
93  genType const & rayStarting, genType const & rayNormalizedDirection,
-
94  genType const & sphereCenter, const typename genType::value_type sphereRadius,
-
95  genType & intersectionPosition, genType & intersectionNormal);
-
96 
-
99  template <typename genType>
-
100  bool intersectLineSphere(
-
101  genType const & point0, genType const & point1,
-
102  genType const & sphereCenter, typename genType::value_type sphereRadius,
-
103  genType & intersectionPosition1, genType & intersectionNormal1,
-
104  genType & intersectionPosition2 = genType(), genType & intersectionNormal2 = genType());
-
105 
-
107 }//namespace glm
-
108 
-
109 #include "intersect.inl"
-
110 
-
111 #endif//GLM_GTX_intersect
-
bool intersectLineTriangle(genType const &orig, genType const &dir, genType const &vert0, genType const &vert1, genType const &vert2, genType &position)
Compute the intersection of a line and a triangle.
-
bool intersectRayPlane(genType const &orig, genType const &dir, genType const &planeOrig, genType const &planeNormal, typename genType::value_type &intersectionDistance)
Compute the intersection of a ray and a triangle.
-
bool intersectRaySphere(genType const &rayStarting, genType const &rayNormalizedDirection, genType const &sphereCenter, typename genType::value_type const sphereRadiusSquered, typename genType::value_type &intersectionDistance)
Compute the intersection distance of a ray and a sphere.
-
bool intersectLineSphere(genType const &point0, genType const &point1, genType const &sphereCenter, typename genType::value_type sphereRadius, genType &intersectionPosition1, genType &intersectionNormal1, genType &intersectionPosition2=genType(), genType &intersectionNormal2=genType())
Compute the intersection of a line and a sphere.
-
bool intersectRayTriangle(genType const &orig, genType const &dir, genType const &vert0, genType const &vert1, genType const &vert2, genType &baryPosition)
Compute the intersection of a ray and a triangle.
+
46 #endif//GLM_ARCH
+
Definition: _noise.hpp:39
+
OpenGL Mathematics (glm.g-truc.net)
diff --git a/doc/api/a00052.html b/doc/api/a00052.html new file mode 100644 index 00000000..771fcde6 --- /dev/null +++ b/doc/api/a00052.html @@ -0,0 +1,72 @@ + + + + + + +0.9.6: intrinsic_vector_relational.hpp File Reference + + + + + + +
+
+ + + + + + + +
+
0.9.6 +
+
+
+ + + + + +
+
+
+
intrinsic_vector_relational.hpp File Reference
+
+
+ +

Go to the source code of this file.

+

Detailed Description

+

OpenGL Mathematics (glm.g-truc.net)

+

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+

GLM Core

+
Date
2009-06-09 / 2011-06-15
+
Author
Christophe Riccio
+ +

Definition in file intrinsic_vector_relational.hpp.

+
+ + + + diff --git a/doc/api/a00052_source.html b/doc/api/a00052_source.html index c7a53107..758e6ebe 100644 --- a/doc/api/a00052_source.html +++ b/doc/api/a00052_source.html @@ -3,8 +3,8 @@ - -GLM: intrinsic_common.hpp Source File + +0.9.6: intrinsic_vector_relational.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,82 +41,41 @@
-
intrinsic_common.hpp
+
intrinsic_vector_relational.hpp
-
1 
-
29 #ifndef glm_detail_intrinsic_common
-
30 #define glm_detail_intrinsic_common
-
31 
-
32 #include "setup.hpp"
-
33 
-
34 #if(!(GLM_ARCH & GLM_ARCH_SSE2))
-
35 # error "SSE2 instructions not supported or enabled"
-
36 #else
-
37 
-
38 namespace glm{
-
39 namespace detail
-
40 {
-
41  __m128 sse_abs_ps(__m128 x);
-
42 
-
43  __m128 sse_sgn_ps(__m128 x);
-
44 
-
45  //floor
-
46  __m128 sse_flr_ps(__m128 v);
-
47 
-
48  //trunc
-
49  __m128 sse_trc_ps(__m128 v);
-
50 
-
51  //round
-
52  __m128 sse_nd_ps(__m128 v);
-
53 
-
54  //roundEven
-
55  __m128 sse_rde_ps(__m128 v);
-
56 
-
57  __m128 sse_rnd_ps(__m128 x);
-
58 
-
59  __m128 sse_ceil_ps(__m128 v);
-
60 
-
61  __m128 sse_frc_ps(__m128 x);
-
62 
-
63  __m128 sse_mod_ps(__m128 x, __m128 y);
-
64 
-
65  __m128 sse_modf_ps(__m128 x, __m128i & i);
-
66 
-
67  //GLM_FUNC_QUALIFIER __m128 sse_min_ps(__m128 x, __m128 y)
-
68 
-
69  //GLM_FUNC_QUALIFIER __m128 sse_max_ps(__m128 x, __m128 y)
-
70 
-
71  __m128 sse_clp_ps(__m128 v, __m128 minVal, __m128 maxVal);
-
72 
-
73  __m128 sse_mix_ps(__m128 v1, __m128 v2, __m128 a);
-
74 
-
75  __m128 sse_stp_ps(__m128 edge, __m128 x);
-
76 
-
77  __m128 sse_ssp_ps(__m128 edge0, __m128 edge1, __m128 x);
-
78 
-
79  __m128 sse_nan_ps(__m128 x);
-
80 
-
81  __m128 sse_inf_ps(__m128 x);
-
82 
-
83 }//namespace detail
-
84 }//namespace glm
-
85 
-
86 #include "intrinsic_common.inl"
-
87 
-
88 #endif//GLM_ARCH
-
89 #endif//glm_detail_intrinsic_common
+Go to the documentation of this file.
1 
+
29 #pragma once
+
30 
+
31 #include "setup.hpp"
+
32 
+
33 #if(!(GLM_ARCH & GLM_ARCH_SSE2))
+
34 # error "SSE2 instructions not supported or enabled"
+
35 #else
+
36 
+
37 namespace glm{
+
38 namespace detail
+
39 {
+
40 
+
41 }//namespace detail
+
42 }//namespace glm
+
43 
+
44 #include "intrinsic_vector_relational.inl"
+
45 
+
46 #endif//GLM_ARCH
+
Definition: _noise.hpp:39
+
OpenGL Mathematics (glm.g-truc.net)
diff --git a/doc/api/a00053.html b/doc/api/a00053.html new file mode 100644 index 00000000..9d9d1d34 --- /dev/null +++ b/doc/api/a00053.html @@ -0,0 +1,76 @@ + + + + + + +0.9.6: io.hpp File Reference + + + + + + +
+
+ + + + + + + +
+
0.9.6 +
+
+
+ + + + + +
+
+
+
io.hpp File Reference
+
+
+ +

Go to the source code of this file.

+

Detailed Description

+

OpenGL Mathematics (glm.g-truc.net)

+

Copyright (c) 2005 - 2013 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+

GLM_GTX_io

+
Date
2013-11-22 / 2014-11-25
+
Author
Jan P Springer (regni.nosp@m.rpsj.nosp@m.@gmai.nosp@m.l.co.nosp@m.m)
+
See also
GLM Core (dependence)
+
+GLM_GTC_quaternion (dependence)
+ +

Definition in file io.hpp.

+
+ + + + diff --git a/doc/api/a00053_source.html b/doc/api/a00053_source.html index 2f65e069..22b75a2e 100644 --- a/doc/api/a00053_source.html +++ b/doc/api/a00053_source.html @@ -3,8 +3,8 @@ - -GLM: intrinsic_exponential.hpp Source File + +0.9.6: io.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,72 +41,197 @@
-
intrinsic_exponential.hpp
+
io.hpp
-
1 
-
29 #ifndef glm_detail_intrinsic_exponential
-
30 #define glm_detail_intrinsic_exponential
-
31 
-
32 #include "setup.hpp"
-
33 
-
34 #if(!(GLM_ARCH & GLM_ARCH_SSE2))
-
35 # error "SSE2 instructions not supported or enabled"
-
36 #else
-
37 
-
38 namespace glm{
-
39 namespace detail
-
40 {
-
41 /*
-
42 GLM_FUNC_QUALIFIER __m128 sse_rsqrt_nr_ss(__m128 const x)
-
43 {
-
44  __m128 recip = _mm_rsqrt_ss( x ); // "estimate" opcode
-
45  const static __m128 three = { 3, 3, 3, 3 }; // aligned consts for fast load
-
46  const static __m128 half = { 0.5,0.5,0.5,0.5 };
-
47  __m128 halfrecip = _mm_mul_ss( half, recip );
-
48  __m128 threeminus_xrr = _mm_sub_ss( three, _mm_mul_ss( x, _mm_mul_ss ( recip, recip ) ) );
-
49  return _mm_mul_ss( halfrecip, threeminus_xrr );
-
50 }
-
51 
-
52 GLM_FUNC_QUALIFIER __m128 sse_normalize_fast_ps( float * RESTRICT vOut, float * RESTRICT vIn )
-
53 {
-
54  __m128 x = _mm_load_ss(&vIn[0]);
-
55  __m128 y = _mm_load_ss(&vIn[1]);
-
56  __m128 z = _mm_load_ss(&vIn[2]);
-
57 
-
58  const __m128 l = // compute x*x + y*y + z*z
-
59  _mm_add_ss(
-
60  _mm_add_ss( _mm_mul_ss(x,x),
-
61  _mm_mul_ss(y,y)
-
62  ),
-
63  _mm_mul_ss( z, z )
-
64  );
-
65 
-
66 
-
67  const __m128 rsqt = _mm_rsqrt_nr_ss( l );
-
68  _mm_store_ss( &vOut[0] , _mm_mul_ss( rsqt, x ) );
-
69  _mm_store_ss( &vOut[1] , _mm_mul_ss( rsqt, y ) );
-
70  _mm_store_ss( &vOut[2] , _mm_mul_ss( rsqt, z ) );
-
71 
-
72  return _mm_mul_ss( l , rsqt );
-
73 }
-
74 */
-
75 }//namespace detail
-
76 }//namespace glm
-
77 
-
78 #endif//GLM_ARCH
-
79 #endif//glm_detail_intrinsic_exponential
+Go to the documentation of this file.
1 
+
47 #pragma once
+
48 
+
49 // Dependency:
+
50 #include "../glm.hpp"
+
51 #include "../gtx/quaternion.hpp"
+
52 
+
53 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
+
54 # pragma message("GLM: GLM_GTX_io extension included")
+
55 #endif
+
56 
+
57 #include <iosfwd> // std::basic_ostream<> (fwd)
+
58 #include <locale> // std::locale, std::locale::facet, std::locale::id
+
59 #include <utility> // std::pair<>
+
60 
+
61 namespace glm
+
62 {
+
65 
+
66  namespace io
+
67  {
+
68  enum order_type { column_major, row_major};
+
69 
+
70  template <typename CTy>
+
71  class format_punct : public std::locale::facet
+
72  {
+
73  typedef CTy char_type;
+
74 
+
75  public:
+
76 
+
77  static std::locale::id id;
+
78 
+
79  bool formatted;
+
80  unsigned precision;
+
81  unsigned width;
+
82  char_type separator;
+
83  char_type delim_left;
+
84  char_type delim_right;
+
85  char_type space;
+
86  char_type newline;
+
87  order_type order;
+
88 
+
89  explicit format_punct(size_t a = 0);
+
90  explicit format_punct(format_punct const&);
+
91  };
+
92 
+
93  template <typename CTy, typename CTr = std::char_traits<CTy> >
+
94  class basic_state_saver {
+
95 
+
96  public:
+
97 
+
98  explicit basic_state_saver(std::basic_ios<CTy,CTr>&);
+
99  ~basic_state_saver();
+
100 
+
101  private:
+
102 
+
103  typedef ::std::basic_ios<CTy,CTr> state_type;
+
104  typedef typename state_type::char_type char_type;
+
105  typedef ::std::ios_base::fmtflags flags_type;
+
106  typedef ::std::streamsize streamsize_type;
+
107  typedef ::std::locale const locale_type;
+
108 
+
109  state_type& state_;
+
110  flags_type flags_;
+
111  streamsize_type precision_;
+
112  streamsize_type width_;
+
113  char_type fill_;
+
114  locale_type locale_;
+
115 
+
116  basic_state_saver& operator=(basic_state_saver const&);
+
117  };
+
118 
+
119  typedef basic_state_saver<char> state_saver;
+
120  typedef basic_state_saver<wchar_t> wstate_saver;
+
121 
+
122  template <typename CTy, typename CTr = std::char_traits<CTy> >
+
123  class basic_format_saver
+
124  {
+
125  public:
+
126 
+
127  explicit basic_format_saver(std::basic_ios<CTy,CTr>&);
+
128  ~basic_format_saver();
+
129 
+
130  private:
+
131 
+
132  basic_state_saver<CTy> const bss_;
+
133 
+
134  basic_format_saver& operator=(basic_format_saver const&);
+
135  };
+
136 
+
137  typedef basic_format_saver<char> format_saver;
+
138  typedef basic_format_saver<wchar_t> wformat_saver;
+
139 
+
140  struct precision
+
141  {
+
142  unsigned value;
+
143 
+
144  explicit precision(unsigned);
+
145  };
+
146 
+
147  struct width
+
148  {
+
149  unsigned value;
+
150 
+
151  explicit width(unsigned);
+
152  };
+
153 
+
154  template <typename CTy>
+
155  struct delimeter
+
156  {
+
157  CTy value[3];
+
158 
+
159  explicit delimeter(CTy /* left */, CTy /* right */, CTy /* separator */ = ',');
+
160  };
+
161 
+
162  struct order
+
163  {
+
164  order_type value;
+
165 
+
166  explicit order(order_type);
+
167  };
+
168 
+
169  // functions, inlined (inline)
+
170 
+
171  template <typename FTy, typename CTy, typename CTr>
+
172  FTy const& get_facet(std::basic_ios<CTy,CTr>&);
+
173  template <typename FTy, typename CTy, typename CTr>
+
174  std::basic_ios<CTy,CTr>& formatted(std::basic_ios<CTy,CTr>&);
+
175  template <typename FTy, typename CTy, typename CTr>
+
176  std::basic_ios<CTy,CTr>& unformattet(std::basic_ios<CTy,CTr>&);
+
177 
+
178  template <typename CTy, typename CTr>
+
179  std::basic_ostream<CTy, CTr>& operator<<(std::basic_ostream<CTy, CTr>&, precision const&);
+
180  template <typename CTy, typename CTr>
+
181  std::basic_ostream<CTy, CTr>& operator<<(std::basic_ostream<CTy, CTr>&, width const&);
+
182  template <typename CTy, typename CTr>
+
183  std::basic_ostream<CTy, CTr>& operator<<(std::basic_ostream<CTy, CTr>&, delimeter<CTy> const&);
+
184  template <typename CTy, typename CTr>
+
185  std::basic_ostream<CTy, CTr>& operator<<(std::basic_ostream<CTy, CTr>&, order const&);
+
186  }//namespace io
+
187 
+
188  template <typename CTy, typename CTr, typename T, precision P>
+
189  GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tquat<T,P> const&);
+
190  template <typename CTy, typename CTr, typename T, precision P>
+
191  GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tvec2<T,P> const&);
+
192  template <typename CTy, typename CTr, typename T, precision P>
+
193  GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tvec3<T,P> const&);
+
194  template <typename CTy, typename CTr, typename T, precision P>
+
195  GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tvec4<T,P> const&);
+
196  template <typename CTy, typename CTr, typename T, precision P>
+
197  GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat2x2<T,P> const&);
+
198  template <typename CTy, typename CTr, typename T, precision P>
+
199  GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat2x3<T,P> const&);
+
200  template <typename CTy, typename CTr, typename T, precision P>
+
201  GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat2x4<T,P> const&);
+
202  template <typename CTy, typename CTr, typename T, precision P>
+
203  GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat3x2<T,P> const&);
+
204  template <typename CTy, typename CTr, typename T, precision P>
+
205  GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat3x3<T,P> const&);
+
206  template <typename CTy, typename CTr, typename T, precision P>
+
207  GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat3x4<T,P> const&);
+
208  template <typename CTy, typename CTr, typename T, precision P>
+
209  GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat4x2<T,P> const&);
+
210  template <typename CTy, typename CTr, typename T, precision P>
+
211  GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat4x3<T,P> const&);
+
212  template <typename CTy, typename CTr, typename T, precision P>
+
213  GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat4x4<T,P> const&);
+
214 
+
215  template <typename CTy, typename CTr, typename T, precision P>
+
216  GLM_FUNC_DECL std::basic_ostream<CTy,CTr> & operator<<(
+
217  std::basic_ostream<CTy,CTr> &,
+
218  std::pair<tmat4x4<T,P> const,
+
219  tmat4x4<T,P> const> const &);
+
220 
+
222 }//namespace glm
+
223 
+
224 #include "io.inl"
+
Definition: _noise.hpp:39
diff --git a/doc/api/a00054.html b/doc/api/a00054.html new file mode 100644 index 00000000..09be7014 --- /dev/null +++ b/doc/api/a00054.html @@ -0,0 +1,86 @@ + + + + + + +0.9.6: log_base.hpp File Reference + + + + + + +
+
+ + + + + + + +
+
0.9.6 +
+
+
+ + + + + +
+
+ +
+
log_base.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + +

+Functions

template<typename genType >
GLM_FUNC_DECL genType log (genType x, genType base)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > sign (vecType< T, P > const &x, vecType< T, P > const &base)
 
+

Detailed Description

+

OpenGL Mathematics (glm.g-truc.net)

+

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+

GLM_GTX_log_base

+
Date
2008-10-24 / 2011-06-07
+
Author
Christophe Riccio
+
See also
GLM Core (dependence)
+ +

Definition in file log_base.hpp.

+
+ + + + diff --git a/doc/api/a00054_source.html b/doc/api/a00054_source.html index 3cfa1ee8..e6e2b042 100644 --- a/doc/api/a00054_source.html +++ b/doc/api/a00054_source.html @@ -3,8 +3,8 @@ - -GLM: intrinsic_geometric.hpp Source File + +0.9.6: log_base.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,69 +41,49 @@
-
intrinsic_geometric.hpp
+
log_base.hpp
-
1 
-
29 #ifndef glm_core_intrinsic_geometric
-
30 #define glm_core_intrinsic_geometric
-
31 
-
32 #include "setup.hpp"
-
33 
-
34 #if(!(GLM_ARCH & GLM_ARCH_SSE2))
-
35 # error "SSE2 instructions not supported or enabled"
-
36 #else
-
37 
-
38 #include "intrinsic_common.hpp"
-
39 
-
40 namespace glm{
-
41 namespace detail
-
42 {
-
43  //length
-
44  __m128 sse_len_ps(__m128 x);
-
45 
-
46  //distance
-
47  __m128 sse_dst_ps(__m128 p0, __m128 p1);
-
48 
-
49  //dot
-
50  __m128 sse_dot_ps(__m128 v1, __m128 v2);
-
51 
-
52  // SSE1
-
53  __m128 sse_dot_ss(__m128 v1, __m128 v2);
-
54 
-
55  //cross
-
56  __m128 sse_xpd_ps(__m128 v1, __m128 v2);
-
57 
-
58  //normalize
-
59  __m128 sse_nrm_ps(__m128 v);
-
60 
-
61  //faceforward
-
62  __m128 sse_ffd_ps(__m128 N, __m128 I, __m128 Nref);
-
63 
-
64  //reflect
-
65  __m128 sse_rfe_ps(__m128 I, __m128 N);
-
66 
-
67  //refract
-
68  __m128 sse_rfa_ps(__m128 I, __m128 N, __m128 eta);
+Go to the documentation of this file.
1 
+
42 #pragma once
+
43 
+
44 // Dependency:
+
45 #include "../glm.hpp"
+
46 
+
47 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+
48 # pragma message("GLM: GLM_GTX_log_base extension included")
+
49 #endif
+
50 
+
51 namespace glm
+
52 {
+
55 
+
58  template <typename genType>
+
59  GLM_FUNC_DECL genType log(
+
60  genType x,
+
61  genType base);
+
62 
+
65  template <typename T, precision P, template <typename, precision> class vecType>
+
66  GLM_FUNC_DECL vecType<T, P> sign(
+
67  vecType<T, P> const & x,
+
68  vecType<T, P> const & base);
69 
-
70 }//namespace detail
71 }//namespace glm
72 
-
73 #include "intrinsic_geometric.inl"
-
74 
-
75 #endif//GLM_ARCH
-
76 #endif//glm_core_intrinsic_geometric
+
73 #include "log_base.inl"
+
GLM_FUNC_DECL genType log(genType x, genType base)
Logarithm for any base.
+
GLM_FUNC_DECL vecType< T, P > sign(vecType< T, P > const &x, vecType< T, P > const &base)
Logarithm for any base.
+
Definition: _noise.hpp:39
diff --git a/doc/api/a00055_source.html b/doc/api/a00055_source.html index 4eb3c5a2..7dedb0f0 100644 --- a/doc/api/a00055_source.html +++ b/doc/api/a00055_source.html @@ -3,8 +3,8 @@ - -GLM: intrinsic_integer.hpp Source File + +0.9.6: man.doxy Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,44 +41,2383 @@
-
intrinsic_integer.hpp
+
man.doxy
-
1 
-
29 #ifndef glm_detail_intrinsic_integer
-
30 #define glm_detail_intrinsic_integer
-
31 
-
32 #include "glm/glm.hpp"
-
33 
-
34 #if(!(GLM_ARCH & GLM_ARCH_SSE2))
-
35 # error "SSE2 instructions not supported or enabled"
-
36 #else
-
37 
-
38 namespace glm{
-
39 namespace detail
-
40 {
-
41  __m128i _mm_bit_interleave_si128(__m128i x);
-
42  __m128i _mm_bit_interleave_si128(__m128i x, __m128i y);
-
43 
-
44 }//namespace detail
-
45 }//namespace glm
+
1 # Doxyfile 1.8.8
+
2 
+
3 # This file describes the settings to be used by the documentation system
+
4 # doxygen (www.doxygen.org) for a project.
+
5 #
+
6 # All text after a double hash (##) is considered a comment and is placed in
+
7 # front of the TAG it is preceding.
+
8 #
+
9 # All text after a single hash (#) is considered a comment and will be ignored.
+
10 # The format is:
+
11 # TAG = value [value, ...]
+
12 # For lists, items can also be appended using:
+
13 # TAG += value [value, ...]
+
14 # Values that contain spaces should be placed between quotes (\" \").
+
15 
+
16 #---------------------------------------------------------------------------
+
17 # Project related configuration options
+
18 #---------------------------------------------------------------------------
+
19 
+
20 # This tag specifies the encoding used for all characters in the config file
+
21 # that follow. The default is UTF-8 which is also the encoding used for all text
+
22 # before the first occurrence of this tag. Doxygen uses libiconv (or the iconv
+
23 # built into libc) for the transcoding. See http://www.gnu.org/software/libiconv
+
24 # for the list of possible encodings.
+
25 # The default value is: UTF-8.
+
26 
+
27 DOXYFILE_ENCODING = UTF-8
+
28 
+
29 # The PROJECT_NAME tag is a single word (or a sequence of words surrounded by
+
30 # double-quotes, unless you are using Doxywizard) that should identify the
+
31 # project for which the documentation is generated. This name is used in the
+
32 # title of most generated pages and in a few other places.
+
33 # The default value is: My Project.
+
34 
+
35 PROJECT_NAME = 0.9.6
+
36 
+
37 # The PROJECT_NUMBER tag can be used to enter a project or revision number. This
+
38 # could be handy for archiving the generated documentation or if some version
+
39 # control system is used.
+
40 
+
41 PROJECT_NUMBER =
+
42 
+
43 # Using the PROJECT_BRIEF tag one can provide an optional one line description
+
44 # for a project that appears at the top of each page and should give viewer a
+
45 # quick idea about the purpose of the project. Keep the description short.
46 
-
47 #include "intrinsic_integer.inl"
+
47 PROJECT_BRIEF =
48 
-
49 #endif//GLM_ARCH
-
50 #endif//glm_detail_intrinsic_integer
-
OpenGL Mathematics (glm.g-truc.net)
+
49 # With the PROJECT_LOGO tag one can specify an logo or icon that is included in
+
50 # the documentation. The maximum height of the logo should not exceed 55 pixels
+
51 # and the maximum width should not exceed 200 pixels. Doxygen will copy the logo
+
52 # to the output directory.
+
53 
+
54 PROJECT_LOGO = E:/Source/G-Truc/glm/doc/logo.png
+
55 
+
56 # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path
+
57 # into which the generated documentation will be written. If a relative path is
+
58 # entered, it will be relative to the location where doxygen was started. If
+
59 # left blank the current directory will be used.
+
60 
+
61 OUTPUT_DIRECTORY = .
+
62 
+
63 # If the CREATE_SUBDIRS tag is set to YES, then doxygen will create 4096 sub-
+
64 # directories (in 2 levels) under the output directory of each output format and
+
65 # will distribute the generated files over these directories. Enabling this
+
66 # option can be useful when feeding doxygen a huge amount of source files, where
+
67 # putting all generated files in the same directory would otherwise causes
+
68 # performance problems for the file system.
+
69 # The default value is: NO.
+
70 
+
71 CREATE_SUBDIRS = NO
+
72 
+
73 # If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII
+
74 # characters to appear in the names of generated files. If set to NO, non-ASCII
+
75 # characters will be escaped, for example _xE3_x81_x84 will be used for Unicode
+
76 # U+3044.
+
77 # The default value is: NO.
+
78 
+
79 ALLOW_UNICODE_NAMES = NO
+
80 
+
81 # The OUTPUT_LANGUAGE tag is used to specify the language in which all
+
82 # documentation generated by doxygen is written. Doxygen will use this
+
83 # information to generate all constant output in the proper language.
+
84 # Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese,
+
85 # Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States),
+
86 # Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian,
+
87 # Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages),
+
88 # Korean, Korean-en (Korean with English messages), Latvian, Lithuanian,
+
89 # Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian,
+
90 # Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish,
+
91 # Ukrainian and Vietnamese.
+
92 # The default value is: English.
+
93 
+
94 OUTPUT_LANGUAGE = English
+
95 
+
96 # If the BRIEF_MEMBER_DESC tag is set to YES doxygen will include brief member
+
97 # descriptions after the members that are listed in the file and class
+
98 # documentation (similar to Javadoc). Set to NO to disable this.
+
99 # The default value is: YES.
+
100 
+
101 BRIEF_MEMBER_DESC = NO
+
102 
+
103 # If the REPEAT_BRIEF tag is set to YES doxygen will prepend the brief
+
104 # description of a member or function before the detailed description
+
105 #
+
106 # Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
+
107 # brief descriptions will be completely suppressed.
+
108 # The default value is: YES.
+
109 
+
110 REPEAT_BRIEF = YES
+
111 
+
112 # This tag implements a quasi-intelligent brief description abbreviator that is
+
113 # used to form the text in various listings. Each string in this list, if found
+
114 # as the leading text of the brief description, will be stripped from the text
+
115 # and the result, after processing the whole list, is used as the annotated
+
116 # text. Otherwise, the brief description is used as-is. If left blank, the
+
117 # following values are used ($name is automatically replaced with the name of
+
118 # the entity):The $name class, The $name widget, The $name file, is, provides,
+
119 # specifies, contains, represents, a, an and the.
+
120 
+
121 ABBREVIATE_BRIEF = "The $name class " \
+
122  "The $name widget " \
+
123  "The $name file " \
+
124  is \
+
125  provides \
+
126  specifies \
+
127  contains \
+
128  represents \
+
129  a \
+
130  an \
+
131  the
+
132 
+
133 # If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
+
134 # doxygen will generate a detailed section even if there is only a brief
+
135 # description.
+
136 # The default value is: NO.
+
137 
+
138 ALWAYS_DETAILED_SEC = NO
+
139 
+
140 # If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
+
141 # inherited members of a class in the documentation of that class as if those
+
142 # members were ordinary class members. Constructors, destructors and assignment
+
143 # operators of the base classes will not be shown.
+
144 # The default value is: NO.
+
145 
+
146 INLINE_INHERITED_MEMB = NO
+
147 
+
148 # If the FULL_PATH_NAMES tag is set to YES doxygen will prepend the full path
+
149 # before files name in the file list and in the header files. If set to NO the
+
150 # shortest path that makes the file name unique will be used
+
151 # The default value is: YES.
+
152 
+
153 FULL_PATH_NAMES = NO
+
154 
+
155 # The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path.
+
156 # Stripping is only done if one of the specified strings matches the left-hand
+
157 # part of the path. The tag can be used to show relative paths in the file list.
+
158 # If left blank the directory from which doxygen is run is used as the path to
+
159 # strip.
+
160 #
+
161 # Note that you can specify absolute paths here, but also relative paths, which
+
162 # will be relative from the directory where doxygen is started.
+
163 # This tag requires that the tag FULL_PATH_NAMES is set to YES.
+
164 
+
165 STRIP_FROM_PATH = "C:/Documents and Settings/Groove/ "
+
166 
+
167 # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the
+
168 # path mentioned in the documentation of a class, which tells the reader which
+
169 # header file to include in order to use a class. If left blank only the name of
+
170 # the header file containing the class definition is used. Otherwise one should
+
171 # specify the list of include paths that are normally passed to the compiler
+
172 # using the -I flag.
+
173 
+
174 STRIP_FROM_INC_PATH =
+
175 
+
176 # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but
+
177 # less readable) file names. This can be useful is your file systems doesn't
+
178 # support long names like on DOS, Mac, or CD-ROM.
+
179 # The default value is: NO.
+
180 
+
181 SHORT_NAMES = YES
+
182 
+
183 # If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the
+
184 # first line (until the first dot) of a Javadoc-style comment as the brief
+
185 # description. If set to NO, the Javadoc-style will behave just like regular Qt-
+
186 # style comments (thus requiring an explicit @brief command for a brief
+
187 # description.)
+
188 # The default value is: NO.
+
189 
+
190 JAVADOC_AUTOBRIEF = YES
+
191 
+
192 # If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first
+
193 # line (until the first dot) of a Qt-style comment as the brief description. If
+
194 # set to NO, the Qt-style will behave just like regular Qt-style comments (thus
+
195 # requiring an explicit \brief command for a brief description.)
+
196 # The default value is: NO.
+
197 
+
198 QT_AUTOBRIEF = NO
+
199 
+
200 # The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a
+
201 # multi-line C++ special comment block (i.e. a block of
+
202 # a brief description. This used to be the default behavior. The new default is
+
203 # to treat a multi-line C++ comment block as a detailed description. Set this
+
204 # tag to YES if you prefer the old behavior instead.
+
205 #
+
206 # Note that setting this tag to YES also means that rational rose comments are
+
207 # not recognized any more.
+
208 # The default value is: NO.
+
209 
+
210 MULTILINE_CPP_IS_BRIEF = NO
+
211 
+
212 # If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the
+
213 # documentation from any documented member that it re-implements.
+
214 # The default value is: YES.
+
215 
+
216 INHERIT_DOCS = YES
+
217 
+
218 # If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce a
+
219 # new page for each member. If set to NO, the documentation of a member will be
+
220 # part of the file/class/namespace that contains it.
+
221 # The default value is: NO.
+
222 
+
223 SEPARATE_MEMBER_PAGES = NO
+
224 
+
225 # The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen
+
226 # uses this value to replace tabs by spaces in code fragments.
+
227 # Minimum value: 1, maximum value: 16, default value: 4.
+
228 
+
229 TAB_SIZE = 8
+
230 
+
231 # This tag can be used to specify a number of aliases that act as commands in
+
232 # the documentation. An alias has the form:
+
233 # name=value
+
234 # For example adding
+
235 # "sideeffect=@par Side Effects:\n"
+
236 # will allow you to put the command \sideeffect (or @sideeffect) in the
+
237 # documentation, which will result in a user-defined paragraph with heading
+
238 # "Side Effects:". You can put \n's in the value part of an alias to insert
+
239 # newlines.
+
240 
+
241 ALIASES =
+
242 
+
243 # This tag can be used to specify a number of word-keyword mappings (TCL only).
+
244 # A mapping has the form "name=value". For example adding "class=itcl::class"
+
245 # will allow you to use the command class in the itcl::class meaning.
+
246 
+
247 TCL_SUBST =
+
248 
+
249 # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources
+
250 # only. Doxygen will then generate output that is more tailored for C. For
+
251 # instance, some of the names that are used will be different. The list of all
+
252 # members will be omitted, etc.
+
253 # The default value is: NO.
+
254 
+
255 OPTIMIZE_OUTPUT_FOR_C = NO
+
256 
+
257 # Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or
+
258 # Python sources only. Doxygen will then generate output that is more tailored
+
259 # for that language. For instance, namespaces will be presented as packages,
+
260 # qualified scopes will look different, etc.
+
261 # The default value is: NO.
+
262 
+
263 OPTIMIZE_OUTPUT_JAVA = NO
+
264 
+
265 # Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran
+
266 # sources. Doxygen will then generate output that is tailored for Fortran.
+
267 # The default value is: NO.
+
268 
+
269 OPTIMIZE_FOR_FORTRAN = NO
+
270 
+
271 # Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL
+
272 # sources. Doxygen will then generate output that is tailored for VHDL.
+
273 # The default value is: NO.
+
274 
+
275 OPTIMIZE_OUTPUT_VHDL = NO
+
276 
+
277 # Doxygen selects the parser to use depending on the extension of the files it
+
278 # parses. With this tag you can assign which parser to use for a given
+
279 # extension. Doxygen has a built-in mapping, but you can override or extend it
+
280 # using this tag. The format is ext=language, where ext is a file extension, and
+
281 # language is one of the parsers supported by doxygen: IDL, Java, Javascript,
+
282 # C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran:
+
283 # FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran:
+
284 # Fortran. In the later case the parser tries to guess whether the code is fixed
+
285 # or free formatted code, this is the default for Fortran type files), VHDL. For
+
286 # instance to make doxygen treat .inc files as Fortran files (default is PHP),
+
287 # and .f files as C (default is Fortran), use: inc=Fortran f=C.
+
288 #
+
289 # Note For files without extension you can use no_extension as a placeholder.
+
290 #
+
291 # Note that for custom extensions you also need to set FILE_PATTERNS otherwise
+
292 # the files are not read by doxygen.
+
293 
+
294 EXTENSION_MAPPING =
+
295 
+
296 # If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments
+
297 # according to the Markdown format, which allows for more readable
+
298 # documentation. See http://daringfireball.net/projects/markdown/ for details.
+
299 # The output of markdown processing is further processed by doxygen, so you can
+
300 # mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in
+
301 # case of backward compatibilities issues.
+
302 # The default value is: YES.
+
303 
+
304 MARKDOWN_SUPPORT = YES
+
305 
+
306 # When enabled doxygen tries to link words that correspond to documented
+
307 # classes, or namespaces to their corresponding documentation. Such a link can
+
308 # be prevented in individual cases by by putting a % sign in front of the word
+
309 # or globally by setting AUTOLINK_SUPPORT to NO.
+
310 # The default value is: YES.
+
311 
+
312 AUTOLINK_SUPPORT = YES
+
313 
+
314 # If you use STL classes (i.e. std::string, std::vector, etc.) but do not want
+
315 # to include (a tag file for) the STL sources as input, then you should set this
+
316 # tag to YES in order to let doxygen match functions declarations and
+
317 # definitions whose arguments contain STL classes (e.g. func(std::string);
+
318 # versus func(std::string) {}). This also make the inheritance and collaboration
+
319 # diagrams that involve STL classes more complete and accurate.
+
320 # The default value is: NO.
+
321 
+
322 BUILTIN_STL_SUPPORT = NO
+
323 
+
324 # If you use Microsoft's C++/CLI language, you should set this option to YES to
+
325 # enable parsing support.
+
326 # The default value is: NO.
+
327 
+
328 CPP_CLI_SUPPORT = NO
+
329 
+
330 # Set the SIP_SUPPORT tag to YES if your project consists of sip (see:
+
331 # http://www.riverbankcomputing.co.uk/software/sip/intro) sources only. Doxygen
+
332 # will parse them like normal C++ but will assume all classes use public instead
+
333 # of private inheritance when no explicit protection keyword is present.
+
334 # The default value is: NO.
+
335 
+
336 SIP_SUPPORT = NO
+
337 
+
338 # For Microsoft's IDL there are propget and propput attributes to indicate
+
339 # getter and setter methods for a property. Setting this option to YES will make
+
340 # doxygen to replace the get and set methods by a property in the documentation.
+
341 # This will only work if the methods are indeed getting or setting a simple
+
342 # type. If this is not the case, or you want to show the methods anyway, you
+
343 # should set this option to NO.
+
344 # The default value is: YES.
+
345 
+
346 IDL_PROPERTY_SUPPORT = YES
+
347 
+
348 # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
+
349 # tag is set to YES, then doxygen will reuse the documentation of the first
+
350 # member in the group (if any) for the other members of the group. By default
+
351 # all members of a group must be documented explicitly.
+
352 # The default value is: NO.
+
353 
+
354 DISTRIBUTE_GROUP_DOC = NO
+
355 
+
356 # Set the SUBGROUPING tag to YES to allow class member groups of the same type
+
357 # (for instance a group of public functions) to be put as a subgroup of that
+
358 # type (e.g. under the Public Functions section). Set it to NO to prevent
+
359 # subgrouping. Alternatively, this can be done per class using the
+
360 # \nosubgrouping command.
+
361 # The default value is: YES.
+
362 
+
363 SUBGROUPING = NO
+
364 
+
365 # When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions
+
366 # are shown inside the group in which they are included (e.g. using \ingroup)
+
367 # instead of on a separate page (for HTML and Man pages) or section (for LaTeX
+
368 # and RTF).
+
369 #
+
370 # Note that this feature does not work in combination with
+
371 # SEPARATE_MEMBER_PAGES.
+
372 # The default value is: NO.
+
373 
+
374 INLINE_GROUPED_CLASSES = NO
+
375 
+
376 # When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions
+
377 # with only public data fields or simple typedef fields will be shown inline in
+
378 # the documentation of the scope in which they are defined (i.e. file,
+
379 # namespace, or group documentation), provided this scope is documented. If set
+
380 # to NO, structs, classes, and unions are shown on a separate page (for HTML and
+
381 # Man pages) or section (for LaTeX and RTF).
+
382 # The default value is: NO.
+
383 
+
384 INLINE_SIMPLE_STRUCTS = NO
+
385 
+
386 # When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or
+
387 # enum is documented as struct, union, or enum with the name of the typedef. So
+
388 # typedef struct TypeS {} TypeT, will appear in the documentation as a struct
+
389 # with name TypeT. When disabled the typedef will appear as a member of a file,
+
390 # namespace, or class. And the struct will be named TypeS. This can typically be
+
391 # useful for C code in case the coding convention dictates that all compound
+
392 # types are typedef'ed and only the typedef is referenced, never the tag name.
+
393 # The default value is: NO.
+
394 
+
395 TYPEDEF_HIDES_STRUCT = NO
+
396 
+
397 # The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This
+
398 # cache is used to resolve symbols given their name and scope. Since this can be
+
399 # an expensive process and often the same symbol appears multiple times in the
+
400 # code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small
+
401 # doxygen will become slower. If the cache is too large, memory is wasted. The
+
402 # cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range
+
403 # is 0..9, the default is 0, corresponding to a cache size of 2^16=65536
+
404 # symbols. At the end of a run doxygen will report the cache usage and suggest
+
405 # the optimal cache size from a speed point of view.
+
406 # Minimum value: 0, maximum value: 9, default value: 0.
+
407 
+
408 LOOKUP_CACHE_SIZE = 0
+
409 
+
410 #---------------------------------------------------------------------------
+
411 # Build related configuration options
+
412 #---------------------------------------------------------------------------
+
413 
+
414 # If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
+
415 # documentation are documented, even if no documentation was available. Private
+
416 # class members and static file members will be hidden unless the
+
417 # EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES.
+
418 # Note: This will also disable the warnings about undocumented members that are
+
419 # normally produced when WARNINGS is set to YES.
+
420 # The default value is: NO.
+
421 
+
422 EXTRACT_ALL = NO
+
423 
+
424 # If the EXTRACT_PRIVATE tag is set to YES all private members of a class will
+
425 # be included in the documentation.
+
426 # The default value is: NO.
+
427 
+
428 EXTRACT_PRIVATE = NO
+
429 
+
430 # If the EXTRACT_PACKAGE tag is set to YES all members with package or internal
+
431 # scope will be included in the documentation.
+
432 # The default value is: NO.
+
433 
+
434 EXTRACT_PACKAGE = NO
+
435 
+
436 # If the EXTRACT_STATIC tag is set to YES all static members of a file will be
+
437 # included in the documentation.
+
438 # The default value is: NO.
+
439 
+
440 EXTRACT_STATIC = YES
+
441 
+
442 # If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) defined
+
443 # locally in source files will be included in the documentation. If set to NO
+
444 # only classes defined in header files are included. Does not have any effect
+
445 # for Java sources.
+
446 # The default value is: YES.
+
447 
+
448 EXTRACT_LOCAL_CLASSES = NO
+
449 
+
450 # This flag is only useful for Objective-C code. When set to YES local methods,
+
451 # which are defined in the implementation section but not in the interface are
+
452 # included in the documentation. If set to NO only methods in the interface are
+
453 # included.
+
454 # The default value is: NO.
+
455 
+
456 EXTRACT_LOCAL_METHODS = NO
+
457 
+
458 # If this flag is set to YES, the members of anonymous namespaces will be
+
459 # extracted and appear in the documentation as a namespace called
+
460 # 'anonymous_namespace{file}', where file will be replaced with the base name of
+
461 # the file that contains the anonymous namespace. By default anonymous namespace
+
462 # are hidden.
+
463 # The default value is: NO.
+
464 
+
465 EXTRACT_ANON_NSPACES = NO
+
466 
+
467 # If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all
+
468 # undocumented members inside documented classes or files. If set to NO these
+
469 # members will be included in the various overviews, but no documentation
+
470 # section is generated. This option has no effect if EXTRACT_ALL is enabled.
+
471 # The default value is: NO.
+
472 
+
473 HIDE_UNDOC_MEMBERS = YES
+
474 
+
475 # If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all
+
476 # undocumented classes that are normally visible in the class hierarchy. If set
+
477 # to NO these classes will be included in the various overviews. This option has
+
478 # no effect if EXTRACT_ALL is enabled.
+
479 # The default value is: NO.
+
480 
+
481 HIDE_UNDOC_CLASSES = YES
+
482 
+
483 # If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend
+
484 # (class|struct|union) declarations. If set to NO these declarations will be
+
485 # included in the documentation.
+
486 # The default value is: NO.
+
487 
+
488 HIDE_FRIEND_COMPOUNDS = YES
+
489 
+
490 # If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any
+
491 # documentation blocks found inside the body of a function. If set to NO these
+
492 # blocks will be appended to the function's detailed documentation block.
+
493 # The default value is: NO.
+
494 
+
495 HIDE_IN_BODY_DOCS = YES
+
496 
+
497 # The INTERNAL_DOCS tag determines if documentation that is typed after a
+
498 # \internal command is included. If the tag is set to NO then the documentation
+
499 # will be excluded. Set it to YES to include the internal documentation.
+
500 # The default value is: NO.
+
501 
+
502 INTERNAL_DOCS = NO
+
503 
+
504 # If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file
+
505 # names in lower-case letters. If set to YES upper-case letters are also
+
506 # allowed. This is useful if you have classes or files whose names only differ
+
507 # in case and if your file system supports case sensitive file names. Windows
+
508 # and Mac users are advised to set this option to NO.
+
509 # The default value is: system dependent.
+
510 
+
511 CASE_SENSE_NAMES = YES
+
512 
+
513 # If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with
+
514 # their full class and namespace scopes in the documentation. If set to YES the
+
515 # scope will be hidden.
+
516 # The default value is: NO.
+
517 
+
518 HIDE_SCOPE_NAMES = YES
+
519 
+
520 # If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of
+
521 # the files that are included by a file in the documentation of that file.
+
522 # The default value is: YES.
+
523 
+
524 SHOW_INCLUDE_FILES = NO
+
525 
+
526 # If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each
+
527 # grouped member an include statement to the documentation, telling the reader
+
528 # which file to include in order to use the member.
+
529 # The default value is: NO.
+
530 
+
531 SHOW_GROUPED_MEMB_INC = NO
+
532 
+
533 # If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include
+
534 # files with double quotes in the documentation rather than with sharp brackets.
+
535 # The default value is: NO.
+
536 
+
537 FORCE_LOCAL_INCLUDES = NO
+
538 
+
539 # If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the
+
540 # documentation for inline members.
+
541 # The default value is: YES.
+
542 
+
543 INLINE_INFO = NO
+
544 
+
545 # If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the
+
546 # (detailed) documentation of file and class members alphabetically by member
+
547 # name. If set to NO the members will appear in declaration order.
+
548 # The default value is: YES.
+
549 
+
550 SORT_MEMBER_DOCS = YES
+
551 
+
552 # If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief
+
553 # descriptions of file, namespace and class members alphabetically by member
+
554 # name. If set to NO the members will appear in declaration order. Note that
+
555 # this will also influence the order of the classes in the class list.
+
556 # The default value is: NO.
+
557 
+
558 SORT_BRIEF_DOCS = YES
+
559 
+
560 # If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the
+
561 # (brief and detailed) documentation of class members so that constructors and
+
562 # destructors are listed first. If set to NO the constructors will appear in the
+
563 # respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS.
+
564 # Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief
+
565 # member documentation.
+
566 # Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting
+
567 # detailed member documentation.
+
568 # The default value is: NO.
+
569 
+
570 SORT_MEMBERS_CTORS_1ST = NO
+
571 
+
572 # If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy
+
573 # of group names into alphabetical order. If set to NO the group names will
+
574 # appear in their defined order.
+
575 # The default value is: NO.
+
576 
+
577 SORT_GROUP_NAMES = NO
+
578 
+
579 # If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by
+
580 # fully-qualified names, including namespaces. If set to NO, the class list will
+
581 # be sorted only by class name, not including the namespace part.
+
582 # Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
+
583 # Note: This option applies only to the class list, not to the alphabetical
+
584 # list.
+
585 # The default value is: NO.
+
586 
+
587 SORT_BY_SCOPE_NAME = YES
+
588 
+
589 # If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper
+
590 # type resolution of all parameters of a function it will reject a match between
+
591 # the prototype and the implementation of a member function even if there is
+
592 # only one candidate or it is obvious which candidate to choose by doing a
+
593 # simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still
+
594 # accept a match between prototype and implementation in such cases.
+
595 # The default value is: NO.
+
596 
+
597 STRICT_PROTO_MATCHING = NO
+
598 
+
599 # The GENERATE_TODOLIST tag can be used to enable ( YES) or disable ( NO) the
+
600 # todo list. This list is created by putting \todo commands in the
+
601 # documentation.
+
602 # The default value is: YES.
+
603 
+
604 GENERATE_TODOLIST = YES
+
605 
+
606 # The GENERATE_TESTLIST tag can be used to enable ( YES) or disable ( NO) the
+
607 # test list. This list is created by putting \test commands in the
+
608 # documentation.
+
609 # The default value is: YES.
+
610 
+
611 GENERATE_TESTLIST = YES
+
612 
+
613 # The GENERATE_BUGLIST tag can be used to enable ( YES) or disable ( NO) the bug
+
614 # list. This list is created by putting \bug commands in the documentation.
+
615 # The default value is: YES.
+
616 
+
617 GENERATE_BUGLIST = YES
+
618 
+
619 # The GENERATE_DEPRECATEDLIST tag can be used to enable ( YES) or disable ( NO)
+
620 # the deprecated list. This list is created by putting \deprecated commands in
+
621 # the documentation.
+
622 # The default value is: YES.
+
623 
+
624 GENERATE_DEPRECATEDLIST= YES
+
625 
+
626 # The ENABLED_SECTIONS tag can be used to enable conditional documentation
+
627 # sections, marked by \if <section_label> ... \endif and \cond <section_label>
+
628 # ... \endcond blocks.
+
629 
+
630 ENABLED_SECTIONS =
+
631 
+
632 # The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the
+
633 # initial value of a variable or macro / define can have for it to appear in the
+
634 # documentation. If the initializer consists of more lines than specified here
+
635 # it will be hidden. Use a value of 0 to hide initializers completely. The
+
636 # appearance of the value of individual variables and macros / defines can be
+
637 # controlled using \showinitializer or \hideinitializer command in the
+
638 # documentation regardless of this setting.
+
639 # Minimum value: 0, maximum value: 10000, default value: 30.
+
640 
+
641 MAX_INITIALIZER_LINES = 30
+
642 
+
643 # Set the SHOW_USED_FILES tag to NO to disable the list of files generated at
+
644 # the bottom of the documentation of classes and structs. If set to YES the list
+
645 # will mention the files that were used to generate the documentation.
+
646 # The default value is: YES.
+
647 
+
648 SHOW_USED_FILES = NO
+
649 
+
650 # Set the SHOW_FILES tag to NO to disable the generation of the Files page. This
+
651 # will remove the Files entry from the Quick Index and from the Folder Tree View
+
652 # (if specified).
+
653 # The default value is: YES.
+
654 
+
655 SHOW_FILES = YES
+
656 
+
657 # Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces
+
658 # page. This will remove the Namespaces entry from the Quick Index and from the
+
659 # Folder Tree View (if specified).
+
660 # The default value is: YES.
+
661 
+
662 SHOW_NAMESPACES = YES
+
663 
+
664 # The FILE_VERSION_FILTER tag can be used to specify a program or script that
+
665 # doxygen should invoke to get the current version for each file (typically from
+
666 # the version control system). Doxygen will invoke the program by executing (via
+
667 # popen()) the command command input-file, where command is the value of the
+
668 # FILE_VERSION_FILTER tag, and input-file is the name of an input file provided
+
669 # by doxygen. Whatever the program writes to standard output is used as the file
+
670 # version. For an example see the documentation.
+
671 
+
672 FILE_VERSION_FILTER =
+
673 
+
674 # The LAYOUT_FILE tag can be used to specify a layout file which will be parsed
+
675 # by doxygen. The layout file controls the global structure of the generated
+
676 # output files in an output format independent way. To create the layout file
+
677 # that represents doxygen's defaults, run doxygen with the -l option. You can
+
678 # optionally specify a file name after the option, if omitted DoxygenLayout.xml
+
679 # will be used as the name of the layout file.
+
680 #
+
681 # Note that if you run doxygen from a directory containing a file called
+
682 # DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE
+
683 # tag is left empty.
+
684 
+
685 LAYOUT_FILE =
+
686 
+
687 # The CITE_BIB_FILES tag can be used to specify one or more bib files containing
+
688 # the reference definitions. This must be a list of .bib files. The .bib
+
689 # extension is automatically appended if omitted. This requires the bibtex tool
+
690 # to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info.
+
691 # For LaTeX the style of the bibliography can be controlled using
+
692 # LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the
+
693 # search path. See also \cite for info how to create references.
+
694 
+
695 CITE_BIB_FILES =
+
696 
+
697 #---------------------------------------------------------------------------
+
698 # Configuration options related to warning and progress messages
+
699 #---------------------------------------------------------------------------
+
700 
+
701 # The QUIET tag can be used to turn on/off the messages that are generated to
+
702 # standard output by doxygen. If QUIET is set to YES this implies that the
+
703 # messages are off.
+
704 # The default value is: NO.
+
705 
+
706 QUIET = NO
+
707 
+
708 # The WARNINGS tag can be used to turn on/off the warning messages that are
+
709 # generated to standard error ( stderr) by doxygen. If WARNINGS is set to YES
+
710 # this implies that the warnings are on.
+
711 #
+
712 # Tip: Turn warnings on while writing the documentation.
+
713 # The default value is: YES.
+
714 
+
715 WARNINGS = YES
+
716 
+
717 # If the WARN_IF_UNDOCUMENTED tag is set to YES, then doxygen will generate
+
718 # warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag
+
719 # will automatically be disabled.
+
720 # The default value is: YES.
+
721 
+
722 WARN_IF_UNDOCUMENTED = YES
+
723 
+
724 # If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for
+
725 # potential errors in the documentation, such as not documenting some parameters
+
726 # in a documented function, or documenting parameters that don't exist or using
+
727 # markup commands wrongly.
+
728 # The default value is: YES.
+
729 
+
730 WARN_IF_DOC_ERROR = YES
+
731 
+
732 # This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that
+
733 # are documented, but have no documentation for their parameters or return
+
734 # value. If set to NO doxygen will only warn about wrong or incomplete parameter
+
735 # documentation, but not about the absence of documentation.
+
736 # The default value is: NO.
+
737 
+
738 WARN_NO_PARAMDOC = NO
+
739 
+
740 # The WARN_FORMAT tag determines the format of the warning messages that doxygen
+
741 # can produce. The string should contain the $file, $line, and $text tags, which
+
742 # will be replaced by the file and line number from which the warning originated
+
743 # and the warning text. Optionally the format may contain $version, which will
+
744 # be replaced by the version of the file (if it could be obtained via
+
745 # FILE_VERSION_FILTER)
+
746 # The default value is: $file:$line: $text.
+
747 
+
748 WARN_FORMAT = "$file:$line: $text"
+
749 
+
750 # The WARN_LOGFILE tag can be used to specify a file to which warning and error
+
751 # messages should be written. If left blank the output is written to standard
+
752 # error (stderr).
+
753 
+
754 WARN_LOGFILE =
+
755 
+
756 #---------------------------------------------------------------------------
+
757 # Configuration options related to the input files
+
758 #---------------------------------------------------------------------------
+
759 
+
760 # The INPUT tag is used to specify the files and/or directories that contain
+
761 # documented source files. You may enter file names like myfile.cpp or
+
762 # directories like /usr/src/myproject. Separate the files or directories with
+
763 # spaces.
+
764 # Note: If this tag is empty the current directory is searched.
+
765 
+
766 INPUT = ../glm \
+
767  .
+
768 
+
769 # This tag can be used to specify the character encoding of the source files
+
770 # that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
+
771 # libiconv (or the iconv built into libc) for the transcoding. See the libiconv
+
772 # documentation (see: http://www.gnu.org/software/libiconv) for the list of
+
773 # possible encodings.
+
774 # The default value is: UTF-8.
+
775 
+
776 INPUT_ENCODING = UTF-8
+
777 
+
778 # If the value of the INPUT tag contains directories, you can use the
+
779 # FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and
+
780 # *.h) to filter out the source-files in the directories. If left blank the
+
781 # following patterns are tested:*.c, *.cc, *.cxx, *.cpp, *.c++, *.java, *.ii,
+
782 # *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, *.hh, *.hxx, *.hpp,
+
783 # *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, *.m, *.markdown,
+
784 # *.md, *.mm, *.dox, *.py, *.f90, *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf,
+
785 # *.qsf, *.as and *.js.
+
786 
+
787 FILE_PATTERNS = *.hpp \
+
788  *.doxy
+
789 
+
790 # The RECURSIVE tag can be used to specify whether or not subdirectories should
+
791 # be searched for input files as well.
+
792 # The default value is: NO.
+
793 
+
794 RECURSIVE = YES
+
795 
+
796 # The EXCLUDE tag can be used to specify files and/or directories that should be
+
797 # excluded from the INPUT source files. This way you can easily exclude a
+
798 # subdirectory from a directory tree whose root is specified with the INPUT tag.
+
799 #
+
800 # Note that relative paths are relative to the directory from which doxygen is
+
801 # run.
+
802 
+
803 EXCLUDE =
+
804 
+
805 # The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
+
806 # directories that are symbolic links (a Unix file system feature) are excluded
+
807 # from the input.
+
808 # The default value is: NO.
+
809 
+
810 EXCLUDE_SYMLINKS = NO
+
811 
+
812 # If the value of the INPUT tag contains directories, you can use the
+
813 # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
+
814 # certain files from those directories.
+
815 #
+
816 # Note that the wildcards are matched against the file with absolute path, so to
+
817 # exclude all test directories for example use the pattern */test/*
+
818 
+
819 EXCLUDE_PATTERNS =
+
820 
+
821 # The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
+
822 # (namespaces, classes, functions, etc.) that should be excluded from the
+
823 # output. The symbol name can be a fully qualified name, a word, or if the
+
824 # wildcard * is used, a substring. Examples: ANamespace, AClass,
+
825 # AClass::ANamespace, ANamespace::*Test
+
826 #
+
827 # Note that the wildcards are matched against the file with absolute path, so to
+
828 # exclude all test directories use the pattern */test/*
+
829 
+
830 EXCLUDE_SYMBOLS =
+
831 
+
832 # The EXAMPLE_PATH tag can be used to specify one or more files or directories
+
833 # that contain example code fragments that are included (see the \include
+
834 # command).
+
835 
+
836 EXAMPLE_PATH =
+
837 
+
838 # If the value of the EXAMPLE_PATH tag contains directories, you can use the
+
839 # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and
+
840 # *.h) to filter out the source-files in the directories. If left blank all
+
841 # files are included.
+
842 
+
843 EXAMPLE_PATTERNS = *
+
844 
+
845 # If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
+
846 # searched for input files to be used with the \include or \dontinclude commands
+
847 # irrespective of the value of the RECURSIVE tag.
+
848 # The default value is: NO.
+
849 
+
850 EXAMPLE_RECURSIVE = NO
+
851 
+
852 # The IMAGE_PATH tag can be used to specify one or more files or directories
+
853 # that contain images that are to be included in the documentation (see the
+
854 # \image command).
+
855 
+
856 IMAGE_PATH =
+
857 
+
858 # The INPUT_FILTER tag can be used to specify a program that doxygen should
+
859 # invoke to filter for each input file. Doxygen will invoke the filter program
+
860 # by executing (via popen()) the command:
+
861 #
+
862 # <filter> <input-file>
+
863 #
+
864 # where <filter> is the value of the INPUT_FILTER tag, and <input-file> is the
+
865 # name of an input file. Doxygen will then use the output that the filter
+
866 # program writes to standard output. If FILTER_PATTERNS is specified, this tag
+
867 # will be ignored.
+
868 #
+
869 # Note that the filter must not add or remove lines; it is applied before the
+
870 # code is scanned, but not when the output code is generated. If lines are added
+
871 # or removed, the anchors will not be placed correctly.
+
872 
+
873 INPUT_FILTER =
+
874 
+
875 # The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
+
876 # basis. Doxygen will compare the file name with each pattern and apply the
+
877 # filter if there is a match. The filters are a list of the form: pattern=filter
+
878 # (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how
+
879 # filters are used. If the FILTER_PATTERNS tag is empty or if none of the
+
880 # patterns match the file name, INPUT_FILTER is applied.
+
881 
+
882 FILTER_PATTERNS =
+
883 
+
884 # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
+
885 # INPUT_FILTER ) will also be used to filter the input files that are used for
+
886 # producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES).
+
887 # The default value is: NO.
+
888 
+
889 FILTER_SOURCE_FILES = NO
+
890 
+
891 # The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file
+
892 # pattern. A pattern will override the setting for FILTER_PATTERN (if any) and
+
893 # it is also possible to disable source filtering for a specific pattern using
+
894 # *.ext= (so without naming a filter).
+
895 # This tag requires that the tag FILTER_SOURCE_FILES is set to YES.
+
896 
+
897 FILTER_SOURCE_PATTERNS =
+
898 
+
899 # If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that
+
900 # is part of the input, its contents will be placed on the main page
+
901 # (index.html). This can be useful if you have a project on for instance GitHub
+
902 # and want to reuse the introduction page also for the doxygen output.
+
903 
+
904 USE_MDFILE_AS_MAINPAGE =
+
905 
+
906 #---------------------------------------------------------------------------
+
907 # Configuration options related to source browsing
+
908 #---------------------------------------------------------------------------
+
909 
+
910 # If the SOURCE_BROWSER tag is set to YES then a list of source files will be
+
911 # generated. Documented entities will be cross-referenced with these sources.
+
912 #
+
913 # Note: To get rid of all source code in the generated output, make sure that
+
914 # also VERBATIM_HEADERS is set to NO.
+
915 # The default value is: NO.
+
916 
+
917 SOURCE_BROWSER = YES
+
918 
+
919 # Setting the INLINE_SOURCES tag to YES will include the body of functions,
+
920 # classes and enums directly into the documentation.
+
921 # The default value is: NO.
+
922 
+
923 INLINE_SOURCES = NO
+
924 
+
925 # Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any
+
926 # special comment blocks from generated source code fragments. Normal C, C++ and
+
927 # Fortran comments will always remain visible.
+
928 # The default value is: YES.
+
929 
+
930 STRIP_CODE_COMMENTS = YES
+
931 
+
932 # If the REFERENCED_BY_RELATION tag is set to YES then for each documented
+
933 # function all documented functions referencing it will be listed.
+
934 # The default value is: NO.
+
935 
+
936 REFERENCED_BY_RELATION = YES
+
937 
+
938 # If the REFERENCES_RELATION tag is set to YES then for each documented function
+
939 # all documented entities called/used by that function will be listed.
+
940 # The default value is: NO.
+
941 
+
942 REFERENCES_RELATION = YES
+
943 
+
944 # If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set
+
945 # to YES, then the hyperlinks from functions in REFERENCES_RELATION and
+
946 # REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will
+
947 # link to the documentation.
+
948 # The default value is: YES.
+
949 
+
950 REFERENCES_LINK_SOURCE = YES
+
951 
+
952 # If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the
+
953 # source code will show a tooltip with additional information such as prototype,
+
954 # brief description and links to the definition and documentation. Since this
+
955 # will make the HTML file larger and loading of large files a bit slower, you
+
956 # can opt to disable this feature.
+
957 # The default value is: YES.
+
958 # This tag requires that the tag SOURCE_BROWSER is set to YES.
+
959 
+
960 SOURCE_TOOLTIPS = YES
+
961 
+
962 # If the USE_HTAGS tag is set to YES then the references to source code will
+
963 # point to the HTML generated by the htags(1) tool instead of doxygen built-in
+
964 # source browser. The htags tool is part of GNU's global source tagging system
+
965 # (see http://www.gnu.org/software/global/global.html). You will need version
+
966 # 4.8.6 or higher.
+
967 #
+
968 # To use it do the following:
+
969 # - Install the latest version of global
+
970 # - Enable SOURCE_BROWSER and USE_HTAGS in the config file
+
971 # - Make sure the INPUT points to the root of the source tree
+
972 # - Run doxygen as normal
+
973 #
+
974 # Doxygen will invoke htags (and that will in turn invoke gtags), so these
+
975 # tools must be available from the command line (i.e. in the search path).
+
976 #
+
977 # The result: instead of the source browser generated by doxygen, the links to
+
978 # source code will now point to the output of htags.
+
979 # The default value is: NO.
+
980 # This tag requires that the tag SOURCE_BROWSER is set to YES.
+
981 
+
982 USE_HTAGS = NO
+
983 
+
984 # If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a
+
985 # verbatim copy of the header file for each class for which an include is
+
986 # specified. Set to NO to disable this.
+
987 # See also: Section \class.
+
988 # The default value is: YES.
+
989 
+
990 VERBATIM_HEADERS = YES
+
991 
+
992 # If the CLANG_ASSISTED_PARSING tag is set to YES, then doxygen will use the
+
993 # clang parser (see: http://clang.llvm.org/) for more accurate parsing at the
+
994 # cost of reduced performance. This can be particularly helpful with template
+
995 # rich C++ code for which doxygen's built-in parser lacks the necessary type
+
996 # information.
+
997 # Note: The availability of this option depends on whether or not doxygen was
+
998 # compiled with the --with-libclang option.
+
999 # The default value is: NO.
+
1000 
+
1001 CLANG_ASSISTED_PARSING = NO
+
1002 
+
1003 # If clang assisted parsing is enabled you can provide the compiler with command
+
1004 # line options that you would normally use when invoking the compiler. Note that
+
1005 # the include paths will already be set by doxygen for the files and directories
+
1006 # specified with INPUT and INCLUDE_PATH.
+
1007 # This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES.
+
1008 
+
1009 CLANG_OPTIONS =
+
1010 
+
1011 #---------------------------------------------------------------------------
+
1012 # Configuration options related to the alphabetical class index
+
1013 #---------------------------------------------------------------------------
+
1014 
+
1015 # If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all
+
1016 # compounds will be generated. Enable this if the project contains a lot of
+
1017 # classes, structs, unions or interfaces.
+
1018 # The default value is: YES.
+
1019 
+
1020 ALPHABETICAL_INDEX = NO
+
1021 
+
1022 # The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in
+
1023 # which the alphabetical index list will be split.
+
1024 # Minimum value: 1, maximum value: 20, default value: 5.
+
1025 # This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
+
1026 
+
1027 COLS_IN_ALPHA_INDEX = 5
+
1028 
+
1029 # In case all classes in a project start with a common prefix, all classes will
+
1030 # be put under the same header in the alphabetical index. The IGNORE_PREFIX tag
+
1031 # can be used to specify a prefix (or a list of prefixes) that should be ignored
+
1032 # while generating the index headers.
+
1033 # This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
+
1034 
+
1035 IGNORE_PREFIX =
+
1036 
+
1037 #---------------------------------------------------------------------------
+
1038 # Configuration options related to the HTML output
+
1039 #---------------------------------------------------------------------------
+
1040 
+
1041 # If the GENERATE_HTML tag is set to YES doxygen will generate HTML output
+
1042 # The default value is: YES.
+
1043 
+
1044 GENERATE_HTML = YES
+
1045 
+
1046 # The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a
+
1047 # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+
1048 # it.
+
1049 # The default directory is: html.
+
1050 # This tag requires that the tag GENERATE_HTML is set to YES.
+
1051 
+
1052 HTML_OUTPUT = html
+
1053 
+
1054 # The HTML_FILE_EXTENSION tag can be used to specify the file extension for each
+
1055 # generated HTML page (for example: .htm, .php, .asp).
+
1056 # The default value is: .html.
+
1057 # This tag requires that the tag GENERATE_HTML is set to YES.
+
1058 
+
1059 HTML_FILE_EXTENSION = .html
+
1060 
+
1061 # The HTML_HEADER tag can be used to specify a user-defined HTML header file for
+
1062 # each generated HTML page. If the tag is left blank doxygen will generate a
+
1063 # standard header.
+
1064 #
+
1065 # To get valid HTML the header file that includes any scripts and style sheets
+
1066 # that doxygen needs, which is dependent on the configuration options used (e.g.
+
1067 # the setting GENERATE_TREEVIEW). It is highly recommended to start with a
+
1068 # default header using
+
1069 # doxygen -w html new_header.html new_footer.html new_stylesheet.css
+
1070 # YourConfigFile
+
1071 # and then modify the file new_header.html. See also section "Doxygen usage"
+
1072 # for information on how to generate the default header that doxygen normally
+
1073 # uses.
+
1074 # Note: The header is subject to change so you typically have to regenerate the
+
1075 # default header when upgrading to a newer version of doxygen. For a description
+
1076 # of the possible markers and block names see the documentation.
+
1077 # This tag requires that the tag GENERATE_HTML is set to YES.
+
1078 
+
1079 HTML_HEADER =
+
1080 
+
1081 # The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each
+
1082 # generated HTML page. If the tag is left blank doxygen will generate a standard
+
1083 # footer. See HTML_HEADER for more information on how to generate a default
+
1084 # footer and what special commands can be used inside the footer. See also
+
1085 # section "Doxygen usage" for information on how to generate the default footer
+
1086 # that doxygen normally uses.
+
1087 # This tag requires that the tag GENERATE_HTML is set to YES.
+
1088 
+
1089 HTML_FOOTER =
+
1090 
+
1091 # The HTML_STYLESHEET tag can be used to specify a user-defined cascading style
+
1092 # sheet that is used by each HTML page. It can be used to fine-tune the look of
+
1093 # the HTML output. If left blank doxygen will generate a default style sheet.
+
1094 # See also section "Doxygen usage" for information on how to generate the style
+
1095 # sheet that doxygen normally uses.
+
1096 # Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as
+
1097 # it is more robust and this tag (HTML_STYLESHEET) will in the future become
+
1098 # obsolete.
+
1099 # This tag requires that the tag GENERATE_HTML is set to YES.
+
1100 
+
1101 HTML_STYLESHEET =
+
1102 
+
1103 # The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined
+
1104 # cascading style sheets that are included after the standard style sheets
+
1105 # created by doxygen. Using this option one can overrule certain style aspects.
+
1106 # This is preferred over using HTML_STYLESHEET since it does not replace the
+
1107 # standard style sheet and is therefor more robust against future updates.
+
1108 # Doxygen will copy the style sheet files to the output directory.
+
1109 # Note: The order of the extra stylesheet files is of importance (e.g. the last
+
1110 # stylesheet in the list overrules the setting of the previous ones in the
+
1111 # list). For an example see the documentation.
+
1112 # This tag requires that the tag GENERATE_HTML is set to YES.
+
1113 
+
1114 HTML_EXTRA_STYLESHEET =
+
1115 
+
1116 # The HTML_EXTRA_FILES tag can be used to specify one or more extra images or
+
1117 # other source files which should be copied to the HTML output directory. Note
+
1118 # that these files will be copied to the base HTML output directory. Use the
+
1119 # $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these
+
1120 # files. In the HTML_STYLESHEET file, use the file name only. Also note that the
+
1121 # files will be copied as-is; there are no commands or markers available.
+
1122 # This tag requires that the tag GENERATE_HTML is set to YES.
+
1123 
+
1124 HTML_EXTRA_FILES =
+
1125 
+
1126 # The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen
+
1127 # will adjust the colors in the stylesheet and background images according to
+
1128 # this color. Hue is specified as an angle on a colorwheel, see
+
1129 # http://en.wikipedia.org/wiki/Hue for more information. For instance the value
+
1130 # 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300
+
1131 # purple, and 360 is red again.
+
1132 # Minimum value: 0, maximum value: 359, default value: 220.
+
1133 # This tag requires that the tag GENERATE_HTML is set to YES.
+
1134 
+
1135 HTML_COLORSTYLE_HUE = 220
+
1136 
+
1137 # The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors
+
1138 # in the HTML output. For a value of 0 the output will use grayscales only. A
+
1139 # value of 255 will produce the most vivid colors.
+
1140 # Minimum value: 0, maximum value: 255, default value: 100.
+
1141 # This tag requires that the tag GENERATE_HTML is set to YES.
+
1142 
+
1143 HTML_COLORSTYLE_SAT = 100
+
1144 
+
1145 # The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the
+
1146 # luminance component of the colors in the HTML output. Values below 100
+
1147 # gradually make the output lighter, whereas values above 100 make the output
+
1148 # darker. The value divided by 100 is the actual gamma applied, so 80 represents
+
1149 # a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not
+
1150 # change the gamma.
+
1151 # Minimum value: 40, maximum value: 240, default value: 80.
+
1152 # This tag requires that the tag GENERATE_HTML is set to YES.
+
1153 
+
1154 HTML_COLORSTYLE_GAMMA = 80
+
1155 
+
1156 # If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML
+
1157 # page will contain the date and time when the page was generated. Setting this
+
1158 # to NO can help when comparing the output of multiple runs.
+
1159 # The default value is: YES.
+
1160 # This tag requires that the tag GENERATE_HTML is set to YES.
+
1161 
+
1162 HTML_TIMESTAMP = NO
+
1163 
+
1164 # If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
+
1165 # documentation will contain sections that can be hidden and shown after the
+
1166 # page has loaded.
+
1167 # The default value is: NO.
+
1168 # This tag requires that the tag GENERATE_HTML is set to YES.
+
1169 
+
1170 HTML_DYNAMIC_SECTIONS = NO
+
1171 
+
1172 # With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries
+
1173 # shown in the various tree structured indices initially; the user can expand
+
1174 # and collapse entries dynamically later on. Doxygen will expand the tree to
+
1175 # such a level that at most the specified number of entries are visible (unless
+
1176 # a fully collapsed tree already exceeds this amount). So setting the number of
+
1177 # entries 1 will produce a full collapsed tree by default. 0 is a special value
+
1178 # representing an infinite number of entries and will result in a full expanded
+
1179 # tree by default.
+
1180 # Minimum value: 0, maximum value: 9999, default value: 100.
+
1181 # This tag requires that the tag GENERATE_HTML is set to YES.
+
1182 
+
1183 HTML_INDEX_NUM_ENTRIES = 100
+
1184 
+
1185 # If the GENERATE_DOCSET tag is set to YES, additional index files will be
+
1186 # generated that can be used as input for Apple's Xcode 3 integrated development
+
1187 # environment (see: http://developer.apple.com/tools/xcode/), introduced with
+
1188 # OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a
+
1189 # Makefile in the HTML output directory. Running make will produce the docset in
+
1190 # that directory and running make install will install the docset in
+
1191 # ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at
+
1192 # startup. See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html
+
1193 # for more information.
+
1194 # The default value is: NO.
+
1195 # This tag requires that the tag GENERATE_HTML is set to YES.
+
1196 
+
1197 GENERATE_DOCSET = NO
+
1198 
+
1199 # This tag determines the name of the docset feed. A documentation feed provides
+
1200 # an umbrella under which multiple documentation sets from a single provider
+
1201 # (such as a company or product suite) can be grouped.
+
1202 # The default value is: Doxygen generated docs.
+
1203 # This tag requires that the tag GENERATE_DOCSET is set to YES.
+
1204 
+
1205 DOCSET_FEEDNAME = "Doxygen generated docs"
+
1206 
+
1207 # This tag specifies a string that should uniquely identify the documentation
+
1208 # set bundle. This should be a reverse domain-name style string, e.g.
+
1209 # com.mycompany.MyDocSet. Doxygen will append .docset to the name.
+
1210 # The default value is: org.doxygen.Project.
+
1211 # This tag requires that the tag GENERATE_DOCSET is set to YES.
+
1212 
+
1213 DOCSET_BUNDLE_ID = org.doxygen.Project
+
1214 
+
1215 # The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify
+
1216 # the documentation publisher. This should be a reverse domain-name style
+
1217 # string, e.g. com.mycompany.MyDocSet.documentation.
+
1218 # The default value is: org.doxygen.Publisher.
+
1219 # This tag requires that the tag GENERATE_DOCSET is set to YES.
+
1220 
+
1221 DOCSET_PUBLISHER_ID = org.doxygen.Publisher
+
1222 
+
1223 # The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher.
+
1224 # The default value is: Publisher.
+
1225 # This tag requires that the tag GENERATE_DOCSET is set to YES.
+
1226 
+
1227 DOCSET_PUBLISHER_NAME = Publisher
+
1228 
+
1229 # If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three
+
1230 # additional HTML index files: index.hhp, index.hhc, and index.hhk. The
+
1231 # index.hhp is a project file that can be read by Microsoft's HTML Help Workshop
+
1232 # (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on
+
1233 # Windows.
+
1234 #
+
1235 # The HTML Help Workshop contains a compiler that can convert all HTML output
+
1236 # generated by doxygen into a single compiled HTML file (.chm). Compiled HTML
+
1237 # files are now used as the Windows 98 help format, and will replace the old
+
1238 # Windows help format (.hlp) on all Windows platforms in the future. Compressed
+
1239 # HTML files also contain an index, a table of contents, and you can search for
+
1240 # words in the documentation. The HTML workshop also contains a viewer for
+
1241 # compressed HTML files.
+
1242 # The default value is: NO.
+
1243 # This tag requires that the tag GENERATE_HTML is set to YES.
+
1244 
+
1245 GENERATE_HTMLHELP = NO
+
1246 
+
1247 # The CHM_FILE tag can be used to specify the file name of the resulting .chm
+
1248 # file. You can add a path in front of the file if the result should not be
+
1249 # written to the html output directory.
+
1250 # This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
1251 
+
1252 CHM_FILE =
+
1253 
+
1254 # The HHC_LOCATION tag can be used to specify the location (absolute path
+
1255 # including file name) of the HTML help compiler ( hhc.exe). If non-empty
+
1256 # doxygen will try to run the HTML help compiler on the generated index.hhp.
+
1257 # The file has to be specified with full path.
+
1258 # This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
1259 
+
1260 HHC_LOCATION =
+
1261 
+
1262 # The GENERATE_CHI flag controls if a separate .chi index file is generated (
+
1263 # YES) or that it should be included in the master .chm file ( NO).
+
1264 # The default value is: NO.
+
1265 # This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
1266 
+
1267 GENERATE_CHI = NO
+
1268 
+
1269 # The CHM_INDEX_ENCODING is used to encode HtmlHelp index ( hhk), content ( hhc)
+
1270 # and project file content.
+
1271 # This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
1272 
+
1273 CHM_INDEX_ENCODING =
+
1274 
+
1275 # The BINARY_TOC flag controls whether a binary table of contents is generated (
+
1276 # YES) or a normal table of contents ( NO) in the .chm file. Furthermore it
+
1277 # enables the Previous and Next buttons.
+
1278 # The default value is: NO.
+
1279 # This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
1280 
+
1281 BINARY_TOC = NO
+
1282 
+
1283 # The TOC_EXPAND flag can be set to YES to add extra items for group members to
+
1284 # the table of contents of the HTML help documentation and to the tree view.
+
1285 # The default value is: NO.
+
1286 # This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
1287 
+
1288 TOC_EXPAND = NO
+
1289 
+
1290 # If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and
+
1291 # QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that
+
1292 # can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help
+
1293 # (.qch) of the generated HTML documentation.
+
1294 # The default value is: NO.
+
1295 # This tag requires that the tag GENERATE_HTML is set to YES.
+
1296 
+
1297 GENERATE_QHP = NO
+
1298 
+
1299 # If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify
+
1300 # the file name of the resulting .qch file. The path specified is relative to
+
1301 # the HTML output folder.
+
1302 # This tag requires that the tag GENERATE_QHP is set to YES.
+
1303 
+
1304 QCH_FILE =
+
1305 
+
1306 # The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help
+
1307 # Project output. For more information please see Qt Help Project / Namespace
+
1308 # (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace).
+
1309 # The default value is: org.doxygen.Project.
+
1310 # This tag requires that the tag GENERATE_QHP is set to YES.
+
1311 
+
1312 QHP_NAMESPACE = org.doxygen.Project
+
1313 
+
1314 # The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt
+
1315 # Help Project output. For more information please see Qt Help Project / Virtual
+
1316 # Folders (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual-
+
1317 # folders).
+
1318 # The default value is: doc.
+
1319 # This tag requires that the tag GENERATE_QHP is set to YES.
+
1320 
+
1321 QHP_VIRTUAL_FOLDER = doc
+
1322 
+
1323 # If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom
+
1324 # filter to add. For more information please see Qt Help Project / Custom
+
1325 # Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-
+
1326 # filters).
+
1327 # This tag requires that the tag GENERATE_QHP is set to YES.
+
1328 
+
1329 QHP_CUST_FILTER_NAME =
+
1330 
+
1331 # The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the
+
1332 # custom filter to add. For more information please see Qt Help Project / Custom
+
1333 # Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-
+
1334 # filters).
+
1335 # This tag requires that the tag GENERATE_QHP is set to YES.
+
1336 
+
1337 QHP_CUST_FILTER_ATTRS =
+
1338 
+
1339 # The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this
+
1340 # project's filter section matches. Qt Help Project / Filter Attributes (see:
+
1341 # http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes).
+
1342 # This tag requires that the tag GENERATE_QHP is set to YES.
+
1343 
+
1344 QHP_SECT_FILTER_ATTRS =
+
1345 
+
1346 # The QHG_LOCATION tag can be used to specify the location of Qt's
+
1347 # qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the
+
1348 # generated .qhp file.
+
1349 # This tag requires that the tag GENERATE_QHP is set to YES.
+
1350 
+
1351 QHG_LOCATION =
+
1352 
+
1353 # If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be
+
1354 # generated, together with the HTML files, they form an Eclipse help plugin. To
+
1355 # install this plugin and make it available under the help contents menu in
+
1356 # Eclipse, the contents of the directory containing the HTML and XML files needs
+
1357 # to be copied into the plugins directory of eclipse. The name of the directory
+
1358 # within the plugins directory should be the same as the ECLIPSE_DOC_ID value.
+
1359 # After copying Eclipse needs to be restarted before the help appears.
+
1360 # The default value is: NO.
+
1361 # This tag requires that the tag GENERATE_HTML is set to YES.
+
1362 
+
1363 GENERATE_ECLIPSEHELP = NO
+
1364 
+
1365 # A unique identifier for the Eclipse help plugin. When installing the plugin
+
1366 # the directory name containing the HTML and XML files should also have this
+
1367 # name. Each documentation set should have its own identifier.
+
1368 # The default value is: org.doxygen.Project.
+
1369 # This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES.
+
1370 
+
1371 ECLIPSE_DOC_ID = org.doxygen.Project
+
1372 
+
1373 # If you want full control over the layout of the generated HTML pages it might
+
1374 # be necessary to disable the index and replace it with your own. The
+
1375 # DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top
+
1376 # of each HTML page. A value of NO enables the index and the value YES disables
+
1377 # it. Since the tabs in the index contain the same information as the navigation
+
1378 # tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES.
+
1379 # The default value is: NO.
+
1380 # This tag requires that the tag GENERATE_HTML is set to YES.
+
1381 
+
1382 DISABLE_INDEX = NO
+
1383 
+
1384 # The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
+
1385 # structure should be generated to display hierarchical information. If the tag
+
1386 # value is set to YES, a side panel will be generated containing a tree-like
+
1387 # index structure (just like the one that is generated for HTML Help). For this
+
1388 # to work a browser that supports JavaScript, DHTML, CSS and frames is required
+
1389 # (i.e. any modern browser). Windows users are probably better off using the
+
1390 # HTML help feature. Via custom stylesheets (see HTML_EXTRA_STYLESHEET) one can
+
1391 # further fine-tune the look of the index. As an example, the default style
+
1392 # sheet generated by doxygen has an example that shows how to put an image at
+
1393 # the root of the tree instead of the PROJECT_NAME. Since the tree basically has
+
1394 # the same information as the tab index, you could consider setting
+
1395 # DISABLE_INDEX to YES when enabling this option.
+
1396 # The default value is: NO.
+
1397 # This tag requires that the tag GENERATE_HTML is set to YES.
+
1398 
+
1399 GENERATE_TREEVIEW = NO
+
1400 
+
1401 # The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that
+
1402 # doxygen will group on one line in the generated HTML documentation.
+
1403 #
+
1404 # Note that a value of 0 will completely suppress the enum values from appearing
+
1405 # in the overview section.
+
1406 # Minimum value: 0, maximum value: 20, default value: 4.
+
1407 # This tag requires that the tag GENERATE_HTML is set to YES.
+
1408 
+
1409 ENUM_VALUES_PER_LINE = 4
+
1410 
+
1411 # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used
+
1412 # to set the initial width (in pixels) of the frame in which the tree is shown.
+
1413 # Minimum value: 0, maximum value: 1500, default value: 250.
+
1414 # This tag requires that the tag GENERATE_HTML is set to YES.
+
1415 
+
1416 TREEVIEW_WIDTH = 250
+
1417 
+
1418 # When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open links to
+
1419 # external symbols imported via tag files in a separate window.
+
1420 # The default value is: NO.
+
1421 # This tag requires that the tag GENERATE_HTML is set to YES.
+
1422 
+
1423 EXT_LINKS_IN_WINDOW = NO
+
1424 
+
1425 # Use this tag to change the font size of LaTeX formulas included as images in
+
1426 # the HTML documentation. When you change the font size after a successful
+
1427 # doxygen run you need to manually remove any form_*.png images from the HTML
+
1428 # output directory to force them to be regenerated.
+
1429 # Minimum value: 8, maximum value: 50, default value: 10.
+
1430 # This tag requires that the tag GENERATE_HTML is set to YES.
+
1431 
+
1432 FORMULA_FONTSIZE = 10
+
1433 
+
1434 # Use the FORMULA_TRANPARENT tag to determine whether or not the images
+
1435 # generated for formulas are transparent PNGs. Transparent PNGs are not
+
1436 # supported properly for IE 6.0, but are supported on all modern browsers.
+
1437 #
+
1438 # Note that when changing this option you need to delete any form_*.png files in
+
1439 # the HTML output directory before the changes have effect.
+
1440 # The default value is: YES.
+
1441 # This tag requires that the tag GENERATE_HTML is set to YES.
+
1442 
+
1443 FORMULA_TRANSPARENT = YES
+
1444 
+
1445 # Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see
+
1446 # http://www.mathjax.org) which uses client side Javascript for the rendering
+
1447 # instead of using prerendered bitmaps. Use this if you do not have LaTeX
+
1448 # installed or if you want to formulas look prettier in the HTML output. When
+
1449 # enabled you may also need to install MathJax separately and configure the path
+
1450 # to it using the MATHJAX_RELPATH option.
+
1451 # The default value is: NO.
+
1452 # This tag requires that the tag GENERATE_HTML is set to YES.
+
1453 
+
1454 USE_MATHJAX = NO
+
1455 
+
1456 # When MathJax is enabled you can set the default output format to be used for
+
1457 # the MathJax output. See the MathJax site (see:
+
1458 # http://docs.mathjax.org/en/latest/output.html) for more details.
+
1459 # Possible values are: HTML-CSS (which is slower, but has the best
+
1460 # compatibility), NativeMML (i.e. MathML) and SVG.
+
1461 # The default value is: HTML-CSS.
+
1462 # This tag requires that the tag USE_MATHJAX is set to YES.
+
1463 
+
1464 MATHJAX_FORMAT = HTML-CSS
+
1465 
+
1466 # When MathJax is enabled you need to specify the location relative to the HTML
+
1467 # output directory using the MATHJAX_RELPATH option. The destination directory
+
1468 # should contain the MathJax.js script. For instance, if the mathjax directory
+
1469 # is located at the same level as the HTML output directory, then
+
1470 # MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax
+
1471 # Content Delivery Network so you can quickly see the result without installing
+
1472 # MathJax. However, it is strongly recommended to install a local copy of
+
1473 # MathJax from http://www.mathjax.org before deployment.
+
1474 # The default value is: http://cdn.mathjax.org/mathjax/latest.
+
1475 # This tag requires that the tag USE_MATHJAX is set to YES.
+
1476 
+
1477 MATHJAX_RELPATH = http://www.mathjax.org/mathjax
+
1478 
+
1479 # The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax
+
1480 # extension names that should be enabled during MathJax rendering. For example
+
1481 # MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols
+
1482 # This tag requires that the tag USE_MATHJAX is set to YES.
+
1483 
+
1484 MATHJAX_EXTENSIONS =
+
1485 
+
1486 # The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces
+
1487 # of code that will be used on startup of the MathJax code. See the MathJax site
+
1488 # (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an
+
1489 # example see the documentation.
+
1490 # This tag requires that the tag USE_MATHJAX is set to YES.
+
1491 
+
1492 MATHJAX_CODEFILE =
+
1493 
+
1494 # When the SEARCHENGINE tag is enabled doxygen will generate a search box for
+
1495 # the HTML output. The underlying search engine uses javascript and DHTML and
+
1496 # should work on any modern browser. Note that when using HTML help
+
1497 # (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET)
+
1498 # there is already a search function so this one should typically be disabled.
+
1499 # For large projects the javascript based search engine can be slow, then
+
1500 # enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to
+
1501 # search using the keyboard; to jump to the search box use <access key> + S
+
1502 # (what the <access key> is depends on the OS and browser, but it is typically
+
1503 # <CTRL>, <ALT>/<option>, or both). Inside the search box use the <cursor down
+
1504 # key> to jump into the search results window, the results can be navigated
+
1505 # using the <cursor keys>. Press <Enter> to select an item or <escape> to cancel
+
1506 # the search. The filter options can be selected when the cursor is inside the
+
1507 # search box by pressing <Shift>+<cursor down>. Also here use the <cursor keys>
+
1508 # to select a filter and <Enter> or <escape> to activate or cancel the filter
+
1509 # option.
+
1510 # The default value is: YES.
+
1511 # This tag requires that the tag GENERATE_HTML is set to YES.
+
1512 
+
1513 SEARCHENGINE = NO
+
1514 
+
1515 # When the SERVER_BASED_SEARCH tag is enabled the search engine will be
+
1516 # implemented using a web server instead of a web client using Javascript. There
+
1517 # are two flavors of web server based searching depending on the EXTERNAL_SEARCH
+
1518 # setting. When disabled, doxygen will generate a PHP script for searching and
+
1519 # an index file used by the script. When EXTERNAL_SEARCH is enabled the indexing
+
1520 # and searching needs to be provided by external tools. See the section
+
1521 # "External Indexing and Searching" for details.
+
1522 # The default value is: NO.
+
1523 # This tag requires that the tag SEARCHENGINE is set to YES.
+
1524 
+
1525 SERVER_BASED_SEARCH = NO
+
1526 
+
1527 # When EXTERNAL_SEARCH tag is enabled doxygen will no longer generate the PHP
+
1528 # script for searching. Instead the search results are written to an XML file
+
1529 # which needs to be processed by an external indexer. Doxygen will invoke an
+
1530 # external search engine pointed to by the SEARCHENGINE_URL option to obtain the
+
1531 # search results.
+
1532 #
+
1533 # Doxygen ships with an example indexer ( doxyindexer) and search engine
+
1534 # (doxysearch.cgi) which are based on the open source search engine library
+
1535 # Xapian (see: http://xapian.org/).
+
1536 #
+
1537 # See the section "External Indexing and Searching" for details.
+
1538 # The default value is: NO.
+
1539 # This tag requires that the tag SEARCHENGINE is set to YES.
+
1540 
+
1541 EXTERNAL_SEARCH = NO
+
1542 
+
1543 # The SEARCHENGINE_URL should point to a search engine hosted by a web server
+
1544 # which will return the search results when EXTERNAL_SEARCH is enabled.
+
1545 #
+
1546 # Doxygen ships with an example indexer ( doxyindexer) and search engine
+
1547 # (doxysearch.cgi) which are based on the open source search engine library
+
1548 # Xapian (see: http://xapian.org/). See the section "External Indexing and
+
1549 # Searching" for details.
+
1550 # This tag requires that the tag SEARCHENGINE is set to YES.
+
1551 
+
1552 SEARCHENGINE_URL =
+
1553 
+
1554 # When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the unindexed
+
1555 # search data is written to a file for indexing by an external tool. With the
+
1556 # SEARCHDATA_FILE tag the name of this file can be specified.
+
1557 # The default file is: searchdata.xml.
+
1558 # This tag requires that the tag SEARCHENGINE is set to YES.
+
1559 
+
1560 SEARCHDATA_FILE = searchdata.xml
+
1561 
+
1562 # When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the
+
1563 # EXTERNAL_SEARCH_ID tag can be used as an identifier for the project. This is
+
1564 # useful in combination with EXTRA_SEARCH_MAPPINGS to search through multiple
+
1565 # projects and redirect the results back to the right project.
+
1566 # This tag requires that the tag SEARCHENGINE is set to YES.
+
1567 
+
1568 EXTERNAL_SEARCH_ID =
+
1569 
+
1570 # The EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through doxygen
+
1571 # projects other than the one defined by this configuration file, but that are
+
1572 # all added to the same external search index. Each project needs to have a
+
1573 # unique id set via EXTERNAL_SEARCH_ID. The search mapping then maps the id of
+
1574 # to a relative location where the documentation can be found. The format is:
+
1575 # EXTRA_SEARCH_MAPPINGS = tagname1=loc1 tagname2=loc2 ...
+
1576 # This tag requires that the tag SEARCHENGINE is set to YES.
+
1577 
+
1578 EXTRA_SEARCH_MAPPINGS =
+
1579 
+
1580 #---------------------------------------------------------------------------
+
1581 # Configuration options related to the LaTeX output
+
1582 #---------------------------------------------------------------------------
+
1583 
+
1584 # If the GENERATE_LATEX tag is set to YES doxygen will generate LaTeX output.
+
1585 # The default value is: YES.
+
1586 
+
1587 GENERATE_LATEX = NO
+
1588 
+
1589 # The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. If a
+
1590 # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+
1591 # it.
+
1592 # The default directory is: latex.
+
1593 # This tag requires that the tag GENERATE_LATEX is set to YES.
+
1594 
+
1595 LATEX_OUTPUT = latex
+
1596 
+
1597 # The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
+
1598 # invoked.
+
1599 #
+
1600 # Note that when enabling USE_PDFLATEX this option is only used for generating
+
1601 # bitmaps for formulas in the HTML output, but not in the Makefile that is
+
1602 # written to the output directory.
+
1603 # The default file is: latex.
+
1604 # This tag requires that the tag GENERATE_LATEX is set to YES.
+
1605 
+
1606 LATEX_CMD_NAME = latex
+
1607 
+
1608 # The MAKEINDEX_CMD_NAME tag can be used to specify the command name to generate
+
1609 # index for LaTeX.
+
1610 # The default file is: makeindex.
+
1611 # This tag requires that the tag GENERATE_LATEX is set to YES.
+
1612 
+
1613 MAKEINDEX_CMD_NAME = makeindex
+
1614 
+
1615 # If the COMPACT_LATEX tag is set to YES doxygen generates more compact LaTeX
+
1616 # documents. This may be useful for small projects and may help to save some
+
1617 # trees in general.
+
1618 # The default value is: NO.
+
1619 # This tag requires that the tag GENERATE_LATEX is set to YES.
+
1620 
+
1621 COMPACT_LATEX = NO
+
1622 
+
1623 # The PAPER_TYPE tag can be used to set the paper type that is used by the
+
1624 # printer.
+
1625 # Possible values are: a4 (210 x 297 mm), letter (8.5 x 11 inches), legal (8.5 x
+
1626 # 14 inches) and executive (7.25 x 10.5 inches).
+
1627 # The default value is: a4.
+
1628 # This tag requires that the tag GENERATE_LATEX is set to YES.
+
1629 
+
1630 PAPER_TYPE = a4wide
+
1631 
+
1632 # The EXTRA_PACKAGES tag can be used to specify one or more LaTeX package names
+
1633 # that should be included in the LaTeX output. To get the times font for
+
1634 # instance you can specify
+
1635 # EXTRA_PACKAGES=times
+
1636 # If left blank no extra packages will be included.
+
1637 # This tag requires that the tag GENERATE_LATEX is set to YES.
+
1638 
+
1639 EXTRA_PACKAGES =
+
1640 
+
1641 # The LATEX_HEADER tag can be used to specify a personal LaTeX header for the
+
1642 # generated LaTeX document. The header should contain everything until the first
+
1643 # chapter. If it is left blank doxygen will generate a standard header. See
+
1644 # section "Doxygen usage" for information on how to let doxygen write the
+
1645 # default header to a separate file.
+
1646 #
+
1647 # Note: Only use a user-defined header if you know what you are doing! The
+
1648 # following commands have a special meaning inside the header: $title,
+
1649 # $datetime, $date, $doxygenversion, $projectname, $projectnumber,
+
1650 # $projectbrief, $projectlogo. Doxygen will replace $title with the empy string,
+
1651 # for the replacement values of the other commands the user is refered to
+
1652 # HTML_HEADER.
+
1653 # This tag requires that the tag GENERATE_LATEX is set to YES.
+
1654 
+
1655 LATEX_HEADER =
+
1656 
+
1657 # The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for the
+
1658 # generated LaTeX document. The footer should contain everything after the last
+
1659 # chapter. If it is left blank doxygen will generate a standard footer. See
+
1660 # LATEX_HEADER for more information on how to generate a default footer and what
+
1661 # special commands can be used inside the footer.
+
1662 #
+
1663 # Note: Only use a user-defined footer if you know what you are doing!
+
1664 # This tag requires that the tag GENERATE_LATEX is set to YES.
+
1665 
+
1666 LATEX_FOOTER =
+
1667 
+
1668 # The LATEX_EXTRA_FILES tag can be used to specify one or more extra images or
+
1669 # other source files which should be copied to the LATEX_OUTPUT output
+
1670 # directory. Note that the files will be copied as-is; there are no commands or
+
1671 # markers available.
+
1672 # This tag requires that the tag GENERATE_LATEX is set to YES.
+
1673 
+
1674 LATEX_EXTRA_FILES =
+
1675 
+
1676 # If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated is
+
1677 # prepared for conversion to PDF (using ps2pdf or pdflatex). The PDF file will
+
1678 # contain links (just like the HTML output) instead of page references. This
+
1679 # makes the output suitable for online browsing using a PDF viewer.
+
1680 # The default value is: YES.
+
1681 # This tag requires that the tag GENERATE_LATEX is set to YES.
+
1682 
+
1683 PDF_HYPERLINKS = NO
+
1684 
+
1685 # If the USE_PDFLATEX tag is set to YES, doxygen will use pdflatex to generate
+
1686 # the PDF file directly from the LaTeX files. Set this option to YES to get a
+
1687 # higher quality PDF documentation.
+
1688 # The default value is: YES.
+
1689 # This tag requires that the tag GENERATE_LATEX is set to YES.
+
1690 
+
1691 USE_PDFLATEX = YES
+
1692 
+
1693 # If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \batchmode
+
1694 # command to the generated LaTeX files. This will instruct LaTeX to keep running
+
1695 # if errors occur, instead of asking the user for help. This option is also used
+
1696 # when generating formulas in HTML.
+
1697 # The default value is: NO.
+
1698 # This tag requires that the tag GENERATE_LATEX is set to YES.
+
1699 
+
1700 LATEX_BATCHMODE = NO
+
1701 
+
1702 # If the LATEX_HIDE_INDICES tag is set to YES then doxygen will not include the
+
1703 # index chapters (such as File Index, Compound Index, etc.) in the output.
+
1704 # The default value is: NO.
+
1705 # This tag requires that the tag GENERATE_LATEX is set to YES.
+
1706 
+
1707 LATEX_HIDE_INDICES = NO
+
1708 
+
1709 # If the LATEX_SOURCE_CODE tag is set to YES then doxygen will include source
+
1710 # code with syntax highlighting in the LaTeX output.
+
1711 #
+
1712 # Note that which sources are shown also depends on other settings such as
+
1713 # SOURCE_BROWSER.
+
1714 # The default value is: NO.
+
1715 # This tag requires that the tag GENERATE_LATEX is set to YES.
+
1716 
+
1717 LATEX_SOURCE_CODE = NO
+
1718 
+
1719 # The LATEX_BIB_STYLE tag can be used to specify the style to use for the
+
1720 # bibliography, e.g. plainnat, or ieeetr. See
+
1721 # http://en.wikipedia.org/wiki/BibTeX and \cite for more info.
+
1722 # The default value is: plain.
+
1723 # This tag requires that the tag GENERATE_LATEX is set to YES.
+
1724 
+
1725 LATEX_BIB_STYLE = plain
+
1726 
+
1727 #---------------------------------------------------------------------------
+
1728 # Configuration options related to the RTF output
+
1729 #---------------------------------------------------------------------------
+
1730 
+
1731 # If the GENERATE_RTF tag is set to YES doxygen will generate RTF output. The
+
1732 # RTF output is optimized for Word 97 and may not look too pretty with other RTF
+
1733 # readers/editors.
+
1734 # The default value is: NO.
+
1735 
+
1736 GENERATE_RTF = NO
+
1737 
+
1738 # The RTF_OUTPUT tag is used to specify where the RTF docs will be put. If a
+
1739 # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+
1740 # it.
+
1741 # The default directory is: rtf.
+
1742 # This tag requires that the tag GENERATE_RTF is set to YES.
+
1743 
+
1744 RTF_OUTPUT = glm.rtf
+
1745 
+
1746 # If the COMPACT_RTF tag is set to YES doxygen generates more compact RTF
+
1747 # documents. This may be useful for small projects and may help to save some
+
1748 # trees in general.
+
1749 # The default value is: NO.
+
1750 # This tag requires that the tag GENERATE_RTF is set to YES.
+
1751 
+
1752 COMPACT_RTF = NO
+
1753 
+
1754 # If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated will
+
1755 # contain hyperlink fields. The RTF file will contain links (just like the HTML
+
1756 # output) instead of page references. This makes the output suitable for online
+
1757 # browsing using Word or some other Word compatible readers that support those
+
1758 # fields.
+
1759 #
+
1760 # Note: WordPad (write) and others do not support links.
+
1761 # The default value is: NO.
+
1762 # This tag requires that the tag GENERATE_RTF is set to YES.
+
1763 
+
1764 RTF_HYPERLINKS = YES
+
1765 
+
1766 # Load stylesheet definitions from file. Syntax is similar to doxygen's config
+
1767 # file, i.e. a series of assignments. You only have to provide replacements,
+
1768 # missing definitions are set to their default value.
+
1769 #
+
1770 # See also section "Doxygen usage" for information on how to generate the
+
1771 # default style sheet that doxygen normally uses.
+
1772 # This tag requires that the tag GENERATE_RTF is set to YES.
+
1773 
+
1774 RTF_STYLESHEET_FILE =
+
1775 
+
1776 # Set optional variables used in the generation of an RTF document. Syntax is
+
1777 # similar to doxygen's config file. A template extensions file can be generated
+
1778 # using doxygen -e rtf extensionFile.
+
1779 # This tag requires that the tag GENERATE_RTF is set to YES.
+
1780 
+
1781 RTF_EXTENSIONS_FILE =
+
1782 
+
1783 #---------------------------------------------------------------------------
+
1784 # Configuration options related to the man page output
+
1785 #---------------------------------------------------------------------------
+
1786 
+
1787 # If the GENERATE_MAN tag is set to YES doxygen will generate man pages for
+
1788 # classes and files.
+
1789 # The default value is: NO.
+
1790 
+
1791 GENERATE_MAN = NO
+
1792 
+
1793 # The MAN_OUTPUT tag is used to specify where the man pages will be put. If a
+
1794 # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+
1795 # it. A directory man3 will be created inside the directory specified by
+
1796 # MAN_OUTPUT.
+
1797 # The default directory is: man.
+
1798 # This tag requires that the tag GENERATE_MAN is set to YES.
+
1799 
+
1800 MAN_OUTPUT = man
+
1801 
+
1802 # The MAN_EXTENSION tag determines the extension that is added to the generated
+
1803 # man pages. In case the manual section does not start with a number, the number
+
1804 # 3 is prepended. The dot (.) at the beginning of the MAN_EXTENSION tag is
+
1805 # optional.
+
1806 # The default value is: .3.
+
1807 # This tag requires that the tag GENERATE_MAN is set to YES.
+
1808 
+
1809 MAN_EXTENSION = .3
+
1810 
+
1811 # The MAN_SUBDIR tag determines the name of the directory created within
+
1812 # MAN_OUTPUT in which the man pages are placed. If defaults to man followed by
+
1813 # MAN_EXTENSION with the initial . removed.
+
1814 # This tag requires that the tag GENERATE_MAN is set to YES.
+
1815 
+
1816 MAN_SUBDIR =
+
1817 
+
1818 # If the MAN_LINKS tag is set to YES and doxygen generates man output, then it
+
1819 # will generate one additional man file for each entity documented in the real
+
1820 # man page(s). These additional files only source the real man page, but without
+
1821 # them the man command would be unable to find the correct page.
+
1822 # The default value is: NO.
+
1823 # This tag requires that the tag GENERATE_MAN is set to YES.
+
1824 
+
1825 MAN_LINKS = NO
+
1826 
+
1827 #---------------------------------------------------------------------------
+
1828 # Configuration options related to the XML output
+
1829 #---------------------------------------------------------------------------
+
1830 
+
1831 # If the GENERATE_XML tag is set to YES doxygen will generate an XML file that
+
1832 # captures the structure of the code including all documentation.
+
1833 # The default value is: NO.
+
1834 
+
1835 GENERATE_XML = NO
+
1836 
+
1837 # The XML_OUTPUT tag is used to specify where the XML pages will be put. If a
+
1838 # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+
1839 # it.
+
1840 # The default directory is: xml.
+
1841 # This tag requires that the tag GENERATE_XML is set to YES.
+
1842 
+
1843 XML_OUTPUT = xml
+
1844 
+
1845 # If the XML_PROGRAMLISTING tag is set to YES doxygen will dump the program
+
1846 # listings (including syntax highlighting and cross-referencing information) to
+
1847 # the XML output. Note that enabling this will significantly increase the size
+
1848 # of the XML output.
+
1849 # The default value is: YES.
+
1850 # This tag requires that the tag GENERATE_XML is set to YES.
+
1851 
+
1852 XML_PROGRAMLISTING = YES
+
1853 
+
1854 #---------------------------------------------------------------------------
+
1855 # Configuration options related to the DOCBOOK output
+
1856 #---------------------------------------------------------------------------
+
1857 
+
1858 # If the GENERATE_DOCBOOK tag is set to YES doxygen will generate Docbook files
+
1859 # that can be used to generate PDF.
+
1860 # The default value is: NO.
+
1861 
+
1862 GENERATE_DOCBOOK = NO
+
1863 
+
1864 # The DOCBOOK_OUTPUT tag is used to specify where the Docbook pages will be put.
+
1865 # If a relative path is entered the value of OUTPUT_DIRECTORY will be put in
+
1866 # front of it.
+
1867 # The default directory is: docbook.
+
1868 # This tag requires that the tag GENERATE_DOCBOOK is set to YES.
+
1869 
+
1870 DOCBOOK_OUTPUT = docbook
+
1871 
+
1872 # If the DOCBOOK_PROGRAMLISTING tag is set to YES doxygen will include the
+
1873 # program listings (including syntax highlighting and cross-referencing
+
1874 # information) to the DOCBOOK output. Note that enabling this will significantly
+
1875 # increase the size of the DOCBOOK output.
+
1876 # The default value is: NO.
+
1877 # This tag requires that the tag GENERATE_DOCBOOK is set to YES.
+
1878 
+
1879 DOCBOOK_PROGRAMLISTING = NO
+
1880 
+
1881 #---------------------------------------------------------------------------
+
1882 # Configuration options for the AutoGen Definitions output
+
1883 #---------------------------------------------------------------------------
+
1884 
+
1885 # If the GENERATE_AUTOGEN_DEF tag is set to YES doxygen will generate an AutoGen
+
1886 # Definitions (see http://autogen.sf.net) file that captures the structure of
+
1887 # the code including all documentation. Note that this feature is still
+
1888 # experimental and incomplete at the moment.
+
1889 # The default value is: NO.
+
1890 
+
1891 GENERATE_AUTOGEN_DEF = NO
+
1892 
+
1893 #---------------------------------------------------------------------------
+
1894 # Configuration options related to the Perl module output
+
1895 #---------------------------------------------------------------------------
+
1896 
+
1897 # If the GENERATE_PERLMOD tag is set to YES doxygen will generate a Perl module
+
1898 # file that captures the structure of the code including all documentation.
+
1899 #
+
1900 # Note that this feature is still experimental and incomplete at the moment.
+
1901 # The default value is: NO.
+
1902 
+
1903 GENERATE_PERLMOD = NO
+
1904 
+
1905 # If the PERLMOD_LATEX tag is set to YES doxygen will generate the necessary
+
1906 # Makefile rules, Perl scripts and LaTeX code to be able to generate PDF and DVI
+
1907 # output from the Perl module output.
+
1908 # The default value is: NO.
+
1909 # This tag requires that the tag GENERATE_PERLMOD is set to YES.
+
1910 
+
1911 PERLMOD_LATEX = NO
+
1912 
+
1913 # If the PERLMOD_PRETTY tag is set to YES the Perl module output will be nicely
+
1914 # formatted so it can be parsed by a human reader. This is useful if you want to
+
1915 # understand what is going on. On the other hand, if this tag is set to NO the
+
1916 # size of the Perl module output will be much smaller and Perl will parse it
+
1917 # just the same.
+
1918 # The default value is: YES.
+
1919 # This tag requires that the tag GENERATE_PERLMOD is set to YES.
+
1920 
+
1921 PERLMOD_PRETTY = YES
+
1922 
+
1923 # The names of the make variables in the generated doxyrules.make file are
+
1924 # prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. This is useful
+
1925 # so different doxyrules.make files included by the same Makefile don't
+
1926 # overwrite each other's variables.
+
1927 # This tag requires that the tag GENERATE_PERLMOD is set to YES.
+
1928 
+
1929 PERLMOD_MAKEVAR_PREFIX =
+
1930 
+
1931 #---------------------------------------------------------------------------
+
1932 # Configuration options related to the preprocessor
+
1933 #---------------------------------------------------------------------------
+
1934 
+
1935 # If the ENABLE_PREPROCESSING tag is set to YES doxygen will evaluate all
+
1936 # C-preprocessor directives found in the sources and include files.
+
1937 # The default value is: YES.
+
1938 
+
1939 ENABLE_PREPROCESSING = YES
+
1940 
+
1941 # If the MACRO_EXPANSION tag is set to YES doxygen will expand all macro names
+
1942 # in the source code. If set to NO only conditional compilation will be
+
1943 # performed. Macro expansion can be done in a controlled way by setting
+
1944 # EXPAND_ONLY_PREDEF to YES.
+
1945 # The default value is: NO.
+
1946 # This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
1947 
+
1948 MACRO_EXPANSION = NO
+
1949 
+
1950 # If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES then
+
1951 # the macro expansion is limited to the macros specified with the PREDEFINED and
+
1952 # EXPAND_AS_DEFINED tags.
+
1953 # The default value is: NO.
+
1954 # This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
1955 
+
1956 EXPAND_ONLY_PREDEF = NO
+
1957 
+
1958 # If the SEARCH_INCLUDES tag is set to YES the includes files in the
+
1959 # INCLUDE_PATH will be searched if a #include is found.
+
1960 # The default value is: YES.
+
1961 # This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
1962 
+
1963 SEARCH_INCLUDES = YES
+
1964 
+
1965 # The INCLUDE_PATH tag can be used to specify one or more directories that
+
1966 # contain include files that are not input files but should be processed by the
+
1967 # preprocessor.
+
1968 # This tag requires that the tag SEARCH_INCLUDES is set to YES.
+
1969 
+
1970 INCLUDE_PATH =
+
1971 
+
1972 # You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
+
1973 # patterns (like *.h and *.hpp) to filter out the header-files in the
+
1974 # directories. If left blank, the patterns specified with FILE_PATTERNS will be
+
1975 # used.
+
1976 # This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
1977 
+
1978 INCLUDE_FILE_PATTERNS =
+
1979 
+
1980 # The PREDEFINED tag can be used to specify one or more macro names that are
+
1981 # defined before the preprocessor is started (similar to the -D option of e.g.
+
1982 # gcc). The argument of the tag is a list of macros of the form: name or
+
1983 # name=definition (no spaces). If the definition and the "=" are omitted, "=1"
+
1984 # is assumed. To prevent a macro definition from being undefined via #undef or
+
1985 # recursively expanded use the := operator instead of the = operator.
+
1986 # This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
1987 
+
1988 PREDEFINED =
+
1989 
+
1990 # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this
+
1991 # tag can be used to specify a list of macro names that should be expanded. The
+
1992 # macro definition that is found in the sources will be used. Use the PREDEFINED
+
1993 # tag if you want to use a different macro definition that overrules the
+
1994 # definition found in the source code.
+
1995 # This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
1996 
+
1997 EXPAND_AS_DEFINED =
+
1998 
+
1999 # If the SKIP_FUNCTION_MACROS tag is set to YES then doxygen's preprocessor will
+
2000 # remove all references to function-like macros that are alone on a line, have
+
2001 # an all uppercase name, and do not end with a semicolon. Such function macros
+
2002 # are typically used for boiler-plate code, and will confuse the parser if not
+
2003 # removed.
+
2004 # The default value is: YES.
+
2005 # This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
2006 
+
2007 SKIP_FUNCTION_MACROS = YES
+
2008 
+
2009 #---------------------------------------------------------------------------
+
2010 # Configuration options related to external references
+
2011 #---------------------------------------------------------------------------
+
2012 
+
2013 # The TAGFILES tag can be used to specify one or more tag files. For each tag
+
2014 # file the location of the external documentation should be added. The format of
+
2015 # a tag file without this location is as follows:
+
2016 # TAGFILES = file1 file2 ...
+
2017 # Adding location for the tag files is done as follows:
+
2018 # TAGFILES = file1=loc1 "file2 = loc2" ...
+
2019 # where loc1 and loc2 can be relative or absolute paths or URLs. See the
+
2020 # section "Linking to external documentation" for more information about the use
+
2021 # of tag files.
+
2022 # Note: Each tag file must have a unique name (where the name does NOT include
+
2023 # the path). If a tag file is not located in the directory in which doxygen is
+
2024 # run, you must also specify the path to the tagfile here.
+
2025 
+
2026 TAGFILES =
+
2027 
+
2028 # When a file name is specified after GENERATE_TAGFILE, doxygen will create a
+
2029 # tag file that is based on the input files it reads. See section "Linking to
+
2030 # external documentation" for more information about the usage of tag files.
+
2031 
+
2032 GENERATE_TAGFILE =
+
2033 
+
2034 # If the ALLEXTERNALS tag is set to YES all external class will be listed in the
+
2035 # class index. If set to NO only the inherited external classes will be listed.
+
2036 # The default value is: NO.
+
2037 
+
2038 ALLEXTERNALS = NO
+
2039 
+
2040 # If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed in
+
2041 # the modules index. If set to NO, only the current project's groups will be
+
2042 # listed.
+
2043 # The default value is: YES.
+
2044 
+
2045 EXTERNAL_GROUPS = YES
+
2046 
+
2047 # If the EXTERNAL_PAGES tag is set to YES all external pages will be listed in
+
2048 # the related pages index. If set to NO, only the current project's pages will
+
2049 # be listed.
+
2050 # The default value is: YES.
+
2051 
+
2052 EXTERNAL_PAGES = YES
+
2053 
+
2054 # The PERL_PATH should be the absolute path and name of the perl script
+
2055 # interpreter (i.e. the result of 'which perl').
+
2056 # The default file (with absolute path) is: /usr/bin/perl.
+
2057 
+
2058 PERL_PATH = /usr/bin/perl
+
2059 
+
2060 #---------------------------------------------------------------------------
+
2061 # Configuration options related to the dot tool
+
2062 #---------------------------------------------------------------------------
+
2063 
+
2064 # If the CLASS_DIAGRAMS tag is set to YES doxygen will generate a class diagram
+
2065 # (in HTML and LaTeX) for classes with base or super classes. Setting the tag to
+
2066 # NO turns the diagrams off. Note that this option also works with HAVE_DOT
+
2067 # disabled, but it is recommended to install and use dot, since it yields more
+
2068 # powerful graphs.
+
2069 # The default value is: YES.
+
2070 
+
2071 CLASS_DIAGRAMS = YES
+
2072 
+
2073 # You can define message sequence charts within doxygen comments using the \msc
+
2074 # command. Doxygen will then run the mscgen tool (see:
+
2075 # http://www.mcternan.me.uk/mscgen/)) to produce the chart and insert it in the
+
2076 # documentation. The MSCGEN_PATH tag allows you to specify the directory where
+
2077 # the mscgen tool resides. If left empty the tool is assumed to be found in the
+
2078 # default search path.
+
2079 
+
2080 MSCGEN_PATH =
+
2081 
+
2082 # You can include diagrams made with dia in doxygen documentation. Doxygen will
+
2083 # then run dia to produce the diagram and insert it in the documentation. The
+
2084 # DIA_PATH tag allows you to specify the directory where the dia binary resides.
+
2085 # If left empty dia is assumed to be found in the default search path.
+
2086 
+
2087 DIA_PATH =
+
2088 
+
2089 # If set to YES, the inheritance and collaboration graphs will hide inheritance
+
2090 # and usage relations if the target is undocumented or is not a class.
+
2091 # The default value is: YES.
+
2092 
+
2093 HIDE_UNDOC_RELATIONS = YES
+
2094 
+
2095 # If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
+
2096 # available from the path. This tool is part of Graphviz (see:
+
2097 # http://www.graphviz.org/), a graph visualization toolkit from AT&T and Lucent
+
2098 # Bell Labs. The other options in this section have no effect if this option is
+
2099 # set to NO
+
2100 # The default value is: NO.
+
2101 
+
2102 HAVE_DOT = NO
+
2103 
+
2104 # The DOT_NUM_THREADS specifies the number of dot invocations doxygen is allowed
+
2105 # to run in parallel. When set to 0 doxygen will base this on the number of
+
2106 # processors available in the system. You can set it explicitly to a value
+
2107 # larger than 0 to get control over the balance between CPU load and processing
+
2108 # speed.
+
2109 # Minimum value: 0, maximum value: 32, default value: 0.
+
2110 # This tag requires that the tag HAVE_DOT is set to YES.
+
2111 
+
2112 DOT_NUM_THREADS = 0
+
2113 
+
2114 # When you want a differently looking font in the dot files that doxygen
+
2115 # generates you can specify the font name using DOT_FONTNAME. You need to make
+
2116 # sure dot is able to find the font, which can be done by putting it in a
+
2117 # standard location or by setting the DOTFONTPATH environment variable or by
+
2118 # setting DOT_FONTPATH to the directory containing the font.
+
2119 # The default value is: Helvetica.
+
2120 # This tag requires that the tag HAVE_DOT is set to YES.
+
2121 
+
2122 DOT_FONTNAME =
+
2123 
+
2124 # The DOT_FONTSIZE tag can be used to set the size (in points) of the font of
+
2125 # dot graphs.
+
2126 # Minimum value: 4, maximum value: 24, default value: 10.
+
2127 # This tag requires that the tag HAVE_DOT is set to YES.
+
2128 
+
2129 DOT_FONTSIZE = 10
+
2130 
+
2131 # By default doxygen will tell dot to use the default font as specified with
+
2132 # DOT_FONTNAME. If you specify a different font using DOT_FONTNAME you can set
+
2133 # the path where dot can find it using this tag.
+
2134 # This tag requires that the tag HAVE_DOT is set to YES.
+
2135 
+
2136 DOT_FONTPATH =
+
2137 
+
2138 # If the CLASS_GRAPH tag is set to YES then doxygen will generate a graph for
+
2139 # each documented class showing the direct and indirect inheritance relations.
+
2140 # Setting this tag to YES will force the CLASS_DIAGRAMS tag to NO.
+
2141 # The default value is: YES.
+
2142 # This tag requires that the tag HAVE_DOT is set to YES.
+
2143 
+
2144 CLASS_GRAPH = YES
+
2145 
+
2146 # If the COLLABORATION_GRAPH tag is set to YES then doxygen will generate a
+
2147 # graph for each documented class showing the direct and indirect implementation
+
2148 # dependencies (inheritance, containment, and class references variables) of the
+
2149 # class with other documented classes.
+
2150 # The default value is: YES.
+
2151 # This tag requires that the tag HAVE_DOT is set to YES.
+
2152 
+
2153 COLLABORATION_GRAPH = YES
+
2154 
+
2155 # If the GROUP_GRAPHS tag is set to YES then doxygen will generate a graph for
+
2156 # groups, showing the direct groups dependencies.
+
2157 # The default value is: YES.
+
2158 # This tag requires that the tag HAVE_DOT is set to YES.
+
2159 
+
2160 GROUP_GRAPHS = YES
+
2161 
+
2162 # If the UML_LOOK tag is set to YES doxygen will generate inheritance and
+
2163 # collaboration diagrams in a style similar to the OMG's Unified Modeling
+
2164 # Language.
+
2165 # The default value is: NO.
+
2166 # This tag requires that the tag HAVE_DOT is set to YES.
+
2167 
+
2168 UML_LOOK = NO
+
2169 
+
2170 # If the UML_LOOK tag is enabled, the fields and methods are shown inside the
+
2171 # class node. If there are many fields or methods and many nodes the graph may
+
2172 # become too big to be useful. The UML_LIMIT_NUM_FIELDS threshold limits the
+
2173 # number of items for each type to make the size more manageable. Set this to 0
+
2174 # for no limit. Note that the threshold may be exceeded by 50% before the limit
+
2175 # is enforced. So when you set the threshold to 10, up to 15 fields may appear,
+
2176 # but if the number exceeds 15, the total amount of fields shown is limited to
+
2177 # 10.
+
2178 # Minimum value: 0, maximum value: 100, default value: 10.
+
2179 # This tag requires that the tag HAVE_DOT is set to YES.
+
2180 
+
2181 UML_LIMIT_NUM_FIELDS = 10
+
2182 
+
2183 # If the TEMPLATE_RELATIONS tag is set to YES then the inheritance and
+
2184 # collaboration graphs will show the relations between templates and their
+
2185 # instances.
+
2186 # The default value is: NO.
+
2187 # This tag requires that the tag HAVE_DOT is set to YES.
+
2188 
+
2189 TEMPLATE_RELATIONS = NO
+
2190 
+
2191 # If the INCLUDE_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are set to
+
2192 # YES then doxygen will generate a graph for each documented file showing the
+
2193 # direct and indirect include dependencies of the file with other documented
+
2194 # files.
+
2195 # The default value is: YES.
+
2196 # This tag requires that the tag HAVE_DOT is set to YES.
+
2197 
+
2198 INCLUDE_GRAPH = YES
+
2199 
+
2200 # If the INCLUDED_BY_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are
+
2201 # set to YES then doxygen will generate a graph for each documented file showing
+
2202 # the direct and indirect include dependencies of the file with other documented
+
2203 # files.
+
2204 # The default value is: YES.
+
2205 # This tag requires that the tag HAVE_DOT is set to YES.
+
2206 
+
2207 INCLUDED_BY_GRAPH = YES
+
2208 
+
2209 # If the CALL_GRAPH tag is set to YES then doxygen will generate a call
+
2210 # dependency graph for every global function or class method.
+
2211 #
+
2212 # Note that enabling this option will significantly increase the time of a run.
+
2213 # So in most cases it will be better to enable call graphs for selected
+
2214 # functions only using the \callgraph command.
+
2215 # The default value is: NO.
+
2216 # This tag requires that the tag HAVE_DOT is set to YES.
+
2217 
+
2218 CALL_GRAPH = YES
+
2219 
+
2220 # If the CALLER_GRAPH tag is set to YES then doxygen will generate a caller
+
2221 # dependency graph for every global function or class method.
+
2222 #
+
2223 # Note that enabling this option will significantly increase the time of a run.
+
2224 # So in most cases it will be better to enable caller graphs for selected
+
2225 # functions only using the \callergraph command.
+
2226 # The default value is: NO.
+
2227 # This tag requires that the tag HAVE_DOT is set to YES.
+
2228 
+
2229 CALLER_GRAPH = YES
+
2230 
+
2231 # If the GRAPHICAL_HIERARCHY tag is set to YES then doxygen will graphical
+
2232 # hierarchy of all classes instead of a textual one.
+
2233 # The default value is: YES.
+
2234 # This tag requires that the tag HAVE_DOT is set to YES.
+
2235 
+
2236 GRAPHICAL_HIERARCHY = YES
+
2237 
+
2238 # If the DIRECTORY_GRAPH tag is set to YES then doxygen will show the
+
2239 # dependencies a directory has on other directories in a graphical way. The
+
2240 # dependency relations are determined by the #include relations between the
+
2241 # files in the directories.
+
2242 # The default value is: YES.
+
2243 # This tag requires that the tag HAVE_DOT is set to YES.
+
2244 
+
2245 DIRECTORY_GRAPH = YES
+
2246 
+
2247 # The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
+
2248 # generated by dot.
+
2249 # Note: If you choose svg you need to set HTML_FILE_EXTENSION to xhtml in order
+
2250 # to make the SVG files visible in IE 9+ (other browsers do not have this
+
2251 # requirement).
+
2252 # Possible values are: png, jpg, gif and svg.
+
2253 # The default value is: png.
+
2254 # This tag requires that the tag HAVE_DOT is set to YES.
+
2255 
+
2256 DOT_IMAGE_FORMAT = png
+
2257 
+
2258 # If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to
+
2259 # enable generation of interactive SVG images that allow zooming and panning.
+
2260 #
+
2261 # Note that this requires a modern browser other than Internet Explorer. Tested
+
2262 # and working are Firefox, Chrome, Safari, and Opera.
+
2263 # Note: For IE 9+ you need to set HTML_FILE_EXTENSION to xhtml in order to make
+
2264 # the SVG files visible. Older versions of IE do not have SVG support.
+
2265 # The default value is: NO.
+
2266 # This tag requires that the tag HAVE_DOT is set to YES.
+
2267 
+
2268 INTERACTIVE_SVG = NO
+
2269 
+
2270 # The DOT_PATH tag can be used to specify the path where the dot tool can be
+
2271 # found. If left blank, it is assumed the dot tool can be found in the path.
+
2272 # This tag requires that the tag HAVE_DOT is set to YES.
+
2273 
+
2274 DOT_PATH =
+
2275 
+
2276 # The DOTFILE_DIRS tag can be used to specify one or more directories that
+
2277 # contain dot files that are included in the documentation (see the \dotfile
+
2278 # command).
+
2279 # This tag requires that the tag HAVE_DOT is set to YES.
+
2280 
+
2281 DOTFILE_DIRS =
+
2282 
+
2283 # The MSCFILE_DIRS tag can be used to specify one or more directories that
+
2284 # contain msc files that are included in the documentation (see the \mscfile
+
2285 # command).
+
2286 
+
2287 MSCFILE_DIRS =
+
2288 
+
2289 # The DIAFILE_DIRS tag can be used to specify one or more directories that
+
2290 # contain dia files that are included in the documentation (see the \diafile
+
2291 # command).
+
2292 
+
2293 DIAFILE_DIRS =
+
2294 
+
2295 # When using plantuml, the PLANTUML_JAR_PATH tag should be used to specify the
+
2296 # path where java can find the plantuml.jar file. If left blank, it is assumed
+
2297 # PlantUML is not used or called during a preprocessing step. Doxygen will
+
2298 # generate a warning when it encounters a \startuml command in this case and
+
2299 # will not generate output for the diagram.
+
2300 # This tag requires that the tag HAVE_DOT is set to YES.
+
2301 
+
2302 PLANTUML_JAR_PATH =
+
2303 
+
2304 # The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of nodes
+
2305 # that will be shown in the graph. If the number of nodes in a graph becomes
+
2306 # larger than this value, doxygen will truncate the graph, which is visualized
+
2307 # by representing a node as a red box. Note that doxygen if the number of direct
+
2308 # children of the root node in a graph is already larger than
+
2309 # DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note that
+
2310 # the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
+
2311 # Minimum value: 0, maximum value: 10000, default value: 50.
+
2312 # This tag requires that the tag HAVE_DOT is set to YES.
+
2313 
+
2314 DOT_GRAPH_MAX_NODES = 50
+
2315 
+
2316 # The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the graphs
+
2317 # generated by dot. A depth value of 3 means that only nodes reachable from the
+
2318 # root by following a path via at most 3 edges will be shown. Nodes that lay
+
2319 # further from the root node will be omitted. Note that setting this option to 1
+
2320 # or 2 may greatly reduce the computation time needed for large code bases. Also
+
2321 # note that the size of a graph can be further restricted by
+
2322 # DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
+
2323 # Minimum value: 0, maximum value: 1000, default value: 0.
+
2324 # This tag requires that the tag HAVE_DOT is set to YES.
+
2325 
+
2326 MAX_DOT_GRAPH_DEPTH = 1000
+
2327 
+
2328 # Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
+
2329 # background. This is disabled by default, because dot on Windows does not seem
+
2330 # to support this out of the box.
+
2331 #
+
2332 # Warning: Depending on the platform used, enabling this option may lead to
+
2333 # badly anti-aliased labels on the edges of a graph (i.e. they become hard to
+
2334 # read).
+
2335 # The default value is: NO.
+
2336 # This tag requires that the tag HAVE_DOT is set to YES.
+
2337 
+
2338 DOT_TRANSPARENT = NO
+
2339 
+
2340 # Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output
+
2341 # files in one run (i.e. multiple -o and -T options on the command line). This
+
2342 # makes dot run faster, but since only newer versions of dot (>1.8.10) support
+
2343 # this, this feature is disabled by default.
+
2344 # The default value is: NO.
+
2345 # This tag requires that the tag HAVE_DOT is set to YES.
+
2346 
+
2347 DOT_MULTI_TARGETS = NO
+
2348 
+
2349 # If the GENERATE_LEGEND tag is set to YES doxygen will generate a legend page
+
2350 # explaining the meaning of the various boxes and arrows in the dot generated
+
2351 # graphs.
+
2352 # The default value is: YES.
+
2353 # This tag requires that the tag HAVE_DOT is set to YES.
+
2354 
+
2355 GENERATE_LEGEND = YES
+
2356 
+
2357 # If the DOT_CLEANUP tag is set to YES doxygen will remove the intermediate dot
+
2358 # files that are used to generate the various graphs.
+
2359 # The default value is: YES.
+
2360 # This tag requires that the tag HAVE_DOT is set to YES.
+
2361 
+
2362 DOT_CLEANUP = YES
+
Definition: _noise.hpp:39
diff --git a/doc/api/a00056.html b/doc/api/a00056.html new file mode 100644 index 00000000..d2882fb3 --- /dev/null +++ b/doc/api/a00056.html @@ -0,0 +1,73 @@ + + + + + + +0.9.6: mat2x2.hpp File Reference + + + + + + +
+
+ + + + + + + +
+
0.9.6 +
+
+
+ + + + + +
+
+
+
mat2x2.hpp File Reference
+
+
+ +

Go to the source code of this file.

+

Detailed Description

+

OpenGL Mathematics (glm.g-truc.net)

+

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+

GLM Core

+
Date
2013-12-24 / 2013-12-24
+
Author
Christophe Riccio
+ +

Definition in file mat2x2.hpp.

+
+ + + + diff --git a/doc/api/a00056_source.html b/doc/api/a00056_source.html index 6168368e..876c425e 100644 --- a/doc/api/a00056_source.html +++ b/doc/api/a00056_source.html @@ -3,8 +3,8 @@ - -GLM: intrinsic_matrix.hpp Source File + +0.9.6: mat2x2.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,62 +41,48 @@
-
intrinsic_matrix.hpp
+
mat2x2.hpp
-
1 
-
29 #ifndef glm_detail_intrinsic_matrix
-
30 #define glm_detail_intrinsic_matrix
-
31 
-
32 #include "setup.hpp"
-
33 
-
34 #if(!(GLM_ARCH & GLM_ARCH_SSE2))
-
35 # error "SSE2 instructions not supported or enabled"
-
36 #else
-
37 
-
38 #include "intrinsic_geometric.hpp"
-
39 
-
40 namespace glm{
-
41 namespace detail
-
42 {
-
43  void sse_add_ps(__m128 in1[4], __m128 in2[4], __m128 out[4]);
-
44 
-
45  void sse_sub_ps(__m128 in1[4], __m128 in2[4], __m128 out[4]);
-
46 
-
47  __m128 sse_mul_ps(__m128 m[4], __m128 v);
-
48 
-
49  __m128 sse_mul_ps(__m128 v, __m128 m[4]);
-
50 
-
51  void sse_mul_ps(__m128 const in1[4], __m128 const in2[4], __m128 out[4]);
-
52 
-
53  void sse_transpose_ps(__m128 const in[4], __m128 out[4]);
-
54 
-
55  void sse_inverse_ps(__m128 const in[4], __m128 out[4]);
-
56 
-
57  void sse_rotate_ps(__m128 const in[4], float Angle, float const v[3], __m128 out[4]);
-
58 
-
59  __m128 sse_det_ps(__m128 const m[4]);
-
60 
-
61  __m128 sse_slow_det_ps(__m128 const m[4]);
-
62 
-
63 }//namespace detail
-
64 }//namespace glm
-
65 
-
66 #include "intrinsic_matrix.inl"
-
67 
-
68 #endif//GLM_ARCH
-
69 #endif//glm_detail_intrinsic_matrix
+Go to the documentation of this file.
1 
+
33 #pragma once
+
34 
+
35 #include "detail/type_mat2x2.hpp"
+
36 
+
37 namespace glm
+
38 {
+
44  typedef tmat2x2<float, lowp> lowp_mat2;
+
45 
+
51  typedef tmat2x2<float, mediump> mediump_mat2;
+
52 
+
58  typedef tmat2x2<float, highp> highp_mat2;
+
59 
+
65  typedef tmat2x2<float, lowp> lowp_mat2x2;
+
66 
+
72  typedef tmat2x2<float, mediump> mediump_mat2x2;
+
73 
+
79  typedef tmat2x2<float, highp> highp_mat2x2;
+
80 
+
81 }//namespace glm
+
tmat2x2< float, mediump > mediump_mat2
2 columns of 2 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:72
+
tmat2x2< float, mediump > mediump_mat2x2
2 columns of 2 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:93
+
tmat2x2< float, lowp > lowp_mat2x2
2 columns of 2 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:86
+
tmat2x2< float, highp > highp_mat2x2
2 columns of 2 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:100
+
OpenGL Mathematics (glm.g-truc.net)
+
tmat2x2< float, lowp > lowp_mat2
2 columns of 2 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:65
+
tmat2x2< float, highp > highp_mat2
2 columns of 2 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:79
+
Definition: _noise.hpp:39
diff --git a/doc/api/a00063.html b/doc/api/a00057.html similarity index 66% rename from doc/api/a00063.html rename to doc/api/a00057.html index f1228929..b0e3c06a 100644 --- a/doc/api/a00063.html +++ b/doc/api/a00057.html @@ -3,8 +3,8 @@ - -GLM: mat2x3.hpp File Reference + +0.9.6: mat2x3.hpp File Reference @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,40 +41,33 @@
-
-Namespaces
mat2x3.hpp File Reference
-

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
+

Go to the source code of this file.

Detailed Description

OpenGL Mathematics (glm.g-truc.net)

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM Core

+

GLM Core

Date
2013-12-24 / 2013-12-24
Author
Christophe Riccio
-

Definition in file mat2x3.hpp.

+

Definition in file mat2x3.hpp.

diff --git a/doc/api/a00057_source.html b/doc/api/a00057_source.html index 2c774b08..d829ed6d 100644 --- a/doc/api/a00057_source.html +++ b/doc/api/a00057_source.html @@ -3,8 +3,8 @@ - -GLM: intrinsic_trigonometric.hpp Source File + +0.9.6: mat2x3.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,41 +41,40 @@
-
intrinsic_trigonometric.hpp
+
mat2x3.hpp
-
1 
-
29 #ifndef glm_detail_intrinsic_trigonometric
-
30 #define glm_detail_intrinsic_trigonometric
-
31 
-
32 #include "setup.hpp"
-
33 
-
34 #if(!(GLM_ARCH & GLM_ARCH_SSE2))
-
35 # error "SSE2 instructions not supported or enabled"
-
36 #else
-
37 
-
38 namespace glm{
-
39 namespace detail
-
40 {
-
41 
-
42 }//namespace detail
-
43 }//namespace glm
-
44 
-
45 #include "intrinsic_trigonometric.inl"
-
46 
-
47 #endif//GLM_ARCH
-
48 #endif//glm_detail_intrinsic_trigonometric
+Go to the documentation of this file.
1 
+
33 #pragma once
+
34 
+
35 #include "detail/type_mat2x3.hpp"
+
36 
+
37 namespace glm
+
38 {
+
44  typedef tmat2x3<float, lowp> lowp_mat2x3;
+
45 
+
51  typedef tmat2x3<float, mediump> mediump_mat2x3;
+
52 
+
58  typedef tmat2x3<float, highp> highp_mat2x3;
+
59 
+
60 }//namespace glm
+
61 
+
tmat2x3< float, mediump > mediump_mat2x3
2 columns of 3 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:119
+
OpenGL Mathematics (glm.g-truc.net)
+
tmat2x3< float, highp > highp_mat2x3
2 columns of 3 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:126
+
tmat2x3< float, lowp > lowp_mat2x3
2 columns of 3 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:112
+
Definition: _noise.hpp:39
diff --git a/doc/api/a00058.html b/doc/api/a00058.html new file mode 100644 index 00000000..6346b59e --- /dev/null +++ b/doc/api/a00058.html @@ -0,0 +1,73 @@ + + + + + + +0.9.6: mat2x4.hpp File Reference + + + + + + +
+
+ + + + + + + +
+
0.9.6 +
+
+
+ + + + + +
+
+
+
mat2x4.hpp File Reference
+
+
+ +

Go to the source code of this file.

+

Detailed Description

+

OpenGL Mathematics (glm.g-truc.net)

+

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+

GLM Core

+
Date
2013-12-24 / 2013-12-24
+
Author
Christophe Riccio
+ +

Definition in file mat2x4.hpp.

+
+ + + + diff --git a/doc/api/a00058_source.html b/doc/api/a00058_source.html index 664447a7..5defca57 100644 --- a/doc/api/a00058_source.html +++ b/doc/api/a00058_source.html @@ -3,8 +3,8 @@ - -GLM: intrinsic_vector_relational.hpp Source File + +0.9.6: mat2x4.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,41 +41,39 @@
-
intrinsic_vector_relational.hpp
+
mat2x4.hpp
-
1 
-
29 #ifndef glm_detail_intrinsic_vector_relational
-
30 #define glm_detail_intrinsic_vector_relational
-
31 
-
32 #include "setup.hpp"
-
33 
-
34 #if(!(GLM_ARCH & GLM_ARCH_SSE2))
-
35 # error "SSE2 instructions not supported or enabled"
-
36 #else
-
37 
-
38 namespace glm{
-
39 namespace detail
-
40 {
-
41 
-
42 }//namespace detail
-
43 }//namespace glm
-
44 
-
45 #include "intrinsic_vector_relational.inl"
-
46 
-
47 #endif//GLM_ARCH
-
48 #endif//glm_detail_intrinsic_vector_relational
+Go to the documentation of this file.
1 
+
33 #pragma once
+
34 
+
35 #include "detail/type_mat2x4.hpp"
+
36 
+
37 namespace glm
+
38 {
+
44  typedef tmat2x4<float, lowp> lowp_mat2x4;
+
45 
+
51  typedef tmat2x4<float, mediump> mediump_mat2x4;
+
52 
+
58  typedef tmat2x4<float, highp> highp_mat2x4;
+
59 
+
60 }//namespace glm
+
OpenGL Mathematics (glm.g-truc.net)
+
tmat2x4< float, highp > highp_mat2x4
2 columns of 4 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:152
+
tmat2x4< float, lowp > lowp_mat2x4
2 columns of 4 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:138
+
Definition: _noise.hpp:39
+
tmat2x4< float, mediump > mediump_mat2x4
2 columns of 4 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:145
diff --git a/doc/api/a00059.html b/doc/api/a00059.html index e7283997..2eefc61f 100644 --- a/doc/api/a00059.html +++ b/doc/api/a00059.html @@ -3,8 +3,8 @@ - -GLM: io.hpp File Reference + +0.9.6: mat3x2.hpp File Reference @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,43 +41,33 @@
-
-Namespaces
-
io.hpp File Reference
+
mat3x2.hpp File Reference

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 

Detailed Description

OpenGL Mathematics (glm.g-truc.net)

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_io

-
Date
2013-11-22
-
Author
Jan P Springer (regni.nosp@m.rpsj.nosp@m.@gmai.nosp@m.l.co.nosp@m.m)
-
See Also
GLM Core (dependence)
-
-GLM_GTX_quaternion (dependence)
+

GLM Core

+
Date
2013-12-24 / 2013-12-24
+
Author
Christophe Riccio
-

Definition in file io.hpp.

+

Definition in file mat3x2.hpp.

diff --git a/doc/api/a00059_source.html b/doc/api/a00059_source.html index 7dab7195..9d80e1ee 100644 --- a/doc/api/a00059_source.html +++ b/doc/api/a00059_source.html @@ -3,8 +3,8 @@ - -GLM: io.hpp Source File + +0.9.6: mat3x2.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,130 +41,39 @@
-
io.hpp
+
mat3x2.hpp
Go to the documentation of this file.
1 
-
39 #ifndef GLM_GTX_io
-
40 #define GLM_GTX_io
-
41 
-
42 // Dependency:
-
43 #include "../detail/setup.hpp"
-
44 #include "../gtc/quaternion.hpp"
-
45 
-
46 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
47 # pragma message("GLM: GLM_GTX_io extension included")
-
48 #endif
-
49 
-
50 #include <iosfwd> // std::basic_ostream<> (fwd)
-
51 #include <utility> // std::pair<>
-
52 
-
53 namespace glm
-
54 {
-
57 
-
58  namespace io
-
59  {
-
60 
-
61  class precision_guard {
-
62 
-
63  public:
-
64 
-
65  GLM_FUNC_DECL explicit precision_guard();
-
66  GLM_FUNC_DECL ~precision_guard();
-
67 
-
68  private:
-
69 
-
70  unsigned precision_;
-
71  unsigned value_width_;
-
72 
-
73  };
-
74 
-
75  class format_guard
-
76  {
-
77  public:
-
78  enum order_t { column_major, row_major, };
-
79 
-
80  GLM_FUNC_DECL explicit format_guard();
-
81  GLM_FUNC_DECL ~format_guard();
-
82 
-
83  private:
-
84 
-
85  order_t order_;
-
86  char cr_;
-
87  };
-
88 
-
89  // decimal places (dflt: 3)
-
90  GLM_FUNC_DECL unsigned& precision();
-
91 
-
92  // sign + value + '.' + decimals (dflt: 1 + 4 + 1 + precision())
-
93  GLM_FUNC_DECL unsigned& value_width();
-
94 
-
95  // matrix output order (dflt: row_major)
-
96  GLM_FUNC_DECL format_guard::order_t& order();
-
97 
-
98  // carriage/return char (dflt: '\n')
-
99  GLM_FUNC_DECL char& cr();
-
100 
-
101  // matrix output order -> column_major
-
102  GLM_FUNC_DECL std::ios_base& column_major(std::ios_base&);
-
103 
-
104  // matrix output order -> row_major
-
105  GLM_FUNC_DECL std::ios_base& row_major (std::ios_base&);
-
106 
-
107  // carriage/return char -> '\n'
-
108  GLM_FUNC_DECL std::ios_base& formatted (std::ios_base&);
-
109 
-
110  // carriage/return char -> ' '
-
111  GLM_FUNC_DECL std::ios_base& unformatted (std::ios_base&);
-
112 
-
113  }//namespace io
-
114 
-
115  namespace detail
-
116  {
-
117  template <typename CTy, typename CTr, typename T, precision P>
-
118  GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tquat<T,P> const&);
-
119  template <typename CTy, typename CTr, typename T, precision P>
-
120  GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tvec2<T,P> const&);
-
121  template <typename CTy, typename CTr, typename T, precision P>
-
122  GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tvec3<T,P> const&);
-
123  template <typename CTy, typename CTr, typename T, precision P>
-
124  GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tvec4<T,P> const&);
-
125  template <typename CTy, typename CTr, typename T, precision P>
-
126  GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat2x2<T,P> const&);
-
127  template <typename CTy, typename CTr, typename T, precision P>
-
128  GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat2x3<T,P> const&);
-
129  template <typename CTy, typename CTr, typename T, precision P>
-
130  GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat2x4<T,P> const&);
-
131  template <typename CTy, typename CTr, typename T, precision P>
-
132  GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat3x2<T,P> const&);
-
133  template <typename CTy, typename CTr, typename T, precision P>
-
134  GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat3x3<T,P> const&);
-
135  template <typename CTy, typename CTr, typename T, precision P>
-
136  GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat3x4<T,P> const&);
-
137  template <typename CTy, typename CTr, typename T, precision P>
-
138  GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat4x2<T,P> const&);
-
139  template <typename CTy, typename CTr, typename T, precision P>
-
140  GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat4x3<T,P> const&);
-
141  template <typename CTy, typename CTr, typename T, precision P>
-
142  GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat4x4<T,P> const&);
-
143 
-
145 }//namespace detail
-
146 }//namespace glm
-
147 
-
148 #include "io.inl"
-
149 
-
150 #endif//GLM_GTX_io
+
33 #pragma once
+
34 
+
35 #include "detail/type_mat3x2.hpp"
+
36 
+
37 namespace glm
+
38 {
+
44  typedef tmat3x2<float, lowp> lowp_mat3x2;
+
45 
+
51  typedef tmat3x2<float, mediump> mediump_mat3x2;
+
52 
+
58  typedef tmat3x2<float, highp> highp_mat3x2;
+
59 
+
60 }//namespace
+
tmat3x2< float, highp > highp_mat3x2
3 columns of 2 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:178
+
tmat3x2< float, lowp > lowp_mat3x2
3 columns of 2 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:164
+
OpenGL Mathematics (glm.g-truc.net)
+
Definition: _noise.hpp:39
+
tmat3x2< float, mediump > mediump_mat3x2
3 columns of 2 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:171
diff --git a/doc/api/a00060.html b/doc/api/a00060.html index f0698738..37cef437 100644 --- a/doc/api/a00060.html +++ b/doc/api/a00060.html @@ -3,8 +3,8 @@ - -GLM: log_base.hpp File Reference + +0.9.6: mat3x3.hpp File Reference @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,48 +41,33 @@
-
-Namespaces | -Functions
-
log_base.hpp File Reference
+
mat3x3.hpp File Reference

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
- - - - -

-Functions

template<typename genType >
genType log (genType const &x, genType const &base)
 

Detailed Description

OpenGL Mathematics (glm.g-truc.net)

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_log_base

-
Date
2008-10-24 / 2011-06-07
-
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
+

GLM Core

+
Date
2013-12-24 / 2013-12-24
+
Author
Christophe Riccio
-

Definition in file log_base.hpp.

+

Definition in file mat3x3.hpp.

diff --git a/doc/api/a00060_source.html b/doc/api/a00060_source.html index 75b7b0fe..52e93a65 100644 --- a/doc/api/a00060_source.html +++ b/doc/api/a00060_source.html @@ -3,8 +3,8 @@ - -GLM: log_base.hpp Source File + +0.9.6: mat3x3.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,45 +41,48 @@
-
log_base.hpp
+
mat3x3.hpp
Go to the documentation of this file.
1 
-
38 #ifndef GLM_GTX_log_base
-
39 #define GLM_GTX_log_base
-
40 
-
41 // Dependency:
-
42 #include "../glm.hpp"
-
43 
-
44 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
45 # pragma message("GLM: GLM_GTX_log_base extension included")
-
46 #endif
-
47 
-
48 namespace glm
-
49 {
-
52 
-
55  template <typename genType>
-
56  genType log(
-
57  genType const & x,
-
58  genType const & base);
-
59 
-
61 }//namespace glm
-
62 
-
63 #include "log_base.inl"
-
64 
-
65 #endif//GLM_GTX_log_base
-
GLM_FUNC_DECL genType log(genType const &x)
Returns the natural logarithm of x, i.e., returns the value y which satisfies the equation x = e^y...
+
33 #pragma once
+
34 
+
35 #include "detail/type_mat3x3.hpp"
+
36 
+
37 namespace glm
+
38 {
+
44  typedef tmat3x3<float, lowp> lowp_mat3;
+
45 
+
51  typedef tmat3x3<float, mediump> mediump_mat3;
+
52 
+
58  typedef tmat3x3<float, highp> highp_mat3;
+
59 
+
65  typedef tmat3x3<float, lowp> lowp_mat3x3;
+
66 
+
72  typedef tmat3x3<float, mediump> mediump_mat3x3;
+
73 
+
79  typedef tmat3x3<float, highp> highp_mat3x3;
+
80 
+
81 }//namespace glm
+
OpenGL Mathematics (glm.g-truc.net)
+
tmat3x3< float, highp > highp_mat3x3
3 columns of 3 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:225
+
tmat3x3< float, lowp > lowp_mat3x3
3 columns of 3 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:211
+
tmat3x3< float, mediump > mediump_mat3
3 columns of 3 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:197
+
tmat3x3< float, highp > highp_mat3
3 columns of 3 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:204
+
Definition: _noise.hpp:39
+
tmat3x3< float, mediump > mediump_mat3x3
3 columns of 3 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:218
+
tmat3x3< float, lowp > lowp_mat3
3 columns of 3 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:190
diff --git a/doc/api/a00061.html b/doc/api/a00061.html new file mode 100644 index 00000000..beb01710 --- /dev/null +++ b/doc/api/a00061.html @@ -0,0 +1,73 @@ + + + + + + +0.9.6: mat3x4.hpp File Reference + + + + + + +
+
+ + + + + + + +
+
0.9.6 +
+
+
+ + + + + +
+
+
+
mat3x4.hpp File Reference
+
+
+ +

Go to the source code of this file.

+

Detailed Description

+

OpenGL Mathematics (glm.g-truc.net)

+

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+

GLM Core

+
Date
2013-12-24 / 2013-12-24
+
Author
Christophe Riccio
+ +

Definition in file mat3x4.hpp.

+
+ + + + diff --git a/doc/api/a00061_source.html b/doc/api/a00061_source.html index 9c9af58c..4df4e193 100644 --- a/doc/api/a00061_source.html +++ b/doc/api/a00061_source.html @@ -3,8 +3,8 @@ - -GLM: man.doxy Source File + +0.9.6: mat3x4.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,2331 +41,39 @@
-
man.doxy
+
mat3x4.hpp
-
1 # Doxyfile 1.8.5
-
2 
-
3 # This file describes the settings to be used by the documentation system
-
4 # doxygen (www.doxygen.org) for a project.
-
5 #
-
6 # All text after a double hash (##) is considered a comment and is placed in
-
7 # front of the TAG it is preceding.
-
8 #
-
9 # All text after a single hash (#) is considered a comment and will be ignored.
-
10 # The format is:
-
11 # TAG = value [value, ...]
-
12 # For lists, items can also be appended using:
-
13 # TAG += value [value, ...]
-
14 # Values that contain spaces should be placed between quotes (\" \").
-
15 
-
16 #---------------------------------------------------------------------------
-
17 # Project related configuration options
-
18 #---------------------------------------------------------------------------
-
19 
-
20 # This tag specifies the encoding used for all characters in the config file
-
21 # that follow. The default is UTF-8 which is also the encoding used for all text
-
22 # before the first occurrence of this tag. Doxygen uses libiconv (or the iconv
-
23 # built into libc) for the transcoding. See http://www.gnu.org/software/libiconv
-
24 # for the list of possible encodings.
-
25 # The default value is: UTF-8.
-
26 
-
27 DOXYFILE_ENCODING = UTF-8
-
28 
-
29 # The PROJECT_NAME tag is a single word (or a sequence of words surrounded by
-
30 # double-quotes, unless you are using Doxywizard) that should identify the
-
31 # project for which the documentation is generated. This name is used in the
-
32 # title of most generated pages and in a few other places.
-
33 # The default value is: My Project.
-
34 
-
35 PROJECT_NAME = GLM
+Go to the documentation of this file.
1 
+
33 #pragma once
+
34 
+
35 #include "detail/type_mat3x4.hpp"
36 
-
37 # The PROJECT_NUMBER tag can be used to enter a project or revision number. This
-
38 # could be handy for archiving the generated documentation or if some version
-
39 # control system is used.
-
40 
-
41 PROJECT_NUMBER = 0.9.5
-
42 
-
43 # Using the PROJECT_BRIEF tag one can provide an optional one line description
-
44 # for a project that appears at the top of each page and should give viewer a
-
45 # quick idea about the purpose of the project. Keep the description short.
-
46 
-
47 PROJECT_BRIEF =
-
48 
-
49 # With the PROJECT_LOGO tag one can specify an logo or icon that is included in
-
50 # the documentation. The maximum height of the logo should not exceed 55 pixels
-
51 # and the maximum width should not exceed 200 pixels. Doxygen will copy the logo
-
52 # to the output directory.
-
53 
-
54 PROJECT_LOGO = G:/Repository/glm/doc/logo.png
-
55 
-
56 # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path
-
57 # into which the generated documentation will be written. If a relative path is
-
58 # entered, it will be relative to the location where doxygen was started. If
-
59 # left blank the current directory will be used.
-
60 
-
61 OUTPUT_DIRECTORY = .
-
62 
-
63 # If the CREATE_SUBDIRS tag is set to YES, then doxygen will create 4096 sub-
-
64 # directories (in 2 levels) under the output directory of each output format and
-
65 # will distribute the generated files over these directories. Enabling this
-
66 # option can be useful when feeding doxygen a huge amount of source files, where
-
67 # putting all generated files in the same directory would otherwise causes
-
68 # performance problems for the file system.
-
69 # The default value is: NO.
-
70 
-
71 CREATE_SUBDIRS = NO
-
72 
-
73 # The OUTPUT_LANGUAGE tag is used to specify the language in which all
-
74 # documentation generated by doxygen is written. Doxygen will use this
-
75 # information to generate all constant output in the proper language.
-
76 # Possible values are: Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-
-
77 # Traditional, Croatian, Czech, Danish, Dutch, English, Esperanto, Farsi,
-
78 # Finnish, French, German, Greek, Hungarian, Italian, Japanese, Japanese-en,
-
79 # Korean, Korean-en, Latvian, Norwegian, Macedonian, Persian, Polish,
-
80 # Portuguese, Romanian, Russian, Serbian, Slovak, Slovene, Spanish, Swedish,
-
81 # Turkish, Ukrainian and Vietnamese.
-
82 # The default value is: English.
-
83 
-
84 OUTPUT_LANGUAGE = English
-
85 
-
86 # If the BRIEF_MEMBER_DESC tag is set to YES doxygen will include brief member
-
87 # descriptions after the members that are listed in the file and class
-
88 # documentation (similar to Javadoc). Set to NO to disable this.
-
89 # The default value is: YES.
-
90 
-
91 BRIEF_MEMBER_DESC = NO
-
92 
-
93 # If the REPEAT_BRIEF tag is set to YES doxygen will prepend the brief
-
94 # description of a member or function before the detailed description
-
95 #
-
96 # Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
-
97 # brief descriptions will be completely suppressed.
-
98 # The default value is: YES.
-
99 
-
100 REPEAT_BRIEF = YES
-
101 
-
102 # This tag implements a quasi-intelligent brief description abbreviator that is
-
103 # used to form the text in various listings. Each string in this list, if found
-
104 # as the leading text of the brief description, will be stripped from the text
-
105 # and the result, after processing the whole list, is used as the annotated
-
106 # text. Otherwise, the brief description is used as-is. If left blank, the
-
107 # following values are used ($name is automatically replaced with the name of
-
108 # the entity):The $name class, The $name widget, The $name file, is, provides,
-
109 # specifies, contains, represents, a, an and the.
-
110 
-
111 ABBREVIATE_BRIEF = "The $name class " \
-
112  "The $name widget " \
-
113  "The $name file " \
-
114  is \
-
115  provides \
-
116  specifies \
-
117  contains \
-
118  represents \
-
119  a \
-
120  an \
-
121  the
-
122 
-
123 # If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
-
124 # doxygen will generate a detailed section even if there is only a brief
-
125 # description.
-
126 # The default value is: NO.
-
127 
-
128 ALWAYS_DETAILED_SEC = NO
-
129 
-
130 # If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
-
131 # inherited members of a class in the documentation of that class as if those
-
132 # members were ordinary class members. Constructors, destructors and assignment
-
133 # operators of the base classes will not be shown.
-
134 # The default value is: NO.
-
135 
-
136 INLINE_INHERITED_MEMB = NO
-
137 
-
138 # If the FULL_PATH_NAMES tag is set to YES doxygen will prepend the full path
-
139 # before files name in the file list and in the header files. If set to NO the
-
140 # shortest path that makes the file name unique will be used
-
141 # The default value is: YES.
-
142 
-
143 FULL_PATH_NAMES = NO
-
144 
-
145 # The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path.
-
146 # Stripping is only done if one of the specified strings matches the left-hand
-
147 # part of the path. The tag can be used to show relative paths in the file list.
-
148 # If left blank the directory from which doxygen is run is used as the path to
-
149 # strip.
-
150 #
-
151 # Note that you can specify absolute paths here, but also relative paths, which
-
152 # will be relative from the directory where doxygen is started.
-
153 # This tag requires that the tag FULL_PATH_NAMES is set to YES.
-
154 
-
155 STRIP_FROM_PATH = "C:/Documents and Settings/Groove/ "
-
156 
-
157 # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the
-
158 # path mentioned in the documentation of a class, which tells the reader which
-
159 # header file to include in order to use a class. If left blank only the name of
-
160 # the header file containing the class definition is used. Otherwise one should
-
161 # specify the list of include paths that are normally passed to the compiler
-
162 # using the -I flag.
-
163 
-
164 STRIP_FROM_INC_PATH =
-
165 
-
166 # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but
-
167 # less readable) file names. This can be useful is your file systems doesn't
-
168 # support long names like on DOS, Mac, or CD-ROM.
-
169 # The default value is: NO.
-
170 
-
171 SHORT_NAMES = YES
-
172 
-
173 # If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the
-
174 # first line (until the first dot) of a Javadoc-style comment as the brief
-
175 # description. If set to NO, the Javadoc-style will behave just like regular Qt-
-
176 # style comments (thus requiring an explicit @brief command for a brief
-
177 # description.)
-
178 # The default value is: NO.
-
179 
-
180 JAVADOC_AUTOBRIEF = YES
-
181 
-
182 # If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first
-
183 # line (until the first dot) of a Qt-style comment as the brief description. If
-
184 # set to NO, the Qt-style will behave just like regular Qt-style comments (thus
-
185 # requiring an explicit \brief command for a brief description.)
-
186 # The default value is: NO.
-
187 
-
188 QT_AUTOBRIEF = NO
-
189 
-
190 # The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a
-
191 # multi-line C++ special comment block (i.e. a block of
-
192 # a brief description. This used to be the default behavior. The new default is
-
193 # to treat a multi-line C++ comment block as a detailed description. Set this
-
194 # tag to YES if you prefer the old behavior instead.
-
195 #
-
196 # Note that setting this tag to YES also means that rational rose comments are
-
197 # not recognized any more.
-
198 # The default value is: NO.
-
199 
-
200 MULTILINE_CPP_IS_BRIEF = NO
-
201 
-
202 # If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the
-
203 # documentation from any documented member that it re-implements.
-
204 # The default value is: YES.
-
205 
-
206 INHERIT_DOCS = YES
-
207 
-
208 # If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce a
-
209 # new page for each member. If set to NO, the documentation of a member will be
-
210 # part of the file/class/namespace that contains it.
-
211 # The default value is: NO.
-
212 
-
213 SEPARATE_MEMBER_PAGES = NO
-
214 
-
215 # The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen
-
216 # uses this value to replace tabs by spaces in code fragments.
-
217 # Minimum value: 1, maximum value: 16, default value: 4.
-
218 
-
219 TAB_SIZE = 8
-
220 
-
221 # This tag can be used to specify a number of aliases that act as commands in
-
222 # the documentation. An alias has the form:
-
223 # name=value
-
224 # For example adding
-
225 # "sideeffect=@par Side Effects:\n"
-
226 # will allow you to put the command \sideeffect (or @sideeffect) in the
-
227 # documentation, which will result in a user-defined paragraph with heading
-
228 # "Side Effects:". You can put \n's in the value part of an alias to insert
-
229 # newlines.
-
230 
-
231 ALIASES =
-
232 
-
233 # This tag can be used to specify a number of word-keyword mappings (TCL only).
-
234 # A mapping has the form "name=value". For example adding "class=itcl::class"
-
235 # will allow you to use the command class in the itcl::class meaning.
-
236 
-
237 TCL_SUBST =
-
238 
-
239 # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources
-
240 # only. Doxygen will then generate output that is more tailored for C. For
-
241 # instance, some of the names that are used will be different. The list of all
-
242 # members will be omitted, etc.
-
243 # The default value is: NO.
-
244 
-
245 OPTIMIZE_OUTPUT_FOR_C = NO
-
246 
-
247 # Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or
-
248 # Python sources only. Doxygen will then generate output that is more tailored
-
249 # for that language. For instance, namespaces will be presented as packages,
-
250 # qualified scopes will look different, etc.
-
251 # The default value is: NO.
-
252 
-
253 OPTIMIZE_OUTPUT_JAVA = NO
-
254 
-
255 # Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran
-
256 # sources. Doxygen will then generate output that is tailored for Fortran.
-
257 # The default value is: NO.
-
258 
-
259 OPTIMIZE_FOR_FORTRAN = NO
-
260 
-
261 # Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL
-
262 # sources. Doxygen will then generate output that is tailored for VHDL.
-
263 # The default value is: NO.
-
264 
-
265 OPTIMIZE_OUTPUT_VHDL = NO
-
266 
-
267 # Doxygen selects the parser to use depending on the extension of the files it
-
268 # parses. With this tag you can assign which parser to use for a given
-
269 # extension. Doxygen has a built-in mapping, but you can override or extend it
-
270 # using this tag. The format is ext=language, where ext is a file extension, and
-
271 # language is one of the parsers supported by doxygen: IDL, Java, Javascript,
-
272 # C#, C, C++, D, PHP, Objective-C, Python, Fortran, VHDL. For instance to make
-
273 # doxygen treat .inc files as Fortran files (default is PHP), and .f files as C
-
274 # (default is Fortran), use: inc=Fortran f=C.
-
275 #
-
276 # Note For files without extension you can use no_extension as a placeholder.
-
277 #
-
278 # Note that for custom extensions you also need to set FILE_PATTERNS otherwise
-
279 # the files are not read by doxygen.
-
280 
-
281 EXTENSION_MAPPING =
-
282 
-
283 # If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments
-
284 # according to the Markdown format, which allows for more readable
-
285 # documentation. See http://daringfireball.net/projects/markdown/ for details.
-
286 # The output of markdown processing is further processed by doxygen, so you can
-
287 # mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in
-
288 # case of backward compatibilities issues.
-
289 # The default value is: YES.
-
290 
-
291 MARKDOWN_SUPPORT = YES
-
292 
-
293 # When enabled doxygen tries to link words that correspond to documented
-
294 # classes, or namespaces to their corresponding documentation. Such a link can
-
295 # be prevented in individual cases by by putting a % sign in front of the word
-
296 # or globally by setting AUTOLINK_SUPPORT to NO.
-
297 # The default value is: YES.
-
298 
-
299 AUTOLINK_SUPPORT = YES
-
300 
-
301 # If you use STL classes (i.e. std::string, std::vector, etc.) but do not want
-
302 # to include (a tag file for) the STL sources as input, then you should set this
-
303 # tag to YES in order to let doxygen match functions declarations and
-
304 # definitions whose arguments contain STL classes (e.g. func(std::string);
-
305 # versus func(std::string) {}). This also make the inheritance and collaboration
-
306 # diagrams that involve STL classes more complete and accurate.
-
307 # The default value is: NO.
-
308 
-
309 BUILTIN_STL_SUPPORT = NO
-
310 
-
311 # If you use Microsoft's C++/CLI language, you should set this option to YES to
-
312 # enable parsing support.
-
313 # The default value is: NO.
-
314 
-
315 CPP_CLI_SUPPORT = NO
-
316 
-
317 # Set the SIP_SUPPORT tag to YES if your project consists of sip (see:
-
318 # http://www.riverbankcomputing.co.uk/software/sip/intro) sources only. Doxygen
-
319 # will parse them like normal C++ but will assume all classes use public instead
-
320 # of private inheritance when no explicit protection keyword is present.
-
321 # The default value is: NO.
-
322 
-
323 SIP_SUPPORT = NO
-
324 
-
325 # For Microsoft's IDL there are propget and propput attributes to indicate
-
326 # getter and setter methods for a property. Setting this option to YES will make
-
327 # doxygen to replace the get and set methods by a property in the documentation.
-
328 # This will only work if the methods are indeed getting or setting a simple
-
329 # type. If this is not the case, or you want to show the methods anyway, you
-
330 # should set this option to NO.
-
331 # The default value is: YES.
-
332 
-
333 IDL_PROPERTY_SUPPORT = YES
-
334 
-
335 # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
-
336 # tag is set to YES, then doxygen will reuse the documentation of the first
-
337 # member in the group (if any) for the other members of the group. By default
-
338 # all members of a group must be documented explicitly.
-
339 # The default value is: NO.
-
340 
-
341 DISTRIBUTE_GROUP_DOC = NO
-
342 
-
343 # Set the SUBGROUPING tag to YES to allow class member groups of the same type
-
344 # (for instance a group of public functions) to be put as a subgroup of that
-
345 # type (e.g. under the Public Functions section). Set it to NO to prevent
-
346 # subgrouping. Alternatively, this can be done per class using the
-
347 # \nosubgrouping command.
-
348 # The default value is: YES.
-
349 
-
350 SUBGROUPING = NO
-
351 
-
352 # When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions
-
353 # are shown inside the group in which they are included (e.g. using \ingroup)
-
354 # instead of on a separate page (for HTML and Man pages) or section (for LaTeX
-
355 # and RTF).
-
356 #
-
357 # Note that this feature does not work in combination with
-
358 # SEPARATE_MEMBER_PAGES.
-
359 # The default value is: NO.
-
360 
-
361 INLINE_GROUPED_CLASSES = NO
-
362 
-
363 # When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions
-
364 # with only public data fields or simple typedef fields will be shown inline in
-
365 # the documentation of the scope in which they are defined (i.e. file,
-
366 # namespace, or group documentation), provided this scope is documented. If set
-
367 # to NO, structs, classes, and unions are shown on a separate page (for HTML and
-
368 # Man pages) or section (for LaTeX and RTF).
-
369 # The default value is: NO.
-
370 
-
371 INLINE_SIMPLE_STRUCTS = NO
-
372 
-
373 # When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or
-
374 # enum is documented as struct, union, or enum with the name of the typedef. So
-
375 # typedef struct TypeS {} TypeT, will appear in the documentation as a struct
-
376 # with name TypeT. When disabled the typedef will appear as a member of a file,
-
377 # namespace, or class. And the struct will be named TypeS. This can typically be
-
378 # useful for C code in case the coding convention dictates that all compound
-
379 # types are typedef'ed and only the typedef is referenced, never the tag name.
-
380 # The default value is: NO.
-
381 
-
382 TYPEDEF_HIDES_STRUCT = NO
-
383 
-
384 # The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This
-
385 # cache is used to resolve symbols given their name and scope. Since this can be
-
386 # an expensive process and often the same symbol appears multiple times in the
-
387 # code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small
-
388 # doxygen will become slower. If the cache is too large, memory is wasted. The
-
389 # cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range
-
390 # is 0..9, the default is 0, corresponding to a cache size of 2^16=65536
-
391 # symbols. At the end of a run doxygen will report the cache usage and suggest
-
392 # the optimal cache size from a speed point of view.
-
393 # Minimum value: 0, maximum value: 9, default value: 0.
-
394 
-
395 LOOKUP_CACHE_SIZE = 0
-
396 
-
397 #---------------------------------------------------------------------------
-
398 # Build related configuration options
-
399 #---------------------------------------------------------------------------
-
400 
-
401 # If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
-
402 # documentation are documented, even if no documentation was available. Private
-
403 # class members and static file members will be hidden unless the
-
404 # EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES.
-
405 # Note: This will also disable the warnings about undocumented members that are
-
406 # normally produced when WARNINGS is set to YES.
-
407 # The default value is: NO.
-
408 
-
409 EXTRACT_ALL = NO
-
410 
-
411 # If the EXTRACT_PRIVATE tag is set to YES all private members of a class will
-
412 # be included in the documentation.
-
413 # The default value is: NO.
-
414 
-
415 EXTRACT_PRIVATE = NO
-
416 
-
417 # If the EXTRACT_PACKAGE tag is set to YES all members with package or internal
-
418 # scope will be included in the documentation.
-
419 # The default value is: NO.
-
420 
-
421 EXTRACT_PACKAGE = NO
-
422 
-
423 # If the EXTRACT_STATIC tag is set to YES all static members of a file will be
-
424 # included in the documentation.
-
425 # The default value is: NO.
-
426 
-
427 EXTRACT_STATIC = YES
-
428 
-
429 # If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) defined
-
430 # locally in source files will be included in the documentation. If set to NO
-
431 # only classes defined in header files are included. Does not have any effect
-
432 # for Java sources.
-
433 # The default value is: YES.
-
434 
-
435 EXTRACT_LOCAL_CLASSES = NO
-
436 
-
437 # This flag is only useful for Objective-C code. When set to YES local methods,
-
438 # which are defined in the implementation section but not in the interface are
-
439 # included in the documentation. If set to NO only methods in the interface are
-
440 # included.
-
441 # The default value is: NO.
-
442 
-
443 EXTRACT_LOCAL_METHODS = NO
-
444 
-
445 # If this flag is set to YES, the members of anonymous namespaces will be
-
446 # extracted and appear in the documentation as a namespace called
-
447 # 'anonymous_namespace{file}', where file will be replaced with the base name of
-
448 # the file that contains the anonymous namespace. By default anonymous namespace
-
449 # are hidden.
-
450 # The default value is: NO.
-
451 
-
452 EXTRACT_ANON_NSPACES = NO
-
453 
-
454 # If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all
-
455 # undocumented members inside documented classes or files. If set to NO these
-
456 # members will be included in the various overviews, but no documentation
-
457 # section is generated. This option has no effect if EXTRACT_ALL is enabled.
-
458 # The default value is: NO.
-
459 
-
460 HIDE_UNDOC_MEMBERS = YES
-
461 
-
462 # If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all
-
463 # undocumented classes that are normally visible in the class hierarchy. If set
-
464 # to NO these classes will be included in the various overviews. This option has
-
465 # no effect if EXTRACT_ALL is enabled.
-
466 # The default value is: NO.
-
467 
-
468 HIDE_UNDOC_CLASSES = YES
-
469 
-
470 # If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend
-
471 # (class|struct|union) declarations. If set to NO these declarations will be
-
472 # included in the documentation.
-
473 # The default value is: NO.
-
474 
-
475 HIDE_FRIEND_COMPOUNDS = YES
-
476 
-
477 # If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any
-
478 # documentation blocks found inside the body of a function. If set to NO these
-
479 # blocks will be appended to the function's detailed documentation block.
-
480 # The default value is: NO.
-
481 
-
482 HIDE_IN_BODY_DOCS = YES
-
483 
-
484 # The INTERNAL_DOCS tag determines if documentation that is typed after a
-
485 # \internal command is included. If the tag is set to NO then the documentation
-
486 # will be excluded. Set it to YES to include the internal documentation.
-
487 # The default value is: NO.
-
488 
-
489 INTERNAL_DOCS = NO
-
490 
-
491 # If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file
-
492 # names in lower-case letters. If set to YES upper-case letters are also
-
493 # allowed. This is useful if you have classes or files whose names only differ
-
494 # in case and if your file system supports case sensitive file names. Windows
-
495 # and Mac users are advised to set this option to NO.
-
496 # The default value is: system dependent.
-
497 
-
498 CASE_SENSE_NAMES = YES
-
499 
-
500 # If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with
-
501 # their full class and namespace scopes in the documentation. If set to YES the
-
502 # scope will be hidden.
-
503 # The default value is: NO.
-
504 
-
505 HIDE_SCOPE_NAMES = YES
-
506 
-
507 # If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of
-
508 # the files that are included by a file in the documentation of that file.
-
509 # The default value is: YES.
-
510 
-
511 SHOW_INCLUDE_FILES = NO
-
512 
-
513 # If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include
-
514 # files with double quotes in the documentation rather than with sharp brackets.
-
515 # The default value is: NO.
-
516 
-
517 FORCE_LOCAL_INCLUDES = NO
-
518 
-
519 # If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the
-
520 # documentation for inline members.
-
521 # The default value is: YES.
-
522 
-
523 INLINE_INFO = NO
-
524 
-
525 # If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the
-
526 # (detailed) documentation of file and class members alphabetically by member
-
527 # name. If set to NO the members will appear in declaration order.
-
528 # The default value is: YES.
-
529 
-
530 SORT_MEMBER_DOCS = YES
-
531 
-
532 # If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief
-
533 # descriptions of file, namespace and class members alphabetically by member
-
534 # name. If set to NO the members will appear in declaration order.
-
535 # The default value is: NO.
-
536 
-
537 SORT_BRIEF_DOCS = YES
-
538 
-
539 # If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the
-
540 # (brief and detailed) documentation of class members so that constructors and
-
541 # destructors are listed first. If set to NO the constructors will appear in the
-
542 # respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS.
-
543 # Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief
-
544 # member documentation.
-
545 # Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting
-
546 # detailed member documentation.
-
547 # The default value is: NO.
-
548 
-
549 SORT_MEMBERS_CTORS_1ST = NO
-
550 
-
551 # If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy
-
552 # of group names into alphabetical order. If set to NO the group names will
-
553 # appear in their defined order.
-
554 # The default value is: NO.
-
555 
-
556 SORT_GROUP_NAMES = NO
-
557 
-
558 # If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by
-
559 # fully-qualified names, including namespaces. If set to NO, the class list will
-
560 # be sorted only by class name, not including the namespace part.
-
561 # Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
-
562 # Note: This option applies only to the class list, not to the alphabetical
-
563 # list.
-
564 # The default value is: NO.
-
565 
-
566 SORT_BY_SCOPE_NAME = YES
-
567 
-
568 # If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper
-
569 # type resolution of all parameters of a function it will reject a match between
-
570 # the prototype and the implementation of a member function even if there is
-
571 # only one candidate or it is obvious which candidate to choose by doing a
-
572 # simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still
-
573 # accept a match between prototype and implementation in such cases.
-
574 # The default value is: NO.
-
575 
-
576 STRICT_PROTO_MATCHING = NO
-
577 
-
578 # The GENERATE_TODOLIST tag can be used to enable ( YES) or disable ( NO) the
-
579 # todo list. This list is created by putting \todo commands in the
-
580 # documentation.
-
581 # The default value is: YES.
-
582 
-
583 GENERATE_TODOLIST = YES
-
584 
-
585 # The GENERATE_TESTLIST tag can be used to enable ( YES) or disable ( NO) the
-
586 # test list. This list is created by putting \test commands in the
-
587 # documentation.
-
588 # The default value is: YES.
-
589 
-
590 GENERATE_TESTLIST = YES
-
591 
-
592 # The GENERATE_BUGLIST tag can be used to enable ( YES) or disable ( NO) the bug
-
593 # list. This list is created by putting \bug commands in the documentation.
-
594 # The default value is: YES.
-
595 
-
596 GENERATE_BUGLIST = YES
-
597 
-
598 # The GENERATE_DEPRECATEDLIST tag can be used to enable ( YES) or disable ( NO)
-
599 # the deprecated list. This list is created by putting \deprecated commands in
-
600 # the documentation.
-
601 # The default value is: YES.
-
602 
-
603 GENERATE_DEPRECATEDLIST= YES
-
604 
-
605 # The ENABLED_SECTIONS tag can be used to enable conditional documentation
-
606 # sections, marked by \if <section_label> ... \endif and \cond <section_label>
-
607 # ... \endcond blocks.
-
608 
-
609 ENABLED_SECTIONS =
-
610 
-
611 # The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the
-
612 # initial value of a variable or macro / define can have for it to appear in the
-
613 # documentation. If the initializer consists of more lines than specified here
-
614 # it will be hidden. Use a value of 0 to hide initializers completely. The
-
615 # appearance of the value of individual variables and macros / defines can be
-
616 # controlled using \showinitializer or \hideinitializer command in the
-
617 # documentation regardless of this setting.
-
618 # Minimum value: 0, maximum value: 10000, default value: 30.
-
619 
-
620 MAX_INITIALIZER_LINES = 30
-
621 
-
622 # Set the SHOW_USED_FILES tag to NO to disable the list of files generated at
-
623 # the bottom of the documentation of classes and structs. If set to YES the list
-
624 # will mention the files that were used to generate the documentation.
-
625 # The default value is: YES.
-
626 
-
627 SHOW_USED_FILES = NO
-
628 
-
629 # Set the SHOW_FILES tag to NO to disable the generation of the Files page. This
-
630 # will remove the Files entry from the Quick Index and from the Folder Tree View
-
631 # (if specified).
-
632 # The default value is: YES.
-
633 
-
634 SHOW_FILES = YES
-
635 
-
636 # Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces
-
637 # page. This will remove the Namespaces entry from the Quick Index and from the
-
638 # Folder Tree View (if specified).
-
639 # The default value is: YES.
-
640 
-
641 SHOW_NAMESPACES = YES
-
642 
-
643 # The FILE_VERSION_FILTER tag can be used to specify a program or script that
-
644 # doxygen should invoke to get the current version for each file (typically from
-
645 # the version control system). Doxygen will invoke the program by executing (via
-
646 # popen()) the command command input-file, where command is the value of the
-
647 # FILE_VERSION_FILTER tag, and input-file is the name of an input file provided
-
648 # by doxygen. Whatever the program writes to standard output is used as the file
-
649 # version. For an example see the documentation.
-
650 
-
651 FILE_VERSION_FILTER =
-
652 
-
653 # The LAYOUT_FILE tag can be used to specify a layout file which will be parsed
-
654 # by doxygen. The layout file controls the global structure of the generated
-
655 # output files in an output format independent way. To create the layout file
-
656 # that represents doxygen's defaults, run doxygen with the -l option. You can
-
657 # optionally specify a file name after the option, if omitted DoxygenLayout.xml
-
658 # will be used as the name of the layout file.
-
659 #
-
660 # Note that if you run doxygen from a directory containing a file called
-
661 # DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE
-
662 # tag is left empty.
-
663 
-
664 LAYOUT_FILE =
-
665 
-
666 # The CITE_BIB_FILES tag can be used to specify one or more bib files containing
-
667 # the reference definitions. This must be a list of .bib files. The .bib
-
668 # extension is automatically appended if omitted. This requires the bibtex tool
-
669 # to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info.
-
670 # For LaTeX the style of the bibliography can be controlled using
-
671 # LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the
-
672 # search path. Do not use file names with spaces, bibtex cannot handle them. See
-
673 # also \cite for info how to create references.
-
674 
-
675 CITE_BIB_FILES =
-
676 
-
677 #---------------------------------------------------------------------------
-
678 # Configuration options related to warning and progress messages
-
679 #---------------------------------------------------------------------------
-
680 
-
681 # The QUIET tag can be used to turn on/off the messages that are generated to
-
682 # standard output by doxygen. If QUIET is set to YES this implies that the
-
683 # messages are off.
-
684 # The default value is: NO.
-
685 
-
686 QUIET = NO
-
687 
-
688 # The WARNINGS tag can be used to turn on/off the warning messages that are
-
689 # generated to standard error ( stderr) by doxygen. If WARNINGS is set to YES
-
690 # this implies that the warnings are on.
-
691 #
-
692 # Tip: Turn warnings on while writing the documentation.
-
693 # The default value is: YES.
-
694 
-
695 WARNINGS = YES
-
696 
-
697 # If the WARN_IF_UNDOCUMENTED tag is set to YES, then doxygen will generate
-
698 # warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag
-
699 # will automatically be disabled.
-
700 # The default value is: YES.
-
701 
-
702 WARN_IF_UNDOCUMENTED = YES
-
703 
-
704 # If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for
-
705 # potential errors in the documentation, such as not documenting some parameters
-
706 # in a documented function, or documenting parameters that don't exist or using
-
707 # markup commands wrongly.
-
708 # The default value is: YES.
-
709 
-
710 WARN_IF_DOC_ERROR = YES
-
711 
-
712 # This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that
-
713 # are documented, but have no documentation for their parameters or return
-
714 # value. If set to NO doxygen will only warn about wrong or incomplete parameter
-
715 # documentation, but not about the absence of documentation.
-
716 # The default value is: NO.
-
717 
-
718 WARN_NO_PARAMDOC = NO
-
719 
-
720 # The WARN_FORMAT tag determines the format of the warning messages that doxygen
-
721 # can produce. The string should contain the $file, $line, and $text tags, which
-
722 # will be replaced by the file and line number from which the warning originated
-
723 # and the warning text. Optionally the format may contain $version, which will
-
724 # be replaced by the version of the file (if it could be obtained via
-
725 # FILE_VERSION_FILTER)
-
726 # The default value is: $file:$line: $text.
-
727 
-
728 WARN_FORMAT = "$file:$line: $text"
-
729 
-
730 # The WARN_LOGFILE tag can be used to specify a file to which warning and error
-
731 # messages should be written. If left blank the output is written to standard
-
732 # error (stderr).
-
733 
-
734 WARN_LOGFILE =
-
735 
-
736 #---------------------------------------------------------------------------
-
737 # Configuration options related to the input files
-
738 #---------------------------------------------------------------------------
-
739 
-
740 # The INPUT tag is used to specify the files and/or directories that contain
-
741 # documented source files. You may enter file names like myfile.cpp or
-
742 # directories like /usr/src/myproject. Separate the files or directories with
-
743 # spaces.
-
744 # Note: If this tag is empty the current directory is searched.
-
745 
-
746 INPUT = ../glm \
-
747  .
-
748 
-
749 # This tag can be used to specify the character encoding of the source files
-
750 # that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
-
751 # libiconv (or the iconv built into libc) for the transcoding. See the libiconv
-
752 # documentation (see: http://www.gnu.org/software/libiconv) for the list of
-
753 # possible encodings.
-
754 # The default value is: UTF-8.
-
755 
-
756 INPUT_ENCODING = UTF-8
-
757 
-
758 # If the value of the INPUT tag contains directories, you can use the
-
759 # FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and
-
760 # *.h) to filter out the source-files in the directories. If left blank the
-
761 # following patterns are tested:*.c, *.cc, *.cxx, *.cpp, *.c++, *.java, *.ii,
-
762 # *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, *.hh, *.hxx, *.hpp,
-
763 # *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, *.m, *.markdown,
-
764 # *.md, *.mm, *.dox, *.py, *.f90, *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf,
-
765 # *.qsf, *.as and *.js.
-
766 
-
767 FILE_PATTERNS = *.hpp \
-
768  *.doxy
-
769 
-
770 # The RECURSIVE tag can be used to specify whether or not subdirectories should
-
771 # be searched for input files as well.
-
772 # The default value is: NO.
-
773 
-
774 RECURSIVE = YES
-
775 
-
776 # The EXCLUDE tag can be used to specify files and/or directories that should be
-
777 # excluded from the INPUT source files. This way you can easily exclude a
-
778 # subdirectory from a directory tree whose root is specified with the INPUT tag.
-
779 #
-
780 # Note that relative paths are relative to the directory from which doxygen is
-
781 # run.
-
782 
-
783 EXCLUDE =
-
784 
-
785 # The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
-
786 # directories that are symbolic links (a Unix file system feature) are excluded
-
787 # from the input.
-
788 # The default value is: NO.
-
789 
-
790 EXCLUDE_SYMLINKS = NO
-
791 
-
792 # If the value of the INPUT tag contains directories, you can use the
-
793 # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
-
794 # certain files from those directories.
-
795 #
-
796 # Note that the wildcards are matched against the file with absolute path, so to
-
797 # exclude all test directories for example use the pattern */test/*
-
798 
-
799 EXCLUDE_PATTERNS =
-
800 
-
801 # The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
-
802 # (namespaces, classes, functions, etc.) that should be excluded from the
-
803 # output. The symbol name can be a fully qualified name, a word, or if the
-
804 # wildcard * is used, a substring. Examples: ANamespace, AClass,
-
805 # AClass::ANamespace, ANamespace::*Test
-
806 #
-
807 # Note that the wildcards are matched against the file with absolute path, so to
-
808 # exclude all test directories use the pattern */test/*
-
809 
-
810 EXCLUDE_SYMBOLS =
-
811 
-
812 # The EXAMPLE_PATH tag can be used to specify one or more files or directories
-
813 # that contain example code fragments that are included (see the \include
-
814 # command).
-
815 
-
816 EXAMPLE_PATH =
-
817 
-
818 # If the value of the EXAMPLE_PATH tag contains directories, you can use the
-
819 # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and
-
820 # *.h) to filter out the source-files in the directories. If left blank all
-
821 # files are included.
-
822 
-
823 EXAMPLE_PATTERNS = *
-
824 
-
825 # If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
-
826 # searched for input files to be used with the \include or \dontinclude commands
-
827 # irrespective of the value of the RECURSIVE tag.
-
828 # The default value is: NO.
-
829 
-
830 EXAMPLE_RECURSIVE = NO
-
831 
-
832 # The IMAGE_PATH tag can be used to specify one or more files or directories
-
833 # that contain images that are to be included in the documentation (see the
-
834 # \image command).
-
835 
-
836 IMAGE_PATH =
-
837 
-
838 # The INPUT_FILTER tag can be used to specify a program that doxygen should
-
839 # invoke to filter for each input file. Doxygen will invoke the filter program
-
840 # by executing (via popen()) the command:
-
841 #
-
842 # <filter> <input-file>
-
843 #
-
844 # where <filter> is the value of the INPUT_FILTER tag, and <input-file> is the
-
845 # name of an input file. Doxygen will then use the output that the filter
-
846 # program writes to standard output. If FILTER_PATTERNS is specified, this tag
-
847 # will be ignored.
-
848 #
-
849 # Note that the filter must not add or remove lines; it is applied before the
-
850 # code is scanned, but not when the output code is generated. If lines are added
-
851 # or removed, the anchors will not be placed correctly.
-
852 
-
853 INPUT_FILTER =
-
854 
-
855 # The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
-
856 # basis. Doxygen will compare the file name with each pattern and apply the
-
857 # filter if there is a match. The filters are a list of the form: pattern=filter
-
858 # (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how
-
859 # filters are used. If the FILTER_PATTERNS tag is empty or if none of the
-
860 # patterns match the file name, INPUT_FILTER is applied.
-
861 
-
862 FILTER_PATTERNS =
-
863 
-
864 # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
-
865 # INPUT_FILTER ) will also be used to filter the input files that are used for
-
866 # producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES).
-
867 # The default value is: NO.
-
868 
-
869 FILTER_SOURCE_FILES = NO
-
870 
-
871 # The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file
-
872 # pattern. A pattern will override the setting for FILTER_PATTERN (if any) and
-
873 # it is also possible to disable source filtering for a specific pattern using
-
874 # *.ext= (so without naming a filter).
-
875 # This tag requires that the tag FILTER_SOURCE_FILES is set to YES.
-
876 
-
877 FILTER_SOURCE_PATTERNS =
-
878 
-
879 # If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that
-
880 # is part of the input, its contents will be placed on the main page
-
881 # (index.html). This can be useful if you have a project on for instance GitHub
-
882 # and want to reuse the introduction page also for the doxygen output.
-
883 
-
884 USE_MDFILE_AS_MAINPAGE =
-
885 
-
886 #---------------------------------------------------------------------------
-
887 # Configuration options related to source browsing
-
888 #---------------------------------------------------------------------------
-
889 
-
890 # If the SOURCE_BROWSER tag is set to YES then a list of source files will be
-
891 # generated. Documented entities will be cross-referenced with these sources.
-
892 #
-
893 # Note: To get rid of all source code in the generated output, make sure that
-
894 # also VERBATIM_HEADERS is set to NO.
-
895 # The default value is: NO.
-
896 
-
897 SOURCE_BROWSER = YES
-
898 
-
899 # Setting the INLINE_SOURCES tag to YES will include the body of functions,
-
900 # classes and enums directly into the documentation.
-
901 # The default value is: NO.
-
902 
-
903 INLINE_SOURCES = NO
-
904 
-
905 # Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any
-
906 # special comment blocks from generated source code fragments. Normal C, C++ and
-
907 # Fortran comments will always remain visible.
-
908 # The default value is: YES.
-
909 
-
910 STRIP_CODE_COMMENTS = YES
-
911 
-
912 # If the REFERENCED_BY_RELATION tag is set to YES then for each documented
-
913 # function all documented functions referencing it will be listed.
-
914 # The default value is: NO.
-
915 
-
916 REFERENCED_BY_RELATION = YES
-
917 
-
918 # If the REFERENCES_RELATION tag is set to YES then for each documented function
-
919 # all documented entities called/used by that function will be listed.
-
920 # The default value is: NO.
-
921 
-
922 REFERENCES_RELATION = YES
-
923 
-
924 # If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set
-
925 # to YES, then the hyperlinks from functions in REFERENCES_RELATION and
-
926 # REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will
-
927 # link to the documentation.
-
928 # The default value is: YES.
-
929 
-
930 REFERENCES_LINK_SOURCE = YES
-
931 
-
932 # If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the
-
933 # source code will show a tooltip with additional information such as prototype,
-
934 # brief description and links to the definition and documentation. Since this
-
935 # will make the HTML file larger and loading of large files a bit slower, you
-
936 # can opt to disable this feature.
-
937 # The default value is: YES.
-
938 # This tag requires that the tag SOURCE_BROWSER is set to YES.
-
939 
-
940 SOURCE_TOOLTIPS = YES
-
941 
-
942 # If the USE_HTAGS tag is set to YES then the references to source code will
-
943 # point to the HTML generated by the htags(1) tool instead of doxygen built-in
-
944 # source browser. The htags tool is part of GNU's global source tagging system
-
945 # (see http://www.gnu.org/software/global/global.html). You will need version
-
946 # 4.8.6 or higher.
-
947 #
-
948 # To use it do the following:
-
949 # - Install the latest version of global
-
950 # - Enable SOURCE_BROWSER and USE_HTAGS in the config file
-
951 # - Make sure the INPUT points to the root of the source tree
-
952 # - Run doxygen as normal
-
953 #
-
954 # Doxygen will invoke htags (and that will in turn invoke gtags), so these
-
955 # tools must be available from the command line (i.e. in the search path).
-
956 #
-
957 # The result: instead of the source browser generated by doxygen, the links to
-
958 # source code will now point to the output of htags.
-
959 # The default value is: NO.
-
960 # This tag requires that the tag SOURCE_BROWSER is set to YES.
-
961 
-
962 USE_HTAGS = NO
-
963 
-
964 # If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a
-
965 # verbatim copy of the header file for each class for which an include is
-
966 # specified. Set to NO to disable this.
-
967 # See also: Section \class.
-
968 # The default value is: YES.
-
969 
-
970 VERBATIM_HEADERS = YES
-
971 
-
972 # If the CLANG_ASSISTED_PARSING tag is set to YES, then doxygen will use the
-
973 # clang parser (see: http://clang.llvm.org/) for more acurate parsing at the
-
974 # cost of reduced performance. This can be particularly helpful with template
-
975 # rich C++ code for which doxygen's built-in parser lacks the necessary type
-
976 # information.
-
977 # Note: The availability of this option depends on whether or not doxygen was
-
978 # compiled with the --with-libclang option.
-
979 # The default value is: NO.
-
980 
-
981 CLANG_ASSISTED_PARSING = NO
-
982 
-
983 # If clang assisted parsing is enabled you can provide the compiler with command
-
984 # line options that you would normally use when invoking the compiler. Note that
-
985 # the include paths will already be set by doxygen for the files and directories
-
986 # specified with INPUT and INCLUDE_PATH.
-
987 # This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES.
-
988 
-
989 CLANG_OPTIONS =
-
990 
-
991 #---------------------------------------------------------------------------
-
992 # Configuration options related to the alphabetical class index
-
993 #---------------------------------------------------------------------------
-
994 
-
995 # If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all
-
996 # compounds will be generated. Enable this if the project contains a lot of
-
997 # classes, structs, unions or interfaces.
-
998 # The default value is: YES.
-
999 
-
1000 ALPHABETICAL_INDEX = NO
-
1001 
-
1002 # The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in
-
1003 # which the alphabetical index list will be split.
-
1004 # Minimum value: 1, maximum value: 20, default value: 5.
-
1005 # This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
-
1006 
-
1007 COLS_IN_ALPHA_INDEX = 5
-
1008 
-
1009 # In case all classes in a project start with a common prefix, all classes will
-
1010 # be put under the same header in the alphabetical index. The IGNORE_PREFIX tag
-
1011 # can be used to specify a prefix (or a list of prefixes) that should be ignored
-
1012 # while generating the index headers.
-
1013 # This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
-
1014 
-
1015 IGNORE_PREFIX =
-
1016 
-
1017 #---------------------------------------------------------------------------
-
1018 # Configuration options related to the HTML output
-
1019 #---------------------------------------------------------------------------
-
1020 
-
1021 # If the GENERATE_HTML tag is set to YES doxygen will generate HTML output
-
1022 # The default value is: YES.
-
1023 
-
1024 GENERATE_HTML = YES
-
1025 
-
1026 # The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a
-
1027 # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
-
1028 # it.
-
1029 # The default directory is: html.
-
1030 # This tag requires that the tag GENERATE_HTML is set to YES.
-
1031 
-
1032 HTML_OUTPUT = html
-
1033 
-
1034 # The HTML_FILE_EXTENSION tag can be used to specify the file extension for each
-
1035 # generated HTML page (for example: .htm, .php, .asp).
-
1036 # The default value is: .html.
-
1037 # This tag requires that the tag GENERATE_HTML is set to YES.
-
1038 
-
1039 HTML_FILE_EXTENSION = .html
-
1040 
-
1041 # The HTML_HEADER tag can be used to specify a user-defined HTML header file for
-
1042 # each generated HTML page. If the tag is left blank doxygen will generate a
-
1043 # standard header.
-
1044 #
-
1045 # To get valid HTML the header file that includes any scripts and style sheets
-
1046 # that doxygen needs, which is dependent on the configuration options used (e.g.
-
1047 # the setting GENERATE_TREEVIEW). It is highly recommended to start with a
-
1048 # default header using
-
1049 # doxygen -w html new_header.html new_footer.html new_stylesheet.css
-
1050 # YourConfigFile
-
1051 # and then modify the file new_header.html. See also section "Doxygen usage"
-
1052 # for information on how to generate the default header that doxygen normally
-
1053 # uses.
-
1054 # Note: The header is subject to change so you typically have to regenerate the
-
1055 # default header when upgrading to a newer version of doxygen. For a description
-
1056 # of the possible markers and block names see the documentation.
-
1057 # This tag requires that the tag GENERATE_HTML is set to YES.
-
1058 
-
1059 HTML_HEADER =
-
1060 
-
1061 # The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each
-
1062 # generated HTML page. If the tag is left blank doxygen will generate a standard
-
1063 # footer. See HTML_HEADER for more information on how to generate a default
-
1064 # footer and what special commands can be used inside the footer. See also
-
1065 # section "Doxygen usage" for information on how to generate the default footer
-
1066 # that doxygen normally uses.
-
1067 # This tag requires that the tag GENERATE_HTML is set to YES.
-
1068 
-
1069 HTML_FOOTER =
-
1070 
-
1071 # The HTML_STYLESHEET tag can be used to specify a user-defined cascading style
-
1072 # sheet that is used by each HTML page. It can be used to fine-tune the look of
-
1073 # the HTML output. If left blank doxygen will generate a default style sheet.
-
1074 # See also section "Doxygen usage" for information on how to generate the style
-
1075 # sheet that doxygen normally uses.
-
1076 # Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as
-
1077 # it is more robust and this tag (HTML_STYLESHEET) will in the future become
-
1078 # obsolete.
-
1079 # This tag requires that the tag GENERATE_HTML is set to YES.
-
1080 
-
1081 HTML_STYLESHEET =
-
1082 
-
1083 # The HTML_EXTRA_STYLESHEET tag can be used to specify an additional user-
-
1084 # defined cascading style sheet that is included after the standard style sheets
-
1085 # created by doxygen. Using this option one can overrule certain style aspects.
-
1086 # This is preferred over using HTML_STYLESHEET since it does not replace the
-
1087 # standard style sheet and is therefor more robust against future updates.
-
1088 # Doxygen will copy the style sheet file to the output directory. For an example
-
1089 # see the documentation.
-
1090 # This tag requires that the tag GENERATE_HTML is set to YES.
-
1091 
-
1092 HTML_EXTRA_STYLESHEET =
-
1093 
-
1094 # The HTML_EXTRA_FILES tag can be used to specify one or more extra images or
-
1095 # other source files which should be copied to the HTML output directory. Note
-
1096 # that these files will be copied to the base HTML output directory. Use the
-
1097 # $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these
-
1098 # files. In the HTML_STYLESHEET file, use the file name only. Also note that the
-
1099 # files will be copied as-is; there are no commands or markers available.
-
1100 # This tag requires that the tag GENERATE_HTML is set to YES.
-
1101 
-
1102 HTML_EXTRA_FILES =
-
1103 
-
1104 # The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen
-
1105 # will adjust the colors in the stylesheet and background images according to
-
1106 # this color. Hue is specified as an angle on a colorwheel, see
-
1107 # http://en.wikipedia.org/wiki/Hue for more information. For instance the value
-
1108 # 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300
-
1109 # purple, and 360 is red again.
-
1110 # Minimum value: 0, maximum value: 359, default value: 220.
-
1111 # This tag requires that the tag GENERATE_HTML is set to YES.
-
1112 
-
1113 HTML_COLORSTYLE_HUE = 220
-
1114 
-
1115 # The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors
-
1116 # in the HTML output. For a value of 0 the output will use grayscales only. A
-
1117 # value of 255 will produce the most vivid colors.
-
1118 # Minimum value: 0, maximum value: 255, default value: 100.
-
1119 # This tag requires that the tag GENERATE_HTML is set to YES.
-
1120 
-
1121 HTML_COLORSTYLE_SAT = 100
-
1122 
-
1123 # The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the
-
1124 # luminance component of the colors in the HTML output. Values below 100
-
1125 # gradually make the output lighter, whereas values above 100 make the output
-
1126 # darker. The value divided by 100 is the actual gamma applied, so 80 represents
-
1127 # a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not
-
1128 # change the gamma.
-
1129 # Minimum value: 40, maximum value: 240, default value: 80.
-
1130 # This tag requires that the tag GENERATE_HTML is set to YES.
-
1131 
-
1132 HTML_COLORSTYLE_GAMMA = 80
-
1133 
-
1134 # If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML
-
1135 # page will contain the date and time when the page was generated. Setting this
-
1136 # to NO can help when comparing the output of multiple runs.
-
1137 # The default value is: YES.
-
1138 # This tag requires that the tag GENERATE_HTML is set to YES.
-
1139 
-
1140 HTML_TIMESTAMP = NO
-
1141 
-
1142 # If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
-
1143 # documentation will contain sections that can be hidden and shown after the
-
1144 # page has loaded.
-
1145 # The default value is: NO.
-
1146 # This tag requires that the tag GENERATE_HTML is set to YES.
-
1147 
-
1148 HTML_DYNAMIC_SECTIONS = NO
-
1149 
-
1150 # With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries
-
1151 # shown in the various tree structured indices initially; the user can expand
-
1152 # and collapse entries dynamically later on. Doxygen will expand the tree to
-
1153 # such a level that at most the specified number of entries are visible (unless
-
1154 # a fully collapsed tree already exceeds this amount). So setting the number of
-
1155 # entries 1 will produce a full collapsed tree by default. 0 is a special value
-
1156 # representing an infinite number of entries and will result in a full expanded
-
1157 # tree by default.
-
1158 # Minimum value: 0, maximum value: 9999, default value: 100.
-
1159 # This tag requires that the tag GENERATE_HTML is set to YES.
-
1160 
-
1161 HTML_INDEX_NUM_ENTRIES = 100
-
1162 
-
1163 # If the GENERATE_DOCSET tag is set to YES, additional index files will be
-
1164 # generated that can be used as input for Apple's Xcode 3 integrated development
-
1165 # environment (see: http://developer.apple.com/tools/xcode/), introduced with
-
1166 # OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a
-
1167 # Makefile in the HTML output directory. Running make will produce the docset in
-
1168 # that directory and running make install will install the docset in
-
1169 # ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at
-
1170 # startup. See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html
-
1171 # for more information.
-
1172 # The default value is: NO.
-
1173 # This tag requires that the tag GENERATE_HTML is set to YES.
-
1174 
-
1175 GENERATE_DOCSET = NO
-
1176 
-
1177 # This tag determines the name of the docset feed. A documentation feed provides
-
1178 # an umbrella under which multiple documentation sets from a single provider
-
1179 # (such as a company or product suite) can be grouped.
-
1180 # The default value is: Doxygen generated docs.
-
1181 # This tag requires that the tag GENERATE_DOCSET is set to YES.
-
1182 
-
1183 DOCSET_FEEDNAME = "Doxygen generated docs"
-
1184 
-
1185 # This tag specifies a string that should uniquely identify the documentation
-
1186 # set bundle. This should be a reverse domain-name style string, e.g.
-
1187 # com.mycompany.MyDocSet. Doxygen will append .docset to the name.
-
1188 # The default value is: org.doxygen.Project.
-
1189 # This tag requires that the tag GENERATE_DOCSET is set to YES.
-
1190 
-
1191 DOCSET_BUNDLE_ID = org.doxygen.Project
-
1192 
-
1193 # The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify
-
1194 # the documentation publisher. This should be a reverse domain-name style
-
1195 # string, e.g. com.mycompany.MyDocSet.documentation.
-
1196 # The default value is: org.doxygen.Publisher.
-
1197 # This tag requires that the tag GENERATE_DOCSET is set to YES.
-
1198 
-
1199 DOCSET_PUBLISHER_ID = org.doxygen.Publisher
-
1200 
-
1201 # The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher.
-
1202 # The default value is: Publisher.
-
1203 # This tag requires that the tag GENERATE_DOCSET is set to YES.
-
1204 
-
1205 DOCSET_PUBLISHER_NAME = Publisher
-
1206 
-
1207 # If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three
-
1208 # additional HTML index files: index.hhp, index.hhc, and index.hhk. The
-
1209 # index.hhp is a project file that can be read by Microsoft's HTML Help Workshop
-
1210 # (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on
-
1211 # Windows.
-
1212 #
-
1213 # The HTML Help Workshop contains a compiler that can convert all HTML output
-
1214 # generated by doxygen into a single compiled HTML file (.chm). Compiled HTML
-
1215 # files are now used as the Windows 98 help format, and will replace the old
-
1216 # Windows help format (.hlp) on all Windows platforms in the future. Compressed
-
1217 # HTML files also contain an index, a table of contents, and you can search for
-
1218 # words in the documentation. The HTML workshop also contains a viewer for
-
1219 # compressed HTML files.
-
1220 # The default value is: NO.
-
1221 # This tag requires that the tag GENERATE_HTML is set to YES.
-
1222 
-
1223 GENERATE_HTMLHELP = NO
-
1224 
-
1225 # The CHM_FILE tag can be used to specify the file name of the resulting .chm
-
1226 # file. You can add a path in front of the file if the result should not be
-
1227 # written to the html output directory.
-
1228 # This tag requires that the tag GENERATE_HTMLHELP is set to YES.
-
1229 
-
1230 CHM_FILE =
-
1231 
-
1232 # The HHC_LOCATION tag can be used to specify the location (absolute path
-
1233 # including file name) of the HTML help compiler ( hhc.exe). If non-empty
-
1234 # doxygen will try to run the HTML help compiler on the generated index.hhp.
-
1235 # The file has to be specified with full path.
-
1236 # This tag requires that the tag GENERATE_HTMLHELP is set to YES.
-
1237 
-
1238 HHC_LOCATION =
-
1239 
-
1240 # The GENERATE_CHI flag controls if a separate .chi index file is generated (
-
1241 # YES) or that it should be included in the master .chm file ( NO).
-
1242 # The default value is: NO.
-
1243 # This tag requires that the tag GENERATE_HTMLHELP is set to YES.
-
1244 
-
1245 GENERATE_CHI = NO
-
1246 
-
1247 # The CHM_INDEX_ENCODING is used to encode HtmlHelp index ( hhk), content ( hhc)
-
1248 # and project file content.
-
1249 # This tag requires that the tag GENERATE_HTMLHELP is set to YES.
-
1250 
-
1251 CHM_INDEX_ENCODING =
-
1252 
-
1253 # The BINARY_TOC flag controls whether a binary table of contents is generated (
-
1254 # YES) or a normal table of contents ( NO) in the .chm file.
-
1255 # The default value is: NO.
-
1256 # This tag requires that the tag GENERATE_HTMLHELP is set to YES.
-
1257 
-
1258 BINARY_TOC = NO
-
1259 
-
1260 # The TOC_EXPAND flag can be set to YES to add extra items for group members to
-
1261 # the table of contents of the HTML help documentation and to the tree view.
-
1262 # The default value is: NO.
-
1263 # This tag requires that the tag GENERATE_HTMLHELP is set to YES.
-
1264 
-
1265 TOC_EXPAND = NO
-
1266 
-
1267 # If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and
-
1268 # QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that
-
1269 # can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help
-
1270 # (.qch) of the generated HTML documentation.
-
1271 # The default value is: NO.
-
1272 # This tag requires that the tag GENERATE_HTML is set to YES.
-
1273 
-
1274 GENERATE_QHP = NO
-
1275 
-
1276 # If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify
-
1277 # the file name of the resulting .qch file. The path specified is relative to
-
1278 # the HTML output folder.
-
1279 # This tag requires that the tag GENERATE_QHP is set to YES.
-
1280 
-
1281 QCH_FILE =
-
1282 
-
1283 # The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help
-
1284 # Project output. For more information please see Qt Help Project / Namespace
-
1285 # (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace).
-
1286 # The default value is: org.doxygen.Project.
-
1287 # This tag requires that the tag GENERATE_QHP is set to YES.
-
1288 
-
1289 QHP_NAMESPACE = org.doxygen.Project
-
1290 
-
1291 # The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt
-
1292 # Help Project output. For more information please see Qt Help Project / Virtual
-
1293 # Folders (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual-
-
1294 # folders).
-
1295 # The default value is: doc.
-
1296 # This tag requires that the tag GENERATE_QHP is set to YES.
-
1297 
-
1298 QHP_VIRTUAL_FOLDER = doc
-
1299 
-
1300 # If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom
-
1301 # filter to add. For more information please see Qt Help Project / Custom
-
1302 # Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-
-
1303 # filters).
-
1304 # This tag requires that the tag GENERATE_QHP is set to YES.
-
1305 
-
1306 QHP_CUST_FILTER_NAME =
-
1307 
-
1308 # The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the
-
1309 # custom filter to add. For more information please see Qt Help Project / Custom
-
1310 # Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-
-
1311 # filters).
-
1312 # This tag requires that the tag GENERATE_QHP is set to YES.
-
1313 
-
1314 QHP_CUST_FILTER_ATTRS =
-
1315 
-
1316 # The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this
-
1317 # project's filter section matches. Qt Help Project / Filter Attributes (see:
-
1318 # http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes).
-
1319 # This tag requires that the tag GENERATE_QHP is set to YES.
-
1320 
-
1321 QHP_SECT_FILTER_ATTRS =
-
1322 
-
1323 # The QHG_LOCATION tag can be used to specify the location of Qt's
-
1324 # qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the
-
1325 # generated .qhp file.
-
1326 # This tag requires that the tag GENERATE_QHP is set to YES.
-
1327 
-
1328 QHG_LOCATION =
-
1329 
-
1330 # If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be
-
1331 # generated, together with the HTML files, they form an Eclipse help plugin. To
-
1332 # install this plugin and make it available under the help contents menu in
-
1333 # Eclipse, the contents of the directory containing the HTML and XML files needs
-
1334 # to be copied into the plugins directory of eclipse. The name of the directory
-
1335 # within the plugins directory should be the same as the ECLIPSE_DOC_ID value.
-
1336 # After copying Eclipse needs to be restarted before the help appears.
-
1337 # The default value is: NO.
-
1338 # This tag requires that the tag GENERATE_HTML is set to YES.
-
1339 
-
1340 GENERATE_ECLIPSEHELP = NO
-
1341 
-
1342 # A unique identifier for the Eclipse help plugin. When installing the plugin
-
1343 # the directory name containing the HTML and XML files should also have this
-
1344 # name. Each documentation set should have its own identifier.
-
1345 # The default value is: org.doxygen.Project.
-
1346 # This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES.
-
1347 
-
1348 ECLIPSE_DOC_ID = org.doxygen.Project
-
1349 
-
1350 # If you want full control over the layout of the generated HTML pages it might
-
1351 # be necessary to disable the index and replace it with your own. The
-
1352 # DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top
-
1353 # of each HTML page. A value of NO enables the index and the value YES disables
-
1354 # it. Since the tabs in the index contain the same information as the navigation
-
1355 # tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES.
-
1356 # The default value is: NO.
-
1357 # This tag requires that the tag GENERATE_HTML is set to YES.
-
1358 
-
1359 DISABLE_INDEX = NO
-
1360 
-
1361 # The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
-
1362 # structure should be generated to display hierarchical information. If the tag
-
1363 # value is set to YES, a side panel will be generated containing a tree-like
-
1364 # index structure (just like the one that is generated for HTML Help). For this
-
1365 # to work a browser that supports JavaScript, DHTML, CSS and frames is required
-
1366 # (i.e. any modern browser). Windows users are probably better off using the
-
1367 # HTML help feature. Via custom stylesheets (see HTML_EXTRA_STYLESHEET) one can
-
1368 # further fine-tune the look of the index. As an example, the default style
-
1369 # sheet generated by doxygen has an example that shows how to put an image at
-
1370 # the root of the tree instead of the PROJECT_NAME. Since the tree basically has
-
1371 # the same information as the tab index, you could consider setting
-
1372 # DISABLE_INDEX to YES when enabling this option.
-
1373 # The default value is: NO.
-
1374 # This tag requires that the tag GENERATE_HTML is set to YES.
-
1375 
-
1376 GENERATE_TREEVIEW = NO
-
1377 
-
1378 # The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that
-
1379 # doxygen will group on one line in the generated HTML documentation.
-
1380 #
-
1381 # Note that a value of 0 will completely suppress the enum values from appearing
-
1382 # in the overview section.
-
1383 # Minimum value: 0, maximum value: 20, default value: 4.
-
1384 # This tag requires that the tag GENERATE_HTML is set to YES.
-
1385 
-
1386 ENUM_VALUES_PER_LINE = 4
-
1387 
-
1388 # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used
-
1389 # to set the initial width (in pixels) of the frame in which the tree is shown.
-
1390 # Minimum value: 0, maximum value: 1500, default value: 250.
-
1391 # This tag requires that the tag GENERATE_HTML is set to YES.
-
1392 
-
1393 TREEVIEW_WIDTH = 250
-
1394 
-
1395 # When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open links to
-
1396 # external symbols imported via tag files in a separate window.
-
1397 # The default value is: NO.
-
1398 # This tag requires that the tag GENERATE_HTML is set to YES.
-
1399 
-
1400 EXT_LINKS_IN_WINDOW = NO
-
1401 
-
1402 # Use this tag to change the font size of LaTeX formulas included as images in
-
1403 # the HTML documentation. When you change the font size after a successful
-
1404 # doxygen run you need to manually remove any form_*.png images from the HTML
-
1405 # output directory to force them to be regenerated.
-
1406 # Minimum value: 8, maximum value: 50, default value: 10.
-
1407 # This tag requires that the tag GENERATE_HTML is set to YES.
-
1408 
-
1409 FORMULA_FONTSIZE = 10
-
1410 
-
1411 # Use the FORMULA_TRANPARENT tag to determine whether or not the images
-
1412 # generated for formulas are transparent PNGs. Transparent PNGs are not
-
1413 # supported properly for IE 6.0, but are supported on all modern browsers.
-
1414 #
-
1415 # Note that when changing this option you need to delete any form_*.png files in
-
1416 # the HTML output directory before the changes have effect.
-
1417 # The default value is: YES.
-
1418 # This tag requires that the tag GENERATE_HTML is set to YES.
-
1419 
-
1420 FORMULA_TRANSPARENT = YES
-
1421 
-
1422 # Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see
-
1423 # http://www.mathjax.org) which uses client side Javascript for the rendering
-
1424 # instead of using prerendered bitmaps. Use this if you do not have LaTeX
-
1425 # installed or if you want to formulas look prettier in the HTML output. When
-
1426 # enabled you may also need to install MathJax separately and configure the path
-
1427 # to it using the MATHJAX_RELPATH option.
-
1428 # The default value is: NO.
-
1429 # This tag requires that the tag GENERATE_HTML is set to YES.
-
1430 
-
1431 USE_MATHJAX = NO
-
1432 
-
1433 # When MathJax is enabled you can set the default output format to be used for
-
1434 # the MathJax output. See the MathJax site (see:
-
1435 # http://docs.mathjax.org/en/latest/output.html) for more details.
-
1436 # Possible values are: HTML-CSS (which is slower, but has the best
-
1437 # compatibility), NativeMML (i.e. MathML) and SVG.
-
1438 # The default value is: HTML-CSS.
-
1439 # This tag requires that the tag USE_MATHJAX is set to YES.
-
1440 
-
1441 MATHJAX_FORMAT = HTML-CSS
-
1442 
-
1443 # When MathJax is enabled you need to specify the location relative to the HTML
-
1444 # output directory using the MATHJAX_RELPATH option. The destination directory
-
1445 # should contain the MathJax.js script. For instance, if the mathjax directory
-
1446 # is located at the same level as the HTML output directory, then
-
1447 # MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax
-
1448 # Content Delivery Network so you can quickly see the result without installing
-
1449 # MathJax. However, it is strongly recommended to install a local copy of
-
1450 # MathJax from http://www.mathjax.org before deployment.
-
1451 # The default value is: http://cdn.mathjax.org/mathjax/latest.
-
1452 # This tag requires that the tag USE_MATHJAX is set to YES.
-
1453 
-
1454 MATHJAX_RELPATH = http://www.mathjax.org/mathjax
-
1455 
-
1456 # The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax
-
1457 # extension names that should be enabled during MathJax rendering. For example
-
1458 # MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols
-
1459 # This tag requires that the tag USE_MATHJAX is set to YES.
-
1460 
-
1461 MATHJAX_EXTENSIONS =
-
1462 
-
1463 # The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces
-
1464 # of code that will be used on startup of the MathJax code. See the MathJax site
-
1465 # (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an
-
1466 # example see the documentation.
-
1467 # This tag requires that the tag USE_MATHJAX is set to YES.
-
1468 
-
1469 MATHJAX_CODEFILE =
-
1470 
-
1471 # When the SEARCHENGINE tag is enabled doxygen will generate a search box for
-
1472 # the HTML output. The underlying search engine uses javascript and DHTML and
-
1473 # should work on any modern browser. Note that when using HTML help
-
1474 # (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET)
-
1475 # there is already a search function so this one should typically be disabled.
-
1476 # For large projects the javascript based search engine can be slow, then
-
1477 # enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to
-
1478 # search using the keyboard; to jump to the search box use <access key> + S
-
1479 # (what the <access key> is depends on the OS and browser, but it is typically
-
1480 # <CTRL>, <ALT>/<option>, or both). Inside the search box use the <cursor down
-
1481 # key> to jump into the search results window, the results can be navigated
-
1482 # using the <cursor keys>. Press <Enter> to select an item or <escape> to cancel
-
1483 # the search. The filter options can be selected when the cursor is inside the
-
1484 # search box by pressing <Shift>+<cursor down>. Also here use the <cursor keys>
-
1485 # to select a filter and <Enter> or <escape> to activate or cancel the filter
-
1486 # option.
-
1487 # The default value is: YES.
-
1488 # This tag requires that the tag GENERATE_HTML is set to YES.
-
1489 
-
1490 SEARCHENGINE = NO
-
1491 
-
1492 # When the SERVER_BASED_SEARCH tag is enabled the search engine will be
-
1493 # implemented using a web server instead of a web client using Javascript. There
-
1494 # are two flavours of web server based searching depending on the
-
1495 # EXTERNAL_SEARCH setting. When disabled, doxygen will generate a PHP script for
-
1496 # searching and an index file used by the script. When EXTERNAL_SEARCH is
-
1497 # enabled the indexing and searching needs to be provided by external tools. See
-
1498 # the section "External Indexing and Searching" for details.
-
1499 # The default value is: NO.
-
1500 # This tag requires that the tag SEARCHENGINE is set to YES.
-
1501 
-
1502 SERVER_BASED_SEARCH = NO
-
1503 
-
1504 # When EXTERNAL_SEARCH tag is enabled doxygen will no longer generate the PHP
-
1505 # script for searching. Instead the search results are written to an XML file
-
1506 # which needs to be processed by an external indexer. Doxygen will invoke an
-
1507 # external search engine pointed to by the SEARCHENGINE_URL option to obtain the
-
1508 # search results.
-
1509 #
-
1510 # Doxygen ships with an example indexer ( doxyindexer) and search engine
-
1511 # (doxysearch.cgi) which are based on the open source search engine library
-
1512 # Xapian (see: http://xapian.org/).
-
1513 #
-
1514 # See the section "External Indexing and Searching" for details.
-
1515 # The default value is: NO.
-
1516 # This tag requires that the tag SEARCHENGINE is set to YES.
-
1517 
-
1518 EXTERNAL_SEARCH = NO
-
1519 
-
1520 # The SEARCHENGINE_URL should point to a search engine hosted by a web server
-
1521 # which will return the search results when EXTERNAL_SEARCH is enabled.
-
1522 #
-
1523 # Doxygen ships with an example indexer ( doxyindexer) and search engine
-
1524 # (doxysearch.cgi) which are based on the open source search engine library
-
1525 # Xapian (see: http://xapian.org/). See the section "External Indexing and
-
1526 # Searching" for details.
-
1527 # This tag requires that the tag SEARCHENGINE is set to YES.
-
1528 
-
1529 SEARCHENGINE_URL =
-
1530 
-
1531 # When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the unindexed
-
1532 # search data is written to a file for indexing by an external tool. With the
-
1533 # SEARCHDATA_FILE tag the name of this file can be specified.
-
1534 # The default file is: searchdata.xml.
-
1535 # This tag requires that the tag SEARCHENGINE is set to YES.
-
1536 
-
1537 SEARCHDATA_FILE = searchdata.xml
-
1538 
-
1539 # When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the
-
1540 # EXTERNAL_SEARCH_ID tag can be used as an identifier for the project. This is
-
1541 # useful in combination with EXTRA_SEARCH_MAPPINGS to search through multiple
-
1542 # projects and redirect the results back to the right project.
-
1543 # This tag requires that the tag SEARCHENGINE is set to YES.
-
1544 
-
1545 EXTERNAL_SEARCH_ID =
-
1546 
-
1547 # The EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through doxygen
-
1548 # projects other than the one defined by this configuration file, but that are
-
1549 # all added to the same external search index. Each project needs to have a
-
1550 # unique id set via EXTERNAL_SEARCH_ID. The search mapping then maps the id of
-
1551 # to a relative location where the documentation can be found. The format is:
-
1552 # EXTRA_SEARCH_MAPPINGS = tagname1=loc1 tagname2=loc2 ...
-
1553 # This tag requires that the tag SEARCHENGINE is set to YES.
-
1554 
-
1555 EXTRA_SEARCH_MAPPINGS =
-
1556 
-
1557 #---------------------------------------------------------------------------
-
1558 # Configuration options related to the LaTeX output
-
1559 #---------------------------------------------------------------------------
-
1560 
-
1561 # If the GENERATE_LATEX tag is set to YES doxygen will generate LaTeX output.
-
1562 # The default value is: YES.
-
1563 
-
1564 GENERATE_LATEX = NO
-
1565 
-
1566 # The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. If a
-
1567 # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
-
1568 # it.
-
1569 # The default directory is: latex.
-
1570 # This tag requires that the tag GENERATE_LATEX is set to YES.
-
1571 
-
1572 LATEX_OUTPUT = latex
-
1573 
-
1574 # The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
-
1575 # invoked.
-
1576 #
-
1577 # Note that when enabling USE_PDFLATEX this option is only used for generating
-
1578 # bitmaps for formulas in the HTML output, but not in the Makefile that is
-
1579 # written to the output directory.
-
1580 # The default file is: latex.
-
1581 # This tag requires that the tag GENERATE_LATEX is set to YES.
-
1582 
-
1583 LATEX_CMD_NAME = latex
-
1584 
-
1585 # The MAKEINDEX_CMD_NAME tag can be used to specify the command name to generate
-
1586 # index for LaTeX.
-
1587 # The default file is: makeindex.
-
1588 # This tag requires that the tag GENERATE_LATEX is set to YES.
-
1589 
-
1590 MAKEINDEX_CMD_NAME = makeindex
-
1591 
-
1592 # If the COMPACT_LATEX tag is set to YES doxygen generates more compact LaTeX
-
1593 # documents. This may be useful for small projects and may help to save some
-
1594 # trees in general.
-
1595 # The default value is: NO.
-
1596 # This tag requires that the tag GENERATE_LATEX is set to YES.
-
1597 
-
1598 COMPACT_LATEX = NO
-
1599 
-
1600 # The PAPER_TYPE tag can be used to set the paper type that is used by the
-
1601 # printer.
-
1602 # Possible values are: a4 (210 x 297 mm), letter (8.5 x 11 inches), legal (8.5 x
-
1603 # 14 inches) and executive (7.25 x 10.5 inches).
-
1604 # The default value is: a4.
-
1605 # This tag requires that the tag GENERATE_LATEX is set to YES.
-
1606 
-
1607 PAPER_TYPE = a4wide
-
1608 
-
1609 # The EXTRA_PACKAGES tag can be used to specify one or more LaTeX package names
-
1610 # that should be included in the LaTeX output. To get the times font for
-
1611 # instance you can specify
-
1612 # EXTRA_PACKAGES=times
-
1613 # If left blank no extra packages will be included.
-
1614 # This tag requires that the tag GENERATE_LATEX is set to YES.
-
1615 
-
1616 EXTRA_PACKAGES =
-
1617 
-
1618 # The LATEX_HEADER tag can be used to specify a personal LaTeX header for the
-
1619 # generated LaTeX document. The header should contain everything until the first
-
1620 # chapter. If it is left blank doxygen will generate a standard header. See
-
1621 # section "Doxygen usage" for information on how to let doxygen write the
-
1622 # default header to a separate file.
-
1623 #
-
1624 # Note: Only use a user-defined header if you know what you are doing! The
-
1625 # following commands have a special meaning inside the header: $title,
-
1626 # $datetime, $date, $doxygenversion, $projectname, $projectnumber. Doxygen will
-
1627 # replace them by respectively the title of the page, the current date and time,
-
1628 # only the current date, the version number of doxygen, the project name (see
-
1629 # PROJECT_NAME), or the project number (see PROJECT_NUMBER).
-
1630 # This tag requires that the tag GENERATE_LATEX is set to YES.
-
1631 
-
1632 LATEX_HEADER =
-
1633 
-
1634 # The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for the
-
1635 # generated LaTeX document. The footer should contain everything after the last
-
1636 # chapter. If it is left blank doxygen will generate a standard footer.
-
1637 #
-
1638 # Note: Only use a user-defined footer if you know what you are doing!
-
1639 # This tag requires that the tag GENERATE_LATEX is set to YES.
-
1640 
-
1641 LATEX_FOOTER =
-
1642 
-
1643 # The LATEX_EXTRA_FILES tag can be used to specify one or more extra images or
-
1644 # other source files which should be copied to the LATEX_OUTPUT output
-
1645 # directory. Note that the files will be copied as-is; there are no commands or
-
1646 # markers available.
-
1647 # This tag requires that the tag GENERATE_LATEX is set to YES.
-
1648 
-
1649 LATEX_EXTRA_FILES =
-
1650 
-
1651 # If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated is
-
1652 # prepared for conversion to PDF (using ps2pdf or pdflatex). The PDF file will
-
1653 # contain links (just like the HTML output) instead of page references. This
-
1654 # makes the output suitable for online browsing using a PDF viewer.
-
1655 # The default value is: YES.
-
1656 # This tag requires that the tag GENERATE_LATEX is set to YES.
-
1657 
-
1658 PDF_HYPERLINKS = NO
-
1659 
-
1660 # If the LATEX_PDFLATEX tag is set to YES, doxygen will use pdflatex to generate
-
1661 # the PDF file directly from the LaTeX files. Set this option to YES to get a
-
1662 # higher quality PDF documentation.
-
1663 # The default value is: YES.
-
1664 # This tag requires that the tag GENERATE_LATEX is set to YES.
-
1665 
-
1666 USE_PDFLATEX = YES
-
1667 
-
1668 # If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \batchmode
-
1669 # command to the generated LaTeX files. This will instruct LaTeX to keep running
-
1670 # if errors occur, instead of asking the user for help. This option is also used
-
1671 # when generating formulas in HTML.
-
1672 # The default value is: NO.
-
1673 # This tag requires that the tag GENERATE_LATEX is set to YES.
-
1674 
-
1675 LATEX_BATCHMODE = NO
-
1676 
-
1677 # If the LATEX_HIDE_INDICES tag is set to YES then doxygen will not include the
-
1678 # index chapters (such as File Index, Compound Index, etc.) in the output.
-
1679 # The default value is: NO.
-
1680 # This tag requires that the tag GENERATE_LATEX is set to YES.
-
1681 
-
1682 LATEX_HIDE_INDICES = NO
-
1683 
-
1684 # If the LATEX_SOURCE_CODE tag is set to YES then doxygen will include source
-
1685 # code with syntax highlighting in the LaTeX output.
-
1686 #
-
1687 # Note that which sources are shown also depends on other settings such as
-
1688 # SOURCE_BROWSER.
-
1689 # The default value is: NO.
-
1690 # This tag requires that the tag GENERATE_LATEX is set to YES.
-
1691 
-
1692 LATEX_SOURCE_CODE = NO
-
1693 
-
1694 # The LATEX_BIB_STYLE tag can be used to specify the style to use for the
-
1695 # bibliography, e.g. plainnat, or ieeetr. See
-
1696 # http://en.wikipedia.org/wiki/BibTeX and \cite for more info.
-
1697 # The default value is: plain.
-
1698 # This tag requires that the tag GENERATE_LATEX is set to YES.
-
1699 
-
1700 LATEX_BIB_STYLE = plain
-
1701 
-
1702 #---------------------------------------------------------------------------
-
1703 # Configuration options related to the RTF output
-
1704 #---------------------------------------------------------------------------
-
1705 
-
1706 # If the GENERATE_RTF tag is set to YES doxygen will generate RTF output. The
-
1707 # RTF output is optimized for Word 97 and may not look too pretty with other RTF
-
1708 # readers/editors.
-
1709 # The default value is: NO.
-
1710 
-
1711 GENERATE_RTF = NO
-
1712 
-
1713 # The RTF_OUTPUT tag is used to specify where the RTF docs will be put. If a
-
1714 # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
-
1715 # it.
-
1716 # The default directory is: rtf.
-
1717 # This tag requires that the tag GENERATE_RTF is set to YES.
-
1718 
-
1719 RTF_OUTPUT = glm.rtf
-
1720 
-
1721 # If the COMPACT_RTF tag is set to YES doxygen generates more compact RTF
-
1722 # documents. This may be useful for small projects and may help to save some
-
1723 # trees in general.
-
1724 # The default value is: NO.
-
1725 # This tag requires that the tag GENERATE_RTF is set to YES.
-
1726 
-
1727 COMPACT_RTF = NO
-
1728 
-
1729 # If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated will
-
1730 # contain hyperlink fields. The RTF file will contain links (just like the HTML
-
1731 # output) instead of page references. This makes the output suitable for online
-
1732 # browsing using Word or some other Word compatible readers that support those
-
1733 # fields.
-
1734 #
-
1735 # Note: WordPad (write) and others do not support links.
-
1736 # The default value is: NO.
-
1737 # This tag requires that the tag GENERATE_RTF is set to YES.
-
1738 
-
1739 RTF_HYPERLINKS = YES
-
1740 
-
1741 # Load stylesheet definitions from file. Syntax is similar to doxygen's config
-
1742 # file, i.e. a series of assignments. You only have to provide replacements,
-
1743 # missing definitions are set to their default value.
-
1744 #
-
1745 # See also section "Doxygen usage" for information on how to generate the
-
1746 # default style sheet that doxygen normally uses.
-
1747 # This tag requires that the tag GENERATE_RTF is set to YES.
-
1748 
-
1749 RTF_STYLESHEET_FILE =
-
1750 
-
1751 # Set optional variables used in the generation of an RTF document. Syntax is
-
1752 # similar to doxygen's config file. A template extensions file can be generated
-
1753 # using doxygen -e rtf extensionFile.
-
1754 # This tag requires that the tag GENERATE_RTF is set to YES.
-
1755 
-
1756 RTF_EXTENSIONS_FILE =
-
1757 
-
1758 #---------------------------------------------------------------------------
-
1759 # Configuration options related to the man page output
-
1760 #---------------------------------------------------------------------------
-
1761 
-
1762 # If the GENERATE_MAN tag is set to YES doxygen will generate man pages for
-
1763 # classes and files.
-
1764 # The default value is: NO.
-
1765 
-
1766 GENERATE_MAN = NO
-
1767 
-
1768 # The MAN_OUTPUT tag is used to specify where the man pages will be put. If a
-
1769 # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
-
1770 # it. A directory man3 will be created inside the directory specified by
-
1771 # MAN_OUTPUT.
-
1772 # The default directory is: man.
-
1773 # This tag requires that the tag GENERATE_MAN is set to YES.
-
1774 
-
1775 MAN_OUTPUT = man
-
1776 
-
1777 # The MAN_EXTENSION tag determines the extension that is added to the generated
-
1778 # man pages. In case the manual section does not start with a number, the number
-
1779 # 3 is prepended. The dot (.) at the beginning of the MAN_EXTENSION tag is
-
1780 # optional.
-
1781 # The default value is: .3.
-
1782 # This tag requires that the tag GENERATE_MAN is set to YES.
-
1783 
-
1784 MAN_EXTENSION = .3
-
1785 
-
1786 # If the MAN_LINKS tag is set to YES and doxygen generates man output, then it
-
1787 # will generate one additional man file for each entity documented in the real
-
1788 # man page(s). These additional files only source the real man page, but without
-
1789 # them the man command would be unable to find the correct page.
-
1790 # The default value is: NO.
-
1791 # This tag requires that the tag GENERATE_MAN is set to YES.
-
1792 
-
1793 MAN_LINKS = NO
-
1794 
-
1795 #---------------------------------------------------------------------------
-
1796 # Configuration options related to the XML output
-
1797 #---------------------------------------------------------------------------
-
1798 
-
1799 # If the GENERATE_XML tag is set to YES doxygen will generate an XML file that
-
1800 # captures the structure of the code including all documentation.
-
1801 # The default value is: NO.
-
1802 
-
1803 GENERATE_XML = NO
-
1804 
-
1805 # The XML_OUTPUT tag is used to specify where the XML pages will be put. If a
-
1806 # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
-
1807 # it.
-
1808 # The default directory is: xml.
-
1809 # This tag requires that the tag GENERATE_XML is set to YES.
-
1810 
-
1811 XML_OUTPUT = xml
-
1812 
-
1813 # The XML_SCHEMA tag can be used to specify a XML schema, which can be used by a
-
1814 # validating XML parser to check the syntax of the XML files.
-
1815 # This tag requires that the tag GENERATE_XML is set to YES.
-
1816 
-
1817 XML_SCHEMA =
-
1818 
-
1819 # The XML_DTD tag can be used to specify a XML DTD, which can be used by a
-
1820 # validating XML parser to check the syntax of the XML files.
-
1821 # This tag requires that the tag GENERATE_XML is set to YES.
-
1822 
-
1823 XML_DTD =
-
1824 
-
1825 # If the XML_PROGRAMLISTING tag is set to YES doxygen will dump the program
-
1826 # listings (including syntax highlighting and cross-referencing information) to
-
1827 # the XML output. Note that enabling this will significantly increase the size
-
1828 # of the XML output.
-
1829 # The default value is: YES.
-
1830 # This tag requires that the tag GENERATE_XML is set to YES.
-
1831 
-
1832 XML_PROGRAMLISTING = YES
-
1833 
-
1834 #---------------------------------------------------------------------------
-
1835 # Configuration options related to the DOCBOOK output
-
1836 #---------------------------------------------------------------------------
-
1837 
-
1838 # If the GENERATE_DOCBOOK tag is set to YES doxygen will generate Docbook files
-
1839 # that can be used to generate PDF.
-
1840 # The default value is: NO.
-
1841 
-
1842 GENERATE_DOCBOOK = NO
-
1843 
-
1844 # The DOCBOOK_OUTPUT tag is used to specify where the Docbook pages will be put.
-
1845 # If a relative path is entered the value of OUTPUT_DIRECTORY will be put in
-
1846 # front of it.
-
1847 # The default directory is: docbook.
-
1848 # This tag requires that the tag GENERATE_DOCBOOK is set to YES.
-
1849 
-
1850 DOCBOOK_OUTPUT = docbook
-
1851 
-
1852 #---------------------------------------------------------------------------
-
1853 # Configuration options for the AutoGen Definitions output
-
1854 #---------------------------------------------------------------------------
-
1855 
-
1856 # If the GENERATE_AUTOGEN_DEF tag is set to YES doxygen will generate an AutoGen
-
1857 # Definitions (see http://autogen.sf.net) file that captures the structure of
-
1858 # the code including all documentation. Note that this feature is still
-
1859 # experimental and incomplete at the moment.
-
1860 # The default value is: NO.
-
1861 
-
1862 GENERATE_AUTOGEN_DEF = NO
-
1863 
-
1864 #---------------------------------------------------------------------------
-
1865 # Configuration options related to the Perl module output
-
1866 #---------------------------------------------------------------------------
-
1867 
-
1868 # If the GENERATE_PERLMOD tag is set to YES doxygen will generate a Perl module
-
1869 # file that captures the structure of the code including all documentation.
-
1870 #
-
1871 # Note that this feature is still experimental and incomplete at the moment.
-
1872 # The default value is: NO.
-
1873 
-
1874 GENERATE_PERLMOD = NO
-
1875 
-
1876 # If the PERLMOD_LATEX tag is set to YES doxygen will generate the necessary
-
1877 # Makefile rules, Perl scripts and LaTeX code to be able to generate PDF and DVI
-
1878 # output from the Perl module output.
-
1879 # The default value is: NO.
-
1880 # This tag requires that the tag GENERATE_PERLMOD is set to YES.
-
1881 
-
1882 PERLMOD_LATEX = NO
-
1883 
-
1884 # If the PERLMOD_PRETTY tag is set to YES the Perl module output will be nicely
-
1885 # formatted so it can be parsed by a human reader. This is useful if you want to
-
1886 # understand what is going on. On the other hand, if this tag is set to NO the
-
1887 # size of the Perl module output will be much smaller and Perl will parse it
-
1888 # just the same.
-
1889 # The default value is: YES.
-
1890 # This tag requires that the tag GENERATE_PERLMOD is set to YES.
-
1891 
-
1892 PERLMOD_PRETTY = YES
-
1893 
-
1894 # The names of the make variables in the generated doxyrules.make file are
-
1895 # prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. This is useful
-
1896 # so different doxyrules.make files included by the same Makefile don't
-
1897 # overwrite each other's variables.
-
1898 # This tag requires that the tag GENERATE_PERLMOD is set to YES.
-
1899 
-
1900 PERLMOD_MAKEVAR_PREFIX =
-
1901 
-
1902 #---------------------------------------------------------------------------
-
1903 # Configuration options related to the preprocessor
-
1904 #---------------------------------------------------------------------------
-
1905 
-
1906 # If the ENABLE_PREPROCESSING tag is set to YES doxygen will evaluate all
-
1907 # C-preprocessor directives found in the sources and include files.
-
1908 # The default value is: YES.
-
1909 
-
1910 ENABLE_PREPROCESSING = YES
-
1911 
-
1912 # If the MACRO_EXPANSION tag is set to YES doxygen will expand all macro names
-
1913 # in the source code. If set to NO only conditional compilation will be
-
1914 # performed. Macro expansion can be done in a controlled way by setting
-
1915 # EXPAND_ONLY_PREDEF to YES.
-
1916 # The default value is: NO.
-
1917 # This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
-
1918 
-
1919 MACRO_EXPANSION = NO
-
1920 
-
1921 # If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES then
-
1922 # the macro expansion is limited to the macros specified with the PREDEFINED and
-
1923 # EXPAND_AS_DEFINED tags.
-
1924 # The default value is: NO.
-
1925 # This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
-
1926 
-
1927 EXPAND_ONLY_PREDEF = NO
-
1928 
-
1929 # If the SEARCH_INCLUDES tag is set to YES the includes files in the
-
1930 # INCLUDE_PATH will be searched if a #include is found.
-
1931 # The default value is: YES.
-
1932 # This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
-
1933 
-
1934 SEARCH_INCLUDES = YES
-
1935 
-
1936 # The INCLUDE_PATH tag can be used to specify one or more directories that
-
1937 # contain include files that are not input files but should be processed by the
-
1938 # preprocessor.
-
1939 # This tag requires that the tag SEARCH_INCLUDES is set to YES.
-
1940 
-
1941 INCLUDE_PATH =
-
1942 
-
1943 # You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
-
1944 # patterns (like *.h and *.hpp) to filter out the header-files in the
-
1945 # directories. If left blank, the patterns specified with FILE_PATTERNS will be
-
1946 # used.
-
1947 # This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
-
1948 
-
1949 INCLUDE_FILE_PATTERNS =
-
1950 
-
1951 # The PREDEFINED tag can be used to specify one or more macro names that are
-
1952 # defined before the preprocessor is started (similar to the -D option of e.g.
-
1953 # gcc). The argument of the tag is a list of macros of the form: name or
-
1954 # name=definition (no spaces). If the definition and the "=" are omitted, "=1"
-
1955 # is assumed. To prevent a macro definition from being undefined via #undef or
-
1956 # recursively expanded use the := operator instead of the = operator.
-
1957 # This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
-
1958 
-
1959 PREDEFINED =
-
1960 
-
1961 # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this
-
1962 # tag can be used to specify a list of macro names that should be expanded. The
-
1963 # macro definition that is found in the sources will be used. Use the PREDEFINED
-
1964 # tag if you want to use a different macro definition that overrules the
-
1965 # definition found in the source code.
-
1966 # This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
-
1967 
-
1968 EXPAND_AS_DEFINED =
-
1969 
-
1970 # If the SKIP_FUNCTION_MACROS tag is set to YES then doxygen's preprocessor will
-
1971 # remove all refrences to function-like macros that are alone on a line, have an
-
1972 # all uppercase name, and do not end with a semicolon. Such function macros are
-
1973 # typically used for boiler-plate code, and will confuse the parser if not
-
1974 # removed.
-
1975 # The default value is: YES.
-
1976 # This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
-
1977 
-
1978 SKIP_FUNCTION_MACROS = YES
-
1979 
-
1980 #---------------------------------------------------------------------------
-
1981 # Configuration options related to external references
-
1982 #---------------------------------------------------------------------------
-
1983 
-
1984 # The TAGFILES tag can be used to specify one or more tag files. For each tag
-
1985 # file the location of the external documentation should be added. The format of
-
1986 # a tag file without this location is as follows:
-
1987 # TAGFILES = file1 file2 ...
-
1988 # Adding location for the tag files is done as follows:
-
1989 # TAGFILES = file1=loc1 "file2 = loc2" ...
-
1990 # where loc1 and loc2 can be relative or absolute paths or URLs. See the
-
1991 # section "Linking to external documentation" for more information about the use
-
1992 # of tag files.
-
1993 # Note: Each tag file must have an unique name (where the name does NOT include
-
1994 # the path). If a tag file is not located in the directory in which doxygen is
-
1995 # run, you must also specify the path to the tagfile here.
-
1996 
-
1997 TAGFILES =
-
1998 
-
1999 # When a file name is specified after GENERATE_TAGFILE, doxygen will create a
-
2000 # tag file that is based on the input files it reads. See section "Linking to
-
2001 # external documentation" for more information about the usage of tag files.
-
2002 
-
2003 GENERATE_TAGFILE =
-
2004 
-
2005 # If the ALLEXTERNALS tag is set to YES all external class will be listed in the
-
2006 # class index. If set to NO only the inherited external classes will be listed.
-
2007 # The default value is: NO.
-
2008 
-
2009 ALLEXTERNALS = NO
-
2010 
-
2011 # If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed in
-
2012 # the modules index. If set to NO, only the current project's groups will be
-
2013 # listed.
-
2014 # The default value is: YES.
-
2015 
-
2016 EXTERNAL_GROUPS = YES
-
2017 
-
2018 # If the EXTERNAL_PAGES tag is set to YES all external pages will be listed in
-
2019 # the related pages index. If set to NO, only the current project's pages will
-
2020 # be listed.
-
2021 # The default value is: YES.
-
2022 
-
2023 EXTERNAL_PAGES = YES
-
2024 
-
2025 # The PERL_PATH should be the absolute path and name of the perl script
-
2026 # interpreter (i.e. the result of 'which perl').
-
2027 # The default file (with absolute path) is: /usr/bin/perl.
-
2028 
-
2029 PERL_PATH = /usr/bin/perl
-
2030 
-
2031 #---------------------------------------------------------------------------
-
2032 # Configuration options related to the dot tool
-
2033 #---------------------------------------------------------------------------
-
2034 
-
2035 # If the CLASS_DIAGRAMS tag is set to YES doxygen will generate a class diagram
-
2036 # (in HTML and LaTeX) for classes with base or super classes. Setting the tag to
-
2037 # NO turns the diagrams off. Note that this option also works with HAVE_DOT
-
2038 # disabled, but it is recommended to install and use dot, since it yields more
-
2039 # powerful graphs.
-
2040 # The default value is: YES.
-
2041 
-
2042 CLASS_DIAGRAMS = YES
-
2043 
-
2044 # You can define message sequence charts within doxygen comments using the \msc
-
2045 # command. Doxygen will then run the mscgen tool (see:
-
2046 # http://www.mcternan.me.uk/mscgen/)) to produce the chart and insert it in the
-
2047 # documentation. The MSCGEN_PATH tag allows you to specify the directory where
-
2048 # the mscgen tool resides. If left empty the tool is assumed to be found in the
-
2049 # default search path.
-
2050 
-
2051 MSCGEN_PATH =
-
2052 
-
2053 # If set to YES, the inheritance and collaboration graphs will hide inheritance
-
2054 # and usage relations if the target is undocumented or is not a class.
-
2055 # The default value is: YES.
-
2056 
-
2057 HIDE_UNDOC_RELATIONS = YES
-
2058 
-
2059 # If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
-
2060 # available from the path. This tool is part of Graphviz (see:
-
2061 # http://www.graphviz.org/), a graph visualization toolkit from AT&T and Lucent
-
2062 # Bell Labs. The other options in this section have no effect if this option is
-
2063 # set to NO
-
2064 # The default value is: NO.
-
2065 
-
2066 HAVE_DOT = NO
-
2067 
-
2068 # The DOT_NUM_THREADS specifies the number of dot invocations doxygen is allowed
-
2069 # to run in parallel. When set to 0 doxygen will base this on the number of
-
2070 # processors available in the system. You can set it explicitly to a value
-
2071 # larger than 0 to get control over the balance between CPU load and processing
-
2072 # speed.
-
2073 # Minimum value: 0, maximum value: 32, default value: 0.
-
2074 # This tag requires that the tag HAVE_DOT is set to YES.
-
2075 
-
2076 DOT_NUM_THREADS = 0
-
2077 
-
2078 # When you want a differently looking font n the dot files that doxygen
-
2079 # generates you can specify the font name using DOT_FONTNAME. You need to make
-
2080 # sure dot is able to find the font, which can be done by putting it in a
-
2081 # standard location or by setting the DOTFONTPATH environment variable or by
-
2082 # setting DOT_FONTPATH to the directory containing the font.
-
2083 # The default value is: Helvetica.
-
2084 # This tag requires that the tag HAVE_DOT is set to YES.
-
2085 
-
2086 DOT_FONTNAME = FreeSans
-
2087 
-
2088 # The DOT_FONTSIZE tag can be used to set the size (in points) of the font of
-
2089 # dot graphs.
-
2090 # Minimum value: 4, maximum value: 24, default value: 10.
-
2091 # This tag requires that the tag HAVE_DOT is set to YES.
-
2092 
-
2093 DOT_FONTSIZE = 10
-
2094 
-
2095 # By default doxygen will tell dot to use the default font as specified with
-
2096 # DOT_FONTNAME. If you specify a different font using DOT_FONTNAME you can set
-
2097 # the path where dot can find it using this tag.
-
2098 # This tag requires that the tag HAVE_DOT is set to YES.
-
2099 
-
2100 DOT_FONTPATH =
-
2101 
-
2102 # If the CLASS_GRAPH tag is set to YES then doxygen will generate a graph for
-
2103 # each documented class showing the direct and indirect inheritance relations.
-
2104 # Setting this tag to YES will force the CLASS_DIAGRAMS tag to NO.
-
2105 # The default value is: YES.
-
2106 # This tag requires that the tag HAVE_DOT is set to YES.
-
2107 
-
2108 CLASS_GRAPH = YES
-
2109 
-
2110 # If the COLLABORATION_GRAPH tag is set to YES then doxygen will generate a
-
2111 # graph for each documented class showing the direct and indirect implementation
-
2112 # dependencies (inheritance, containment, and class references variables) of the
-
2113 # class with other documented classes.
-
2114 # The default value is: YES.
-
2115 # This tag requires that the tag HAVE_DOT is set to YES.
-
2116 
-
2117 COLLABORATION_GRAPH = YES
-
2118 
-
2119 # If the GROUP_GRAPHS tag is set to YES then doxygen will generate a graph for
-
2120 # groups, showing the direct groups dependencies.
-
2121 # The default value is: YES.
-
2122 # This tag requires that the tag HAVE_DOT is set to YES.
-
2123 
-
2124 GROUP_GRAPHS = YES
-
2125 
-
2126 # If the UML_LOOK tag is set to YES doxygen will generate inheritance and
-
2127 # collaboration diagrams in a style similar to the OMG's Unified Modeling
-
2128 # Language.
-
2129 # The default value is: NO.
-
2130 # This tag requires that the tag HAVE_DOT is set to YES.
-
2131 
-
2132 UML_LOOK = NO
-
2133 
-
2134 # If the UML_LOOK tag is enabled, the fields and methods are shown inside the
-
2135 # class node. If there are many fields or methods and many nodes the graph may
-
2136 # become too big to be useful. The UML_LIMIT_NUM_FIELDS threshold limits the
-
2137 # number of items for each type to make the size more manageable. Set this to 0
-
2138 # for no limit. Note that the threshold may be exceeded by 50% before the limit
-
2139 # is enforced. So when you set the threshold to 10, up to 15 fields may appear,
-
2140 # but if the number exceeds 15, the total amount of fields shown is limited to
-
2141 # 10.
-
2142 # Minimum value: 0, maximum value: 100, default value: 10.
-
2143 # This tag requires that the tag HAVE_DOT is set to YES.
-
2144 
-
2145 UML_LIMIT_NUM_FIELDS = 10
-
2146 
-
2147 # If the TEMPLATE_RELATIONS tag is set to YES then the inheritance and
-
2148 # collaboration graphs will show the relations between templates and their
-
2149 # instances.
-
2150 # The default value is: NO.
-
2151 # This tag requires that the tag HAVE_DOT is set to YES.
-
2152 
-
2153 TEMPLATE_RELATIONS = NO
-
2154 
-
2155 # If the INCLUDE_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are set to
-
2156 # YES then doxygen will generate a graph for each documented file showing the
-
2157 # direct and indirect include dependencies of the file with other documented
-
2158 # files.
-
2159 # The default value is: YES.
-
2160 # This tag requires that the tag HAVE_DOT is set to YES.
-
2161 
-
2162 INCLUDE_GRAPH = YES
-
2163 
-
2164 # If the INCLUDED_BY_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are
-
2165 # set to YES then doxygen will generate a graph for each documented file showing
-
2166 # the direct and indirect include dependencies of the file with other documented
-
2167 # files.
-
2168 # The default value is: YES.
-
2169 # This tag requires that the tag HAVE_DOT is set to YES.
-
2170 
-
2171 INCLUDED_BY_GRAPH = YES
-
2172 
-
2173 # If the CALL_GRAPH tag is set to YES then doxygen will generate a call
-
2174 # dependency graph for every global function or class method.
-
2175 #
-
2176 # Note that enabling this option will significantly increase the time of a run.
-
2177 # So in most cases it will be better to enable call graphs for selected
-
2178 # functions only using the \callgraph command.
-
2179 # The default value is: NO.
-
2180 # This tag requires that the tag HAVE_DOT is set to YES.
-
2181 
-
2182 CALL_GRAPH = YES
-
2183 
-
2184 # If the CALLER_GRAPH tag is set to YES then doxygen will generate a caller
-
2185 # dependency graph for every global function or class method.
-
2186 #
-
2187 # Note that enabling this option will significantly increase the time of a run.
-
2188 # So in most cases it will be better to enable caller graphs for selected
-
2189 # functions only using the \callergraph command.
-
2190 # The default value is: NO.
-
2191 # This tag requires that the tag HAVE_DOT is set to YES.
-
2192 
-
2193 CALLER_GRAPH = YES
-
2194 
-
2195 # If the GRAPHICAL_HIERARCHY tag is set to YES then doxygen will graphical
-
2196 # hierarchy of all classes instead of a textual one.
-
2197 # The default value is: YES.
-
2198 # This tag requires that the tag HAVE_DOT is set to YES.
-
2199 
-
2200 GRAPHICAL_HIERARCHY = YES
-
2201 
-
2202 # If the DIRECTORY_GRAPH tag is set to YES then doxygen will show the
-
2203 # dependencies a directory has on other directories in a graphical way. The
-
2204 # dependency relations are determined by the #include relations between the
-
2205 # files in the directories.
-
2206 # The default value is: YES.
-
2207 # This tag requires that the tag HAVE_DOT is set to YES.
-
2208 
-
2209 DIRECTORY_GRAPH = YES
-
2210 
-
2211 # The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
-
2212 # generated by dot.
-
2213 # Note: If you choose svg you need to set HTML_FILE_EXTENSION to xhtml in order
-
2214 # to make the SVG files visible in IE 9+ (other browsers do not have this
-
2215 # requirement).
-
2216 # Possible values are: png, jpg, gif and svg.
-
2217 # The default value is: png.
-
2218 # This tag requires that the tag HAVE_DOT is set to YES.
-
2219 
-
2220 DOT_IMAGE_FORMAT = png
-
2221 
-
2222 # If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to
-
2223 # enable generation of interactive SVG images that allow zooming and panning.
-
2224 #
-
2225 # Note that this requires a modern browser other than Internet Explorer. Tested
-
2226 # and working are Firefox, Chrome, Safari, and Opera.
-
2227 # Note: For IE 9+ you need to set HTML_FILE_EXTENSION to xhtml in order to make
-
2228 # the SVG files visible. Older versions of IE do not have SVG support.
-
2229 # The default value is: NO.
-
2230 # This tag requires that the tag HAVE_DOT is set to YES.
-
2231 
-
2232 INTERACTIVE_SVG = NO
-
2233 
-
2234 # The DOT_PATH tag can be used to specify the path where the dot tool can be
-
2235 # found. If left blank, it is assumed the dot tool can be found in the path.
-
2236 # This tag requires that the tag HAVE_DOT is set to YES.
-
2237 
-
2238 DOT_PATH =
-
2239 
-
2240 # The DOTFILE_DIRS tag can be used to specify one or more directories that
-
2241 # contain dot files that are included in the documentation (see the \dotfile
-
2242 # command).
-
2243 # This tag requires that the tag HAVE_DOT is set to YES.
-
2244 
-
2245 DOTFILE_DIRS =
-
2246 
-
2247 # The MSCFILE_DIRS tag can be used to specify one or more directories that
-
2248 # contain msc files that are included in the documentation (see the \mscfile
-
2249 # command).
-
2250 
-
2251 MSCFILE_DIRS =
-
2252 
-
2253 # The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of nodes
-
2254 # that will be shown in the graph. If the number of nodes in a graph becomes
-
2255 # larger than this value, doxygen will truncate the graph, which is visualized
-
2256 # by representing a node as a red box. Note that doxygen if the number of direct
-
2257 # children of the root node in a graph is already larger than
-
2258 # DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note that
-
2259 # the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
-
2260 # Minimum value: 0, maximum value: 10000, default value: 50.
-
2261 # This tag requires that the tag HAVE_DOT is set to YES.
-
2262 
-
2263 DOT_GRAPH_MAX_NODES = 50
-
2264 
-
2265 # The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the graphs
-
2266 # generated by dot. A depth value of 3 means that only nodes reachable from the
-
2267 # root by following a path via at most 3 edges will be shown. Nodes that lay
-
2268 # further from the root node will be omitted. Note that setting this option to 1
-
2269 # or 2 may greatly reduce the computation time needed for large code bases. Also
-
2270 # note that the size of a graph can be further restricted by
-
2271 # DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
-
2272 # Minimum value: 0, maximum value: 1000, default value: 0.
-
2273 # This tag requires that the tag HAVE_DOT is set to YES.
-
2274 
-
2275 MAX_DOT_GRAPH_DEPTH = 1000
-
2276 
-
2277 # Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
-
2278 # background. This is disabled by default, because dot on Windows does not seem
-
2279 # to support this out of the box.
-
2280 #
-
2281 # Warning: Depending on the platform used, enabling this option may lead to
-
2282 # badly anti-aliased labels on the edges of a graph (i.e. they become hard to
-
2283 # read).
-
2284 # The default value is: NO.
-
2285 # This tag requires that the tag HAVE_DOT is set to YES.
-
2286 
-
2287 DOT_TRANSPARENT = NO
-
2288 
-
2289 # Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output
-
2290 # files in one run (i.e. multiple -o and -T options on the command line). This
-
2291 # makes dot run faster, but since only newer versions of dot (>1.8.10) support
-
2292 # this, this feature is disabled by default.
-
2293 # The default value is: NO.
-
2294 # This tag requires that the tag HAVE_DOT is set to YES.
-
2295 
-
2296 DOT_MULTI_TARGETS = NO
-
2297 
-
2298 # If the GENERATE_LEGEND tag is set to YES doxygen will generate a legend page
-
2299 # explaining the meaning of the various boxes and arrows in the dot generated
-
2300 # graphs.
-
2301 # The default value is: YES.
-
2302 # This tag requires that the tag HAVE_DOT is set to YES.
-
2303 
-
2304 GENERATE_LEGEND = YES
-
2305 
-
2306 # If the DOT_CLEANUP tag is set to YES doxygen will remove the intermediate dot
-
2307 # files that are used to generate the various graphs.
-
2308 # The default value is: YES.
-
2309 # This tag requires that the tag HAVE_DOT is set to YES.
-
2310 
-
2311 DOT_CLEANUP = YES
+
37 namespace glm
+
38 {
+
44  typedef tmat3x4<float, lowp> lowp_mat3x4;
+
45 
+
51  typedef tmat3x4<float, mediump> mediump_mat3x4;
+
52 
+
58  typedef tmat3x4<float, highp> highp_mat3x4;
+
59 
+
60 }//namespace glm
+
tmat3x4< float, lowp > lowp_mat3x4
3 columns of 4 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:237
+
tmat3x4< float, mediump > mediump_mat3x4
3 columns of 4 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:244
+
OpenGL Mathematics (glm.g-truc.net)
+
Definition: _noise.hpp:39
+
tmat3x4< float, highp > highp_mat3x4
3 columns of 4 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:251
diff --git a/doc/api/a00062.html b/doc/api/a00062.html index 4078dce6..37435b5b 100644 --- a/doc/api/a00062.html +++ b/doc/api/a00062.html @@ -3,8 +3,8 @@ - -GLM: mat2x2.hpp File Reference + +0.9.6: mat4x2.hpp File Reference @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,40 +41,33 @@
-
-Namespaces
-
mat2x2.hpp File Reference
+
mat4x2.hpp File Reference

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 

Detailed Description

OpenGL Mathematics (glm.g-truc.net)

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM Core

+

GLM Core

Date
2013-12-24 / 2013-12-24
Author
Christophe Riccio
-

Definition in file mat2x2.hpp.

+

Definition in file mat4x2.hpp.

diff --git a/doc/api/a00062_source.html b/doc/api/a00062_source.html index 98aea962..153f2da4 100644 --- a/doc/api/a00062_source.html +++ b/doc/api/a00062_source.html @@ -3,8 +3,8 @@ - -GLM: mat2x2.hpp Source File + +0.9.6: mat4x2.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,49 +41,39 @@
-
mat2x2.hpp
+
mat4x2.hpp
Go to the documentation of this file.
1 
-
29 #ifndef GLM_MAT2X2_INCLUDED
-
30 #define GLM_MAT2X2_INCLUDED
-
31 
-
32 #include "detail/type_mat2x2.hpp"
-
33 
-
34 namespace glm
-
35 {
-
41  typedef detail::tmat2x2<float, lowp> lowp_mat2;
-
42 
-
48  typedef detail::tmat2x2<float, mediump> mediump_mat2;
-
49 
-
55  typedef detail::tmat2x2<float, highp> highp_mat2;
-
56 
-
62  typedef detail::tmat2x2<float, lowp> lowp_mat2x2;
-
63 
-
69  typedef detail::tmat2x2<float, mediump> mediump_mat2x2;
-
70 
-
76  typedef detail::tmat2x2<float, highp> highp_mat2x2;
-
77 
-
78 }//namespace glm
-
79 
-
80 #endif//GLM_MAT2X2_INCLUDED
-
detail::tmat2x2< float, highp > highp_mat2
2 columns of 2 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:79
-
detail::tmat2x2< float, mediump > mediump_mat2
2 columns of 2 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:72
-
detail::tmat2x2< float, lowp > lowp_mat2x2
2 columns of 2 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:86
-
detail::tmat2x2< float, lowp > lowp_mat2
2 columns of 2 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:65
-
detail::tmat2x2< float, mediump > mediump_mat2x2
2 columns of 2 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:93
-
detail::tmat2x2< float, highp > highp_mat2x2
2 columns of 2 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:100
+
33 #pragma once
+
34 
+
35 #include "detail/type_mat4x2.hpp"
+
36 
+
37 namespace glm
+
38 {
+
44  typedef tmat4x2<float, lowp> lowp_mat4x2;
+
45 
+
51  typedef tmat4x2<float, mediump> mediump_mat4x2;
+
52 
+
58  typedef tmat4x2<float, highp> highp_mat4x2;
+
59 
+
60 }//namespace glm
+
tmat4x2< float, highp > highp_mat4x2
4 columns of 2 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:277
+
tmat4x2< float, lowp > lowp_mat4x2
4 columns of 2 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:263
+
OpenGL Mathematics (glm.g-truc.net)
+
Definition: _noise.hpp:39
+
tmat4x2< float, mediump > mediump_mat4x2
4 columns of 2 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:270
diff --git a/doc/api/a00063_source.html b/doc/api/a00063_source.html index e091dace..e6280dc2 100644 --- a/doc/api/a00063_source.html +++ b/doc/api/a00063_source.html @@ -3,8 +3,8 @@ - -GLM: mat2x3.hpp Source File + +0.9.6: mat4x3.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,40 +41,39 @@
-
mat2x3.hpp
+
mat4x3.hpp
-Go to the documentation of this file.
1 
-
29 #ifndef GLM_MAT2X3_INCLUDED
-
30 #define GLM_MAT2X3_INCLUDED
-
31 
-
32 #include "detail/type_mat2x3.hpp"
-
33 
-
34 namespace glm
-
35 {
-
41  typedef detail::tmat2x3<float, lowp> lowp_mat2x3;
-
42 
-
48  typedef detail::tmat2x3<float, mediump> mediump_mat2x3;
-
49 
-
55  typedef detail::tmat2x3<float, highp> highp_mat2x3;
-
56 
-
57 }//namespace glm
-
58 
-
59 #endif//GLM_MAT2X3_INCLUDED
-
detail::tmat2x3< float, mediump > mediump_mat2x3
2 columns of 3 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:119
-
detail::tmat2x3< float, highp > highp_mat2x3
2 columns of 3 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:126
-
detail::tmat2x3< float, lowp > lowp_mat2x3
2 columns of 3 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:112
+
1 
+
33 #pragma once
+
34 
+
35 #include "detail/type_mat4x3.hpp"
+
36 
+
37 namespace glm
+
38 {
+
44  typedef tmat4x3<float, lowp> lowp_mat4x3;
+
45 
+
51  typedef tmat4x3<float, mediump> mediump_mat4x3;
+
52 
+
58  typedef tmat4x3<float, highp> highp_mat4x3;
+
59 
+
60 }//namespace glm
+
OpenGL Mathematics (glm.g-truc.net)
+
tmat4x3< float, mediump > mediump_mat4x3
4 columns of 3 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:296
+
tmat4x3< float, highp > highp_mat4x3
4 columns of 3 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:303
+
Definition: _noise.hpp:39
+
tmat4x3< float, lowp > lowp_mat4x3
4 columns of 3 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:289
diff --git a/doc/api/a00064.html b/doc/api/a00064.html index 2d5e254d..d9f9af61 100644 --- a/doc/api/a00064.html +++ b/doc/api/a00064.html @@ -3,8 +3,8 @@ - -GLM: mat2x4.hpp File Reference + +0.9.6: mat4x4.hpp File Reference @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,40 +41,33 @@
-
-Namespaces
-
mat2x4.hpp File Reference
+
mat4x4.hpp File Reference

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 

Detailed Description

OpenGL Mathematics (glm.g-truc.net)

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM Core

+

GLM Core

Date
2013-12-24 / 2013-12-24
Author
Christophe Riccio
-

Definition in file mat2x4.hpp.

+

Definition in file mat4x4.hpp.

diff --git a/doc/api/a00064_source.html b/doc/api/a00064_source.html index 9a1c409f..a1885b36 100644 --- a/doc/api/a00064_source.html +++ b/doc/api/a00064_source.html @@ -3,8 +3,8 @@ - -GLM: mat2x4.hpp Source File + +0.9.6: mat4x4.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,40 +41,48 @@
-
mat2x4.hpp
+
mat4x4.hpp
Go to the documentation of this file.
1 
-
29 #ifndef GLM_MAT2X4_INCLUDED
-
30 #define GLM_MAT2X4_INCLUDED
-
31 
-
32 #include "detail/type_mat2x4.hpp"
-
33 
-
34 namespace glm
-
35 {
-
41  typedef detail::tmat2x4<float, lowp> lowp_mat2x4;
-
42 
-
48  typedef detail::tmat2x4<float, mediump> mediump_mat2x4;
-
49 
-
55  typedef detail::tmat2x4<float, highp> highp_mat2x4;
-
56 
-
57 }//namespace glm
-
58 
-
59 #endif//GLM_MAT2X4_INCLUDED
-
detail::tmat2x4< float, lowp > lowp_mat2x4
2 columns of 4 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:138
-
detail::tmat2x4< float, highp > highp_mat2x4
2 columns of 4 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:152
-
detail::tmat2x4< float, mediump > mediump_mat2x4
2 columns of 4 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:145
+
33 #pragma once
+
34 
+
35 #include "detail/type_mat4x4.hpp"
+
36 
+
37 namespace glm
+
38 {
+
44  typedef tmat4x4<float, lowp> lowp_mat4;
+
45 
+
51  typedef tmat4x4<float, mediump> mediump_mat4;
+
52 
+
58  typedef tmat4x4<float, highp> highp_mat4;
+
59 
+
65  typedef tmat4x4<float, lowp> lowp_mat4x4;
+
66 
+
72  typedef tmat4x4<float, mediump> mediump_mat4x4;
+
73 
+
79  typedef tmat4x4<float, highp> highp_mat4x4;
+
80 
+
81 }//namespace glm
+
tmat4x4< float, lowp > lowp_mat4x4
4 columns of 4 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:337
+
tmat4x4< float, lowp > lowp_mat4
4 columns of 4 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:316
+
tmat4x4< float, mediump > mediump_mat4x4
4 columns of 4 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:344
+
tmat4x4< float, mediump > mediump_mat4
4 columns of 4 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:323
+
tmat4x4< float, highp > highp_mat4x4
4 columns of 4 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:351
+
Definition: _noise.hpp:39
+
tmat4x4< float, highp > highp_mat4
4 columns of 4 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:330
+
OpenGL Mathematics (glm.g-truc.net)
diff --git a/doc/api/a00065.html b/doc/api/a00065.html index 29acf56a..227ec936 100644 --- a/doc/api/a00065.html +++ b/doc/api/a00065.html @@ -3,8 +3,8 @@ - -GLM: mat3x2.hpp File Reference + +0.9.6: matrix.hpp File Reference @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,40 +41,33 @@
-
-Namespaces
-
mat3x2.hpp File Reference
+
matrix.hpp File Reference

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 

Detailed Description

OpenGL Mathematics (glm.g-truc.net)

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM Core

+

GLM Core

Date
2013-12-24 / 2013-12-24
Author
Christophe Riccio
-

Definition in file mat3x2.hpp.

+

Definition in file matrix.hpp.

diff --git a/doc/api/a00065_source.html b/doc/api/a00065_source.html index d7d2a5bb..1f0bbbf4 100644 --- a/doc/api/a00065_source.html +++ b/doc/api/a00065_source.html @@ -3,8 +3,8 @@ - -GLM: mat3x2.hpp Source File + +0.9.6: matrix.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,40 +41,25 @@
-
mat3x2.hpp
+
matrix.hpp
Go to the documentation of this file.
1 
-
29 #ifndef GLM_MAT3X2_INCLUDED
-
30 #define GLM_MAT3X2_INCLUDED
-
31 
-
32 #include "detail/type_mat3x2.hpp"
-
33 
-
34 namespace glm
-
35 {
-
41  typedef detail::tmat3x2<float, lowp> lowp_mat3x2;
-
42 
-
48  typedef detail::tmat3x2<float, mediump> mediump_mat3x2;
-
49 
-
55  typedef detail::tmat3x2<float, highp> highp_mat3x2;
-
56 
-
57 }//namespace
-
58 
-
59 #endif//GLM_MAT3X2_INCLUDED
-
detail::tmat3x2< float, lowp > lowp_mat3x2
3 columns of 2 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:164
-
detail::tmat3x2< float, highp > highp_mat3x2
3 columns of 2 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:178
-
detail::tmat3x2< float, mediump > mediump_mat3x2
3 columns of 2 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:171
+
33 #pragma once
+
34 
+
35 #include "detail/func_matrix.hpp"
+
OpenGL Mathematics (glm.g-truc.net)
diff --git a/doc/api/a00066.html b/doc/api/a00066.html index 52b2f3e4..06a34982 100644 --- a/doc/api/a00066.html +++ b/doc/api/a00066.html @@ -3,8 +3,8 @@ - -GLM: mat3x3.hpp File Reference + +0.9.6: matrix_access.hpp File Reference @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,40 +41,52 @@
-Namespaces
+Functions
-
mat3x3.hpp File Reference
+
matrix_access.hpp File Reference

Go to the source code of this file.

- - - + + + + + + + + + + + + +

-Namespaces

 glm
 

+Functions

template<typename genType >
GLM_FUNC_DECL genType::col_type column (genType const &m, length_t index)
 
template<typename genType >
GLM_FUNC_DECL genType column (genType const &m, length_t index, typename genType::col_type const &x)
 
template<typename genType >
GLM_FUNC_DECL genType::row_type row (genType const &m, length_t index)
 
template<typename genType >
GLM_FUNC_DECL genType row (genType const &m, length_t index, typename genType::row_type const &x)
 

Detailed Description

OpenGL Mathematics (glm.g-truc.net)

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM Core

-
Date
2013-12-24 / 2013-12-24
-
Author
Christophe Riccio
+

GLM_GTC_matrix_access

+
Date
2005-12-27 / 2011-05-16
+
Author
Christophe Riccio
+
See also
GLM Core (dependence)
-

Definition in file mat3x3.hpp.

+

Definition in file matrix_access.hpp.

diff --git a/doc/api/a00066_source.html b/doc/api/a00066_source.html index 9249f981..f765fd94 100644 --- a/doc/api/a00066_source.html +++ b/doc/api/a00066_source.html @@ -3,8 +3,8 @@ - -GLM: mat3x3.hpp Source File + +0.9.6: matrix_access.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,49 +41,61 @@
-
mat3x3.hpp
+
matrix_access.hpp
Go to the documentation of this file.
1 
-
29 #ifndef GLM_MAT3X3_INCLUDED
-
30 #define GLM_MAT3X3_INCLUDED
-
31 
-
32 #include "detail/type_mat3x3.hpp"
-
33 
-
34 namespace glm
-
35 {
-
41  typedef detail::tmat3x3<float, lowp> lowp_mat3;
-
42 
-
48  typedef detail::tmat3x3<float, mediump> mediump_mat3;
-
49 
-
55  typedef detail::tmat3x3<float, highp> highp_mat3;
-
56 
-
62  typedef detail::tmat3x3<float, lowp> lowp_mat3x3;
-
63 
-
69  typedef detail::tmat3x3<float, mediump> mediump_mat3x3;
-
70 
-
76  typedef detail::tmat3x3<float, highp> highp_mat3x3;
-
77 
-
78 }//namespace glm
-
79 
-
80 #endif//GLM_MAT3X3_INCLUDED
-
detail::tmat3x3< float, mediump > mediump_mat3
3 columns of 3 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:197
-
detail::tmat3x3< float, lowp > lowp_mat3x3
3 columns of 3 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:211
-
detail::tmat3x3< float, highp > highp_mat3
3 columns of 3 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:204
-
detail::tmat3x3< float, lowp > lowp_mat3
3 columns of 3 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:190
-
detail::tmat3x3< float, mediump > mediump_mat3x3
3 columns of 3 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:218
-
detail::tmat3x3< float, highp > highp_mat3x3
3 columns of 3 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:225
+
41 #pragma once
+
42 
+
43 // Dependency:
+
44 #include "../detail/setup.hpp"
+
45 
+
46 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+
47 # pragma message("GLM: GLM_GTC_matrix_access extension included")
+
48 #endif
+
49 
+
50 namespace glm
+
51 {
+
54 
+
57  template <typename genType>
+
58  GLM_FUNC_DECL typename genType::row_type row(
+
59  genType const & m,
+
60  length_t index);
+
61 
+
64  template <typename genType>
+
65  GLM_FUNC_DECL genType row(
+
66  genType const & m,
+
67  length_t index,
+
68  typename genType::row_type const & x);
+
69 
+
72  template <typename genType>
+
73  GLM_FUNC_DECL typename genType::col_type column(
+
74  genType const & m,
+
75  length_t index);
+
76 
+
79  template <typename genType>
+
80  GLM_FUNC_DECL genType column(
+
81  genType const & m,
+
82  length_t index,
+
83  typename genType::col_type const & x);
+
84 
+
86 }//namespace glm
+
87 
+
88 #include "matrix_access.inl"
+
GLM_FUNC_DECL genType row(genType const &m, length_t index, typename genType::row_type const &x)
Set a specific row to a matrix.
+
Definition: _noise.hpp:39
+
GLM_FUNC_DECL genType column(genType const &m, length_t index, typename genType::col_type const &x)
Set a specific column to a matrix.
diff --git a/doc/api/a00067.html b/doc/api/a00067.html index 0cf3079b..30806250 100644 --- a/doc/api/a00067.html +++ b/doc/api/a00067.html @@ -3,8 +3,8 @@ - -GLM: mat3x4.hpp File Reference + +0.9.6: matrix_cross_product.hpp File Reference @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,40 +41,48 @@
-Namespaces
+Functions
-
mat3x4.hpp File Reference
+
matrix_cross_product.hpp File Reference

Go to the source code of this file.

- - - + + + + + + +

-Namespaces

 glm
 

+Functions

template<typename T , precision P>
GLM_FUNC_DECL tmat3x3< T, P > matrixCross3 (tvec3< T, P > const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat4x4< T, P > matrixCross4 (tvec3< T, P > const &x)
 

Detailed Description

OpenGL Mathematics (glm.g-truc.net)

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM Core

-
Date
2013-12-24 / 2013-12-24
-
Author
Christophe Riccio
+

GLM_GTX_matrix_cross_product

+
Date
2005-12-21 / 2011-06-07
+
Author
Christophe Riccio
+
See also
GLM Core (dependence)
+
+GLM_GTX_extented_min_max (dependence)
-

Definition in file mat3x4.hpp.

+

Definition in file matrix_cross_product.hpp.

diff --git a/doc/api/a00067_source.html b/doc/api/a00067_source.html index f6ef93b1..b1c47d72 100644 --- a/doc/api/a00067_source.html +++ b/doc/api/a00067_source.html @@ -3,8 +3,8 @@ - -GLM: mat3x4.hpp Source File + +0.9.6: matrix_cross_product.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,40 +41,47 @@
-
mat3x4.hpp
+
matrix_cross_product.hpp
Go to the documentation of this file.
1 
-
29 #ifndef GLM_MAT3X4_INCLUDED
-
30 #define GLM_MAT3X4_INCLUDED
-
31 
-
32 #include "detail/type_mat3x4.hpp"
-
33 
-
34 namespace glm
-
35 {
-
41  typedef detail::tmat3x4<float, lowp> lowp_mat3x4;
-
42 
-
48  typedef detail::tmat3x4<float, mediump> mediump_mat3x4;
-
49 
-
55  typedef detail::tmat3x4<float, highp> highp_mat3x4;
+
43 #pragma once
+
44 
+
45 // Dependency:
+
46 #include "../glm.hpp"
+
47 
+
48 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+
49 # pragma message("GLM: GLM_GTX_matrix_cross_product extension included")
+
50 #endif
+
51 
+
52 namespace glm
+
53 {
56 
-
57 }//namespace glm
-
58 
-
59 #endif//GLM_MAT3X4_INCLUDED
-
detail::tmat3x4< float, highp > highp_mat3x4
3 columns of 4 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:251
-
detail::tmat3x4< float, lowp > lowp_mat3x4
3 columns of 4 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:237
-
detail::tmat3x4< float, mediump > mediump_mat3x4
3 columns of 4 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:244
+
59  template <typename T, precision P>
+
60  GLM_FUNC_DECL tmat3x3<T, P> matrixCross3(
+
61  tvec3<T, P> const & x);
+
62 
+
65  template <typename T, precision P>
+
66  GLM_FUNC_DECL tmat4x4<T, P> matrixCross4(
+
67  tvec3<T, P> const & x);
+
68 
+
70 }//namespace glm
+
71 
+
72 #include "matrix_cross_product.inl"
+
GLM_FUNC_DECL tmat4x4< T, P > matrixCross4(tvec3< T, P > const &x)
Build a cross product matrix.
+
GLM_FUNC_DECL tmat3x3< T, P > matrixCross3(tvec3< T, P > const &x)
Build a cross product matrix.
+
Definition: _noise.hpp:39
diff --git a/doc/api/a00068.html b/doc/api/a00068.html index bed87518..163d9030 100644 --- a/doc/api/a00068.html +++ b/doc/api/a00068.html @@ -3,8 +3,8 @@ - -GLM: mat4x2.hpp File Reference + +0.9.6: matrix_decompose.hpp File Reference @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,40 +41,43 @@
-Namespaces
+Functions
-
mat4x2.hpp File Reference
+
matrix_decompose.hpp File Reference

Go to the source code of this file.

- - - + + + +

-Namespaces

 glm
 

+Functions

template<typename T , precision P>
GLM_FUNC_DECL bool decompose (tmat4x4< T, P > const &modelMatrix, tvec3< T, P > &scale, tquat< T, P > &orientation, tvec3< T, P > &translation, tvec3< T, P > &skew, tvec4< T, P > &perspective)
 

Detailed Description

OpenGL Mathematics (glm.g-truc.net)

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM Core

-
Date
2013-12-24 / 2013-12-24
-
Author
Christophe Riccio
+

GLM_GTX_matrix_decompose

+
Date
2014-08-29 / 2014-08-29
+
Author
Christophe Riccio
+
See also
GLM Core (dependence)
-

Definition in file mat4x2.hpp.

+

Definition in file matrix_decompose.hpp.

diff --git a/doc/api/a00068_source.html b/doc/api/a00068_source.html index d8531a81..42f28c71 100644 --- a/doc/api/a00068_source.html +++ b/doc/api/a00068_source.html @@ -3,8 +3,8 @@ - -GLM: mat4x2.hpp Source File + +0.9.6: matrix_decompose.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,40 +41,50 @@
-
mat4x2.hpp
+
matrix_decompose.hpp
Go to the documentation of this file.
1 
-
29 #ifndef GLM_MAT4X2_INCLUDED
-
30 #define GLM_MAT4X2_INCLUDED
-
31 
-
32 #include "detail/type_mat4x2.hpp"
-
33 
-
34 namespace glm
-
35 {
-
41  typedef detail::tmat4x2<float, lowp> lowp_mat4x2;
-
42 
-
48  typedef detail::tmat4x2<float, mediump> mediump_mat4x2;
-
49 
-
55  typedef detail::tmat4x2<float, highp> highp_mat4x2;
-
56 
-
57 }//namespace glm
-
58 
-
59 #endif//GLM_MAT4X2_INCLUDED
-
detail::tmat4x2< float, mediump > mediump_mat4x2
4 columns of 2 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:270
-
detail::tmat4x2< float, highp > highp_mat4x2
4 columns of 2 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:277
-
detail::tmat4x2< float, lowp > lowp_mat4x2
4 columns of 2 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:263
+
42 #pragma once
+
43 
+
44 // Dependencies
+
45 #include "../mat4x4.hpp"
+
46 #include "../vec3.hpp"
+
47 #include "../vec4.hpp"
+
48 #include "../gtc/quaternion.hpp"
+
49 #include "../gtc/matrix_transform.hpp"
+
50 
+
51 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+
52 # pragma message("GLM: GLM_GTX_matrix_decompose extension included")
+
53 #endif
+
54 
+
55 namespace glm
+
56 {
+
59 
+
62  template <typename T, precision P>
+
63  GLM_FUNC_DECL bool decompose(
+
64  tmat4x4<T, P> const & modelMatrix,
+
65  tvec3<T, P> & scale, tquat<T, P> & orientation, tvec3<T, P> & translation, tvec3<T, P> & skew, tvec4<T, P> & perspective);
+
66 
+
68 }//namespace glm
+
69 
+
70 #include "matrix_decompose.inl"
+
GLM_FUNC_DECL tmat4x4< T, P > scale(tmat4x4< T, P > const &m, tvec3< T, P > const &v)
Builds a scale 4 * 4 matrix created from 3 scalars.
+
Definition: _noise.hpp:39
+
GLM_FUNC_DECL tmat4x4< T, defaultp > perspective(T fovy, T aspect, T near, T far)
Creates a matrix for a symetric perspective-view frustum.
+
GLM_FUNC_DECL tmat4x4< T, P > orientation(tvec3< T, P > const &Normal, tvec3< T, P > const &Up)
Build a rotation matrix from a normal and a up vector.
+
GLM_FUNC_DECL bool decompose(tmat4x4< T, P > const &modelMatrix, tvec3< T, P > &scale, tquat< T, P > &orientation, tvec3< T, P > &translation, tvec3< T, P > &skew, tvec4< T, P > &perspective)
Decomposes a model matrix to translations, rotation and scale components.
diff --git a/doc/api/a00069.html b/doc/api/a00069.html new file mode 100644 index 00000000..527a6fbc --- /dev/null +++ b/doc/api/a00069.html @@ -0,0 +1,272 @@ + + + + + + +0.9.6: matrix_integer.hpp File Reference + + + + + + +
+
+ + + + + + + +
+
0.9.6 +
+
+
+ + + + + +
+
+
+Typedefs
+
+
matrix_integer.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Typedefs

typedef tmat2x2< int, highp > highp_imat2
 
typedef tmat2x2< int, highp > highp_imat2x2
 
typedef tmat2x3< int, highp > highp_imat2x3
 
typedef tmat2x4< int, highp > highp_imat2x4
 
typedef tmat3x3< int, highp > highp_imat3
 
typedef tmat3x2< int, highp > highp_imat3x2
 
typedef tmat3x3< int, highp > highp_imat3x3
 
typedef tmat3x4< int, highp > highp_imat3x4
 
typedef tmat4x4< int, highp > highp_imat4
 
typedef tmat4x2< int, highp > highp_imat4x2
 
typedef tmat4x3< int, highp > highp_imat4x3
 
typedef tmat4x4< int, highp > highp_imat4x4
 
typedef tmat2x2< uint, highp > highp_umat2
 
typedef tmat2x2< uint, highp > highp_umat2x2
 
typedef tmat2x3< uint, highp > highp_umat2x3
 
typedef tmat2x4< uint, highp > highp_umat2x4
 
typedef tmat3x3< uint, highp > highp_umat3
 
typedef tmat3x2< uint, highp > highp_umat3x2
 
typedef tmat3x3< uint, highp > highp_umat3x3
 
typedef tmat3x4< uint, highp > highp_umat3x4
 
typedef tmat4x4< uint, highp > highp_umat4
 
typedef tmat4x2< uint, highp > highp_umat4x2
 
typedef tmat4x3< uint, highp > highp_umat4x3
 
typedef tmat4x4< uint, highp > highp_umat4x4
 
typedef mediump_imat2 imat2
 
typedef mediump_imat2x2 imat2x2
 
typedef mediump_imat2x3 imat2x3
 
typedef mediump_imat2x4 imat2x4
 
typedef mediump_imat3 imat3
 
typedef mediump_imat3x2 imat3x2
 
typedef mediump_imat3x3 imat3x3
 
typedef mediump_imat3x4 imat3x4
 
typedef mediump_imat4 imat4
 
typedef mediump_imat4x2 imat4x2
 
typedef mediump_imat4x3 imat4x3
 
typedef mediump_imat4x4 imat4x4
 
typedef tmat2x2< int, lowp > lowp_imat2
 
typedef tmat2x2< int, lowp > lowp_imat2x2
 
typedef tmat2x3< int, lowp > lowp_imat2x3
 
typedef tmat2x4< int, lowp > lowp_imat2x4
 
typedef tmat3x3< int, lowp > lowp_imat3
 
typedef tmat3x2< int, lowp > lowp_imat3x2
 
typedef tmat3x3< int, lowp > lowp_imat3x3
 
typedef tmat3x4< int, lowp > lowp_imat3x4
 
typedef tmat4x4< int, lowp > lowp_imat4
 
typedef tmat4x2< int, lowp > lowp_imat4x2
 
typedef tmat4x3< int, lowp > lowp_imat4x3
 
typedef tmat4x4< int, lowp > lowp_imat4x4
 
typedef tmat2x2< uint, lowp > lowp_umat2
 
typedef tmat2x2< uint, lowp > lowp_umat2x2
 
typedef tmat2x3< uint, lowp > lowp_umat2x3
 
typedef tmat2x4< uint, lowp > lowp_umat2x4
 
typedef tmat3x3< uint, lowp > lowp_umat3
 
typedef tmat3x2< uint, lowp > lowp_umat3x2
 
typedef tmat3x3< uint, lowp > lowp_umat3x3
 
typedef tmat3x4< uint, lowp > lowp_umat3x4
 
typedef tmat4x4< uint, lowp > lowp_umat4
 
typedef tmat4x2< uint, lowp > lowp_umat4x2
 
typedef tmat4x3< uint, lowp > lowp_umat4x3
 
typedef tmat4x4< uint, lowp > lowp_umat4x4
 
typedef tmat2x2< int, mediump > mediump_imat2
 
typedef tmat2x2< int, mediump > mediump_imat2x2
 
typedef tmat2x3< int, mediump > mediump_imat2x3
 
typedef tmat2x4< int, mediump > mediump_imat2x4
 
typedef tmat3x3< int, mediump > mediump_imat3
 
typedef tmat3x2< int, mediump > mediump_imat3x2
 
typedef tmat3x3< int, mediump > mediump_imat3x3
 
typedef tmat3x4< int, mediump > mediump_imat3x4
 
typedef tmat4x4< int, mediump > mediump_imat4
 
typedef tmat4x2< int, mediump > mediump_imat4x2
 
typedef tmat4x3< int, mediump > mediump_imat4x3
 
typedef tmat4x4< int, mediump > mediump_imat4x4
 
typedef tmat2x2< uint, mediump > mediump_umat2
 
typedef tmat2x2< uint, mediump > mediump_umat2x2
 
typedef tmat2x3< uint, mediump > mediump_umat2x3
 
typedef tmat2x4< uint, mediump > mediump_umat2x4
 
typedef tmat3x3< uint, mediump > mediump_umat3
 
typedef tmat3x2< uint, mediump > mediump_umat3x2
 
typedef tmat3x3< uint, mediump > mediump_umat3x3
 
typedef tmat3x4< uint, mediump > mediump_umat3x4
 
typedef tmat4x4< uint, mediump > mediump_umat4
 
typedef tmat4x2< uint, mediump > mediump_umat4x2
 
typedef tmat4x3< uint, mediump > mediump_umat4x3
 
typedef tmat4x4< uint, mediump > mediump_umat4x4
 
typedef mediump_umat2 umat2
 
typedef mediump_umat2x2 umat2x2
 
typedef mediump_umat2x3 umat2x3
 
typedef mediump_umat2x4 umat2x4
 
typedef mediump_umat3 umat3
 
typedef mediump_umat3x2 umat3x2
 
typedef mediump_umat3x3 umat3x3
 
typedef mediump_umat3x4 umat3x4
 
typedef mediump_umat4 umat4
 
typedef mediump_umat4x2 umat4x2
 
typedef mediump_umat4x3 umat4x3
 
typedef mediump_umat4x4 umat4x4
 
+

Detailed Description

+

OpenGL Mathematics (glm.g-truc.net)

+

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+

GLM_GTC_matrix_integer

+
Date
2011-01-20 / 2011-06-05
+
Author
Christophe Riccio
+
See also
GLM Core (dependence)
+ +

Definition in file matrix_integer.hpp.

+
+ + + + diff --git a/doc/api/a00069_source.html b/doc/api/a00069_source.html index 2fea425b..88fcde6d 100644 --- a/doc/api/a00069_source.html +++ b/doc/api/a00069_source.html @@ -3,8 +3,8 @@ - -GLM: mat4x3.hpp Source File + +0.9.6: matrix_integer.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,40 +41,398 @@
-
mat4x3.hpp
+
matrix_integer.hpp
-
1 
-
29 #ifndef GLM_MAT4X3_INCLUDED
-
30 #define GLM_MAT4X3_INCLUDED
-
31 
-
32 #include "detail/type_mat4x3.hpp"
-
33 
-
34 namespace glm
-
35 {
-
41  typedef detail::tmat4x3<float, lowp> lowp_mat4x3;
-
42 
-
48  typedef detail::tmat4x3<float, mediump> mediump_mat4x3;
-
49 
-
55  typedef detail::tmat4x3<float, highp> highp_mat4x3;
-
56 
-
57 }//namespace glm
-
58 
-
59 #endif//GLM_MAT4X3_INCLUDED
-
detail::tmat4x3< float, mediump > mediump_mat4x3
4 columns of 3 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:296
-
detail::tmat4x3< float, highp > highp_mat4x3
4 columns of 3 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:303
-
detail::tmat4x3< float, lowp > lowp_mat4x3
4 columns of 3 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:289
+Go to the documentation of this file.
1 
+
41 #pragma once
+
42 
+
43 // Dependency:
+
44 #include "../mat2x2.hpp"
+
45 #include "../mat2x3.hpp"
+
46 #include "../mat2x4.hpp"
+
47 #include "../mat3x2.hpp"
+
48 #include "../mat3x3.hpp"
+
49 #include "../mat3x4.hpp"
+
50 #include "../mat4x2.hpp"
+
51 #include "../mat4x3.hpp"
+
52 #include "../mat4x4.hpp"
+
53 
+
54 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+
55 # pragma message("GLM: GLM_GTC_matrix_integer extension included")
+
56 #endif
+
57 
+
58 namespace glm
+
59 {
+
62 
+
65  typedef tmat2x2<int, highp> highp_imat2;
+
66 
+
69  typedef tmat3x3<int, highp> highp_imat3;
+
70 
+
73  typedef tmat4x4<int, highp> highp_imat4;
+
74 
+
77  typedef tmat2x2<int, highp> highp_imat2x2;
+
78 
+
81  typedef tmat2x3<int, highp> highp_imat2x3;
+
82 
+
85  typedef tmat2x4<int, highp> highp_imat2x4;
+
86 
+
89  typedef tmat3x2<int, highp> highp_imat3x2;
+
90 
+
93  typedef tmat3x3<int, highp> highp_imat3x3;
+
94 
+
97  typedef tmat3x4<int, highp> highp_imat3x4;
+
98 
+
101  typedef tmat4x2<int, highp> highp_imat4x2;
+
102 
+
105  typedef tmat4x3<int, highp> highp_imat4x3;
+
106 
+
109  typedef tmat4x4<int, highp> highp_imat4x4;
+
110 
+
111 
+
114  typedef tmat2x2<int, mediump> mediump_imat2;
+
115 
+
118  typedef tmat3x3<int, mediump> mediump_imat3;
+
119 
+
122  typedef tmat4x4<int, mediump> mediump_imat4;
+
123 
+
124 
+
127  typedef tmat2x2<int, mediump> mediump_imat2x2;
+
128 
+
131  typedef tmat2x3<int, mediump> mediump_imat2x3;
+
132 
+
135  typedef tmat2x4<int, mediump> mediump_imat2x4;
+
136 
+
139  typedef tmat3x2<int, mediump> mediump_imat3x2;
+
140 
+
143  typedef tmat3x3<int, mediump> mediump_imat3x3;
+
144 
+
147  typedef tmat3x4<int, mediump> mediump_imat3x4;
+
148 
+
151  typedef tmat4x2<int, mediump> mediump_imat4x2;
+
152 
+
155  typedef tmat4x3<int, mediump> mediump_imat4x3;
+
156 
+
159  typedef tmat4x4<int, mediump> mediump_imat4x4;
+
160 
+
161 
+
164  typedef tmat2x2<int, lowp> lowp_imat2;
+
165 
+
168  typedef tmat3x3<int, lowp> lowp_imat3;
+
169 
+
172  typedef tmat4x4<int, lowp> lowp_imat4;
+
173 
+
174 
+
177  typedef tmat2x2<int, lowp> lowp_imat2x2;
+
178 
+
181  typedef tmat2x3<int, lowp> lowp_imat2x3;
+
182 
+
185  typedef tmat2x4<int, lowp> lowp_imat2x4;
+
186 
+
189  typedef tmat3x2<int, lowp> lowp_imat3x2;
+
190 
+
193  typedef tmat3x3<int, lowp> lowp_imat3x3;
+
194 
+
197  typedef tmat3x4<int, lowp> lowp_imat3x4;
+
198 
+
201  typedef tmat4x2<int, lowp> lowp_imat4x2;
+
202 
+
205  typedef tmat4x3<int, lowp> lowp_imat4x3;
+
206 
+
209  typedef tmat4x4<int, lowp> lowp_imat4x4;
+
210 
+
211 
+
214  typedef tmat2x2<uint, highp> highp_umat2;
+
215 
+
218  typedef tmat3x3<uint, highp> highp_umat3;
+
219 
+
222  typedef tmat4x4<uint, highp> highp_umat4;
+
223 
+
226  typedef tmat2x2<uint, highp> highp_umat2x2;
+
227 
+
230  typedef tmat2x3<uint, highp> highp_umat2x3;
+
231 
+
234  typedef tmat2x4<uint, highp> highp_umat2x4;
+
235 
+
238  typedef tmat3x2<uint, highp> highp_umat3x2;
+
239 
+
242  typedef tmat3x3<uint, highp> highp_umat3x3;
+
243 
+
246  typedef tmat3x4<uint, highp> highp_umat3x4;
+
247 
+
250  typedef tmat4x2<uint, highp> highp_umat4x2;
+
251 
+
254  typedef tmat4x3<uint, highp> highp_umat4x3;
+
255 
+
258  typedef tmat4x4<uint, highp> highp_umat4x4;
+
259 
+
260 
+
263  typedef tmat2x2<uint, mediump> mediump_umat2;
+
264 
+
267  typedef tmat3x3<uint, mediump> mediump_umat3;
+
268 
+
271  typedef tmat4x4<uint, mediump> mediump_umat4;
+
272 
+
273 
+
276  typedef tmat2x2<uint, mediump> mediump_umat2x2;
+
277 
+
280  typedef tmat2x3<uint, mediump> mediump_umat2x3;
+
281 
+
284  typedef tmat2x4<uint, mediump> mediump_umat2x4;
+
285 
+
288  typedef tmat3x2<uint, mediump> mediump_umat3x2;
+
289 
+
292  typedef tmat3x3<uint, mediump> mediump_umat3x3;
+
293 
+
296  typedef tmat3x4<uint, mediump> mediump_umat3x4;
+
297 
+
300  typedef tmat4x2<uint, mediump> mediump_umat4x2;
+
301 
+
304  typedef tmat4x3<uint, mediump> mediump_umat4x3;
+
305 
+
308  typedef tmat4x4<uint, mediump> mediump_umat4x4;
+
309 
+
310 
+
313  typedef tmat2x2<uint, lowp> lowp_umat2;
+
314 
+
317  typedef tmat3x3<uint, lowp> lowp_umat3;
+
318 
+
321  typedef tmat4x4<uint, lowp> lowp_umat4;
+
322 
+
323 
+
326  typedef tmat2x2<uint, lowp> lowp_umat2x2;
+
327 
+
330  typedef tmat2x3<uint, lowp> lowp_umat2x3;
+
331 
+
334  typedef tmat2x4<uint, lowp> lowp_umat2x4;
+
335 
+
338  typedef tmat3x2<uint, lowp> lowp_umat3x2;
+
339 
+
342  typedef tmat3x3<uint, lowp> lowp_umat3x3;
+
343 
+
346  typedef tmat3x4<uint, lowp> lowp_umat3x4;
+
347 
+
350  typedef tmat4x2<uint, lowp> lowp_umat4x2;
+
351 
+
354  typedef tmat4x3<uint, lowp> lowp_umat4x3;
+
355 
+
358  typedef tmat4x4<uint, lowp> lowp_umat4x4;
+
359 
+
360 #if(defined(GLM_PRECISION_HIGHP_INT))
+
361  typedef highp_imat2 imat2;
+
362  typedef highp_imat3 imat3;
+
363  typedef highp_imat4 imat4;
+
364  typedef highp_imat2x2 imat2x2;
+
365  typedef highp_imat2x3 imat2x3;
+
366  typedef highp_imat2x4 imat2x4;
+
367  typedef highp_imat3x2 imat3x2;
+
368  typedef highp_imat3x3 imat3x3;
+
369  typedef highp_imat3x4 imat3x4;
+
370  typedef highp_imat4x2 imat4x2;
+
371  typedef highp_imat4x3 imat4x3;
+
372  typedef highp_imat4x4 imat4x4;
+
373 #elif(defined(GLM_PRECISION_LOWP_INT))
+
374  typedef lowp_imat2 imat2;
+
375  typedef lowp_imat3 imat3;
+
376  typedef lowp_imat4 imat4;
+
377  typedef lowp_imat2x2 imat2x2;
+
378  typedef lowp_imat2x3 imat2x3;
+
379  typedef lowp_imat2x4 imat2x4;
+
380  typedef lowp_imat3x2 imat3x2;
+
381  typedef lowp_imat3x3 imat3x3;
+
382  typedef lowp_imat3x4 imat3x4;
+
383  typedef lowp_imat4x2 imat4x2;
+
384  typedef lowp_imat4x3 imat4x3;
+
385  typedef lowp_imat4x4 imat4x4;
+
386 #else //if(defined(GLM_PRECISION_MEDIUMP_INT))
+
387 
+
390  typedef mediump_imat2 imat2;
+
391 
+
394  typedef mediump_imat3 imat3;
+
395 
+
398  typedef mediump_imat4 imat4;
+
399 
+
402  typedef mediump_imat2x2 imat2x2;
+
403 
+
406  typedef mediump_imat2x3 imat2x3;
+
407 
+
410  typedef mediump_imat2x4 imat2x4;
+
411 
+
414  typedef mediump_imat3x2 imat3x2;
+
415 
+
418  typedef mediump_imat3x3 imat3x3;
+
419 
+
422  typedef mediump_imat3x4 imat3x4;
+
423 
+
426  typedef mediump_imat4x2 imat4x2;
+
427 
+
430  typedef mediump_imat4x3 imat4x3;
+
431 
+
434  typedef mediump_imat4x4 imat4x4;
+
435 #endif//GLM_PRECISION
+
436 
+
437 #if(defined(GLM_PRECISION_HIGHP_UINT))
+
438  typedef highp_umat2 umat2;
+
439  typedef highp_umat3 umat3;
+
440  typedef highp_umat4 umat4;
+
441  typedef highp_umat2x2 umat2x2;
+
442  typedef highp_umat2x3 umat2x3;
+
443  typedef highp_umat2x4 umat2x4;
+
444  typedef highp_umat3x2 umat3x2;
+
445  typedef highp_umat3x3 umat3x3;
+
446  typedef highp_umat3x4 umat3x4;
+
447  typedef highp_umat4x2 umat4x2;
+
448  typedef highp_umat4x3 umat4x3;
+
449  typedef highp_umat4x4 umat4x4;
+
450 #elif(defined(GLM_PRECISION_LOWP_UINT))
+
451  typedef lowp_umat2 umat2;
+
452  typedef lowp_umat3 umat3;
+
453  typedef lowp_umat4 umat4;
+
454  typedef lowp_umat2x2 umat2x2;
+
455  typedef lowp_umat2x3 umat2x3;
+
456  typedef lowp_umat2x4 umat2x4;
+
457  typedef lowp_umat3x2 umat3x2;
+
458  typedef lowp_umat3x3 umat3x3;
+
459  typedef lowp_umat3x4 umat3x4;
+
460  typedef lowp_umat4x2 umat4x2;
+
461  typedef lowp_umat4x3 umat4x3;
+
462  typedef lowp_umat4x4 umat4x4;
+
463 #else //if(defined(GLM_PRECISION_MEDIUMP_UINT))
+
464 
+
467  typedef mediump_umat2 umat2;
+
468 
+
471  typedef mediump_umat3 umat3;
+
472 
+
475  typedef mediump_umat4 umat4;
+
476 
+
479  typedef mediump_umat2x2 umat2x2;
+
480 
+
483  typedef mediump_umat2x3 umat2x3;
+
484 
+
487  typedef mediump_umat2x4 umat2x4;
+
488 
+
491  typedef mediump_umat3x2 umat3x2;
+
492 
+
495  typedef mediump_umat3x3 umat3x3;
+
496 
+
499  typedef mediump_umat3x4 umat3x4;
+
500 
+
503  typedef mediump_umat4x2 umat4x2;
+
504 
+
507  typedef mediump_umat4x3 umat4x3;
+
508 
+
511  typedef mediump_umat4x4 umat4x4;
+
512 #endif//GLM_PRECISION
+
513 
+
515 }//namespace glm
+
tmat4x2< int, highp > highp_imat4x2
High-precision signed integer 4x2 matrix.
+
tmat4x4< int, highp > highp_imat4x4
High-precision signed integer 4x4 matrix.
+
tmat3x2< int, mediump > mediump_imat3x2
Medium-precision signed integer 3x2 matrix.
+
tmat2x3< int, highp > highp_imat2x3
High-precision signed integer 2x3 matrix.
+
tmat4x4< int, highp > highp_imat4
High-precision signed integer 4x4 matrix.
+
tmat3x4< int, highp > highp_imat3x4
High-precision signed integer 3x4 matrix.
+
tmat3x2< uint, highp > highp_umat3x2
High-precision unsigned integer 3x2 matrix.
+
tmat3x3< int, lowp > lowp_imat3
Low-precision signed integer 3x3 matrix.
+
tmat3x4< int, lowp > lowp_imat3x4
Low-precision signed integer 3x4 matrix.
+
tmat2x2< int, mediump > mediump_imat2x2
Medium-precision signed integer 2x2 matrix.
+
tmat3x2< int, highp > highp_imat3x2
High-precision signed integer 3x2 matrix.
+
mediump_umat4x4 umat4x4
Unsigned integer 4x4 matrix.
+
tmat4x2< uint, lowp > lowp_umat4x2
Low-precision unsigned integer 4x2 matrix.
+
tmat3x2< uint, mediump > mediump_umat3x2
Medium-precision unsigned integer 3x2 matrix.
+
mediump_imat4 imat4
Signed integer 4x4 matrix.
+
mediump_imat2x3 imat2x3
Signed integer 2x3 matrix.
+
mediump_umat3 umat3
Unsigned integer 3x3 matrix.
+
tmat2x3< uint, lowp > lowp_umat2x3
Low-precision unsigned integer 2x3 matrix.
+
mediump_umat4x2 umat4x2
Unsigned integer 4x2 matrix.
+
mediump_imat3 imat3
Signed integer 3x3 matrix.
+
mediump_umat2x3 umat2x3
Unsigned integer 2x3 matrix.
+
tmat4x4< uint, highp > highp_umat4
High-precision unsigned integer 4x4 matrix.
+
tmat3x2< int, lowp > lowp_imat3x2
Low-precision signed integer 3x2 matrix.
+
tmat3x3< uint, lowp > lowp_umat3
Low-precision unsigned integer 3x3 matrix.
+
mediump_umat2 umat2
Unsigned integer 2x2 matrix.
+
tmat2x2< int, highp > highp_imat2x2
High-precision signed integer 2x2 matrix.
+
tmat2x4< uint, highp > highp_umat2x4
High-precision unsigned integer 2x4 matrix.
+
tmat2x4< int, mediump > mediump_imat2x4
Medium-precision signed integer 2x4 matrix.
+
tmat3x3< int, mediump > mediump_imat3
Medium-precision signed integer 3x3 matrix.
+
mediump_imat3x4 imat3x4
Signed integer 3x4 matrix.
+
mediump_imat2x2 imat2x2
Signed integer 2x2 matrix.
+
tmat2x2< uint, mediump > mediump_umat2x2
Medium-precision unsigned integer 2x2 matrix.
+
tmat4x4< uint, mediump > mediump_umat4
Medium-precision unsigned integer 4x4 matrix.
+
tmat3x3< uint, highp > highp_umat3x3
High-precision unsigned integer 3x3 matrix.
+
tmat3x3< int, highp > highp_imat3x3
High-precision signed integer 3x3 matrix.
+
tmat3x4< uint, lowp > lowp_umat3x4
Low-precision unsigned integer 3x4 matrix.
+
tmat2x2< uint, highp > highp_umat2
High-precision unsigned integer 2x2 matrix.
+
tmat2x3< int, mediump > mediump_imat2x3
Medium-precision signed integer 2x3 matrix.
+
mediump_umat2x2 umat2x2
Unsigned integer 2x2 matrix.
+
tmat3x4< uint, highp > highp_umat3x4
High-precision unsigned integer 3x4 matrix.
+
tmat2x3< int, lowp > lowp_imat2x3
Low-precision signed integer 2x3 matrix.
+
tmat2x2< int, lowp > lowp_imat2
Low-precision signed integer 2x2 matrix.
+
tmat4x3< uint, lowp > lowp_umat4x3
Low-precision unsigned integer 4x3 matrix.
+
tmat4x2< uint, mediump > mediump_umat4x2
Medium-precision unsigned integer 4x2 matrix.
+
tmat2x2< uint, lowp > lowp_umat2
Low-precision unsigned integer 2x2 matrix.
+
tmat4x3< uint, mediump > mediump_umat4x3
Medium-precision unsigned integer 4x3 matrix.
+
tmat4x4< int, mediump > mediump_imat4x4
Medium-precision signed integer 4x4 matrix.
+
tmat2x3< uint, mediump > mediump_umat2x3
Medium-precision unsigned integer 2x3 matrix.
+
tmat2x2< uint, highp > highp_umat2x2
High-precision unsigned integer 2x2 matrix.
+
tmat3x3< uint, highp > highp_umat3
High-precision unsigned integer 3x3 matrix.
+
tmat2x4< int, lowp > lowp_imat2x4
Low-precision signed integer 2x4 matrix.
+
tmat3x4< uint, mediump > mediump_umat3x4
Medium-precision unsigned integer 3x4 matrix.
+
tmat4x3< int, mediump > mediump_imat4x3
Medium-precision signed integer 4x3 matrix.
+
tmat3x3< uint, lowp > lowp_umat3x3
Low-precision unsigned integer 3x3 matrix.
+
tmat4x4< uint, mediump > mediump_umat4x4
Medium-precision unsigned integer 4x4 matrix.
+
mediump_umat2x4 umat2x4
Unsigned integer 2x4 matrix.
+
tmat2x4< int, highp > highp_imat2x4
High-precision signed integer 2x4 matrix.
+
tmat2x2< int, lowp > lowp_imat2x2
Low-precision signed integer 2x2 matrix.
+
tmat2x2< int, highp > highp_imat2
High-precision signed integer 2x2 matrix.
+
tmat2x3< uint, highp > highp_umat2x3
High-precision unsigned integer 2x3 matrix.
+
tmat2x4< uint, mediump > mediump_umat2x4
Medium-precision unsigned integer 2x4 matrix.
+
mediump_umat4x3 umat4x3
Unsigned integer 4x3 matrix.
+
mediump_imat2 imat2
Signed integer 2x2 matrix.
+
mediump_imat4x2 imat4x2
Signed integer 4x2 matrix.
+
tmat2x2< uint, lowp > lowp_umat2x2
Low-precision unsigned integer 2x2 matrix.
+
tmat4x2< int, lowp > lowp_imat4x2
Low-precision signed integer 4x2 matrix.
+
mediump_umat3x2 umat3x2
Unsigned integer 3x2 matrix.
+
mediump_umat3x4 umat3x4
Unsigned integer 3x4 matrix.
+
tmat2x2< uint, mediump > mediump_umat2
Medium-precision unsigned integer 2x2 matrix.
+
tmat3x3< uint, mediump > mediump_umat3x3
Medium-precision unsigned integer 3x3 matrix.
+
mediump_imat4x4 imat4x4
Signed integer 4x4 matrix.
+
tmat3x2< uint, lowp > lowp_umat3x2
Low-precision unsigned integer 3x2 matrix.
+
tmat4x2< int, mediump > mediump_imat4x2
Medium-precision signed integer 4x2 matrix.
+
tmat4x4< int, lowp > lowp_imat4x4
Low-precision signed integer 4x4 matrix.
+
Definition: _noise.hpp:39
+
tmat2x2< int, mediump > mediump_imat2
Medium-precision signed integer 2x2 matrix.
+
tmat4x4< int, mediump > mediump_imat4
Medium-precision signed integer 4x4 matrix.
+
tmat3x3< uint, mediump > mediump_umat3
Medium-precision unsigned integer 3x3 matrix.
+
mediump_imat2x4 imat2x4
Signed integer 2x4 matrix.
+
tmat4x4< uint, lowp > lowp_umat4x4
Low-precision unsigned integer 4x4 matrix.
+
tmat4x4< uint, highp > highp_umat4x4
High-precision unsigned integer 4x4 matrix.
+
tmat2x4< uint, lowp > lowp_umat2x4
Low-precision unsigned integer 2x4 matrix.
+
mediump_umat4 umat4
Unsigned integer 4x4 matrix.
+
tmat4x4< uint, lowp > lowp_umat4
Low-precision unsigned integer 4x4 matrix.
+
mediump_imat3x2 imat3x2
Signed integer 3x2 matrix.
+
tmat4x3< int, lowp > lowp_imat4x3
Low-precision signed integer 4x3 matrix.
+
tmat4x3< int, highp > highp_imat4x3
High-precision signed integer 4x3 matrix.
+
tmat4x3< uint, highp > highp_umat4x3
High-precision unsigned integer 4x3 matrix.
+
tmat4x2< uint, highp > highp_umat4x2
High-precision unsigned integer 4x2 matrix.
+
mediump_imat3x3 imat3x3
Signed integer 3x3 matrix.
+
mediump_imat4x3 imat4x3
Signed integer 4x3 matrix.
+
tmat3x4< int, mediump > mediump_imat3x4
Medium-precision signed integer 3x4 matrix.
+
tmat4x4< int, lowp > lowp_imat4
Low-precision signed integer 4x4 matrix.
+
tmat3x3< int, lowp > lowp_imat3x3
Low-precision signed integer 3x3 matrix.
+
tmat3x3< int, mediump > mediump_imat3x3
Medium-precision signed integer 3x3 matrix.
+
mediump_umat3x3 umat3x3
Unsigned integer 3x3 matrix.
+
tmat3x3< int, highp > highp_imat3
High-precision signed integer 3x3 matrix.
diff --git a/doc/api/a00070.html b/doc/api/a00070.html index 1b3f7cfb..8e079a97 100644 --- a/doc/api/a00070.html +++ b/doc/api/a00070.html @@ -3,8 +3,8 @@ - -GLM: mat4x4.hpp File Reference + +0.9.6: matrix_interpolation.hpp File Reference @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,40 +41,52 @@
-Namespaces
+Functions
-
mat4x4.hpp File Reference
+
matrix_interpolation.hpp File Reference

Go to the source code of this file.

- - - + + + + + + + + + + + + +

-Namespaces

 glm
 

+Functions

template<typename T , precision P>
GLM_FUNC_DECL void axisAngle (tmat4x4< T, P > const &mat, tvec3< T, P > &axis, T &angle)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat4x4< T, P > axisAngleMatrix (tvec3< T, P > const &axis, T const angle)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat4x4< T, P > extractMatrixRotation (tmat4x4< T, P > const &mat)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat4x4< T, P > interpolate (tmat4x4< T, P > const &m1, tmat4x4< T, P > const &m2, T const delta)
 

Detailed Description

OpenGL Mathematics (glm.g-truc.net)

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM Core

-
Date
2013-12-24 / 2013-12-24
-
Author
Christophe Riccio
+

GLM_GTX_matrix_interpolation

+
Date
2011-03-05 / 2011-06-07
+
Author
Ghenadii Ursachi (the.a.nosp@m.ster.nosp@m.oth@g.nosp@m.mail.nosp@m..com)
+
See also
GLM Core (dependence)
-

Definition in file mat4x4.hpp.

+

Definition in file matrix_interpolation.hpp.

diff --git a/doc/api/a00070_source.html b/doc/api/a00070_source.html index a529c20f..66562396 100644 --- a/doc/api/a00070_source.html +++ b/doc/api/a00070_source.html @@ -3,8 +3,8 @@ - -GLM: mat4x4.hpp Source File + +0.9.6: matrix_interpolation.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,49 +41,64 @@
-
mat4x4.hpp
+
matrix_interpolation.hpp
Go to the documentation of this file.
1 
-
29 #ifndef GLM_MAT4X4_INCLUDED
-
30 #define GLM_MAT4X4_INCLUDED
-
31 
-
32 #include "detail/type_mat4x4.hpp"
-
33 
-
34 namespace glm
-
35 {
-
41  typedef detail::tmat4x4<float, lowp> lowp_mat4;
-
42 
-
48  typedef detail::tmat4x4<float, mediump> mediump_mat4;
-
49 
-
55  typedef detail::tmat4x4<float, highp> highp_mat4;
-
56 
-
62  typedef detail::tmat4x4<float, lowp> lowp_mat4x4;
-
63 
-
69  typedef detail::tmat4x4<float, mediump> mediump_mat4x4;
-
70 
-
76  typedef detail::tmat4x4<float, highp> highp_mat4x4;
-
77 
-
78 }//namespace glm
-
79 
-
80 #endif//GLM_MAT4X4_INCLUDED
-
detail::tmat4x4< float, highp > highp_mat4x4
4 columns of 4 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:351
-
detail::tmat4x4< float, lowp > lowp_mat4
4 columns of 4 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:316
-
detail::tmat4x4< float, highp > highp_mat4
4 columns of 4 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:330
-
detail::tmat4x4< float, mediump > mediump_mat4x4
4 columns of 4 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:344
-
detail::tmat4x4< float, mediump > mediump_mat4
4 columns of 4 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:323
-
detail::tmat4x4< float, lowp > lowp_mat4x4
4 columns of 4 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:337
+
42 #pragma once
+
43 
+
44 // Dependency:
+
45 #include "../glm.hpp"
+
46 
+
47 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+
48 # pragma message("GLM: GLM_GTX_matrix_interpolation extension included")
+
49 #endif
+
50 
+
51 namespace glm
+
52 {
+
55 
+
58  template <typename T, precision P>
+
59  GLM_FUNC_DECL void axisAngle(
+
60  tmat4x4<T, P> const & mat,
+
61  tvec3<T, P> & axis,
+
62  T & angle);
+
63 
+
66  template <typename T, precision P>
+
67  GLM_FUNC_DECL tmat4x4<T, P> axisAngleMatrix(
+
68  tvec3<T, P> const & axis,
+
69  T const angle);
+
70 
+
73  template <typename T, precision P>
+
74  GLM_FUNC_DECL tmat4x4<T, P> extractMatrixRotation(
+
75  tmat4x4<T, P> const & mat);
+
76 
+
80  template <typename T, precision P>
+
81  GLM_FUNC_DECL tmat4x4<T, P> interpolate(
+
82  tmat4x4<T, P> const & m1,
+
83  tmat4x4<T, P> const & m2,
+
84  T const delta);
+
85 
+
87 }//namespace glm
+
88 
+
89 #include "matrix_interpolation.inl"
+
GLM_FUNC_DECL tvec3< T, P > axis(tquat< T, P > const &x)
Returns the q rotation axis.
+
GLM_FUNC_DECL T angle(tquat< T, P > const &x)
Returns the quaternion rotation angle.
+
GLM_FUNC_DECL tmat4x4< T, P > axisAngleMatrix(tvec3< T, P > const &axis, T const angle)
Build a matrix from axis and angle.
+
GLM_FUNC_DECL void axisAngle(tmat4x4< T, P > const &mat, tvec3< T, P > &axis, T &angle)
Get the axis and angle of the rotation from a matrix.
+
Definition: _noise.hpp:39
+
GLM_FUNC_DECL tmat4x4< T, P > extractMatrixRotation(tmat4x4< T, P > const &mat)
Extracts the rotation part of a matrix.
+
GLM_FUNC_DECL tmat4x4< T, P > interpolate(tmat4x4< T, P > const &m1, tmat4x4< T, P > const &m2, T const delta)
Build a interpolation of 4 * 4 matrixes.
diff --git a/doc/api/a00071.html b/doc/api/a00071.html index 1ae73438..ee0a3629 100644 --- a/doc/api/a00071.html +++ b/doc/api/a00071.html @@ -3,8 +3,8 @@ - -GLM: matrix.hpp File Reference + +0.9.6: matrix_inverse.hpp File Reference @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,32 +41,46 @@
+
+Functions
-
matrix.hpp File Reference
+
matrix_inverse.hpp File Reference

Go to the source code of this file.

+ + + + + + + + +

+Functions

template<typename genType >
GLM_FUNC_DECL genType affineInverse (genType const &m)
 
template<typename genType >
GLM_FUNC_DECL genType inverseTranspose (genType const &m)
 

Detailed Description

OpenGL Mathematics (glm.g-truc.net)

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM Core

-
Date
2013-12-24 / 2013-12-24
-
Author
Christophe Riccio
+

GLM_GTC_matrix_inverse

+
Date
2005-12-21 / 2011-06-05
+
Author
Christophe Riccio
+
See also
GLM Core (dependence)
-

Definition in file matrix.hpp.

+

Definition in file matrix_inverse.hpp.

diff --git a/doc/api/a00071_source.html b/doc/api/a00071_source.html index 8279eddc..11548944 100644 --- a/doc/api/a00071_source.html +++ b/doc/api/a00071_source.html @@ -3,8 +3,8 @@ - -GLM: matrix.hpp Source File + +0.9.6: matrix_inverse.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,27 +41,49 @@
-
matrix.hpp
+
matrix_inverse.hpp
Go to the documentation of this file.
1 
-
29 #ifndef GLM_MATRIX_INCLUDED
-
30 #define GLM_MATRIX_INCLUDED
-
31 
-
32 #include "detail/func_matrix.hpp"
-
33 
-
34 #endif//GLM_MATRIX_INCLUDED
+
41 #pragma once
+
42 
+
43 // Dependencies
+
44 #include "../detail/setup.hpp"
+
45 #include "../matrix.hpp"
+
46 #include "../mat2x2.hpp"
+
47 #include "../mat3x3.hpp"
+
48 #include "../mat4x4.hpp"
+
49 
+
50 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+
51 # pragma message("GLM: GLM_GTC_matrix_inverse extension included")
+
52 #endif
+
53 
+
54 namespace glm
+
55 {
+
58 
+
64  template <typename genType>
+
65  GLM_FUNC_DECL genType affineInverse(genType const & m);
+
66 
+
72  template <typename genType>
+
73  GLM_FUNC_DECL genType inverseTranspose(genType const & m);
+
74 
+
76 }//namespace glm
+
77 
+
78 #include "matrix_inverse.inl"
+
GLM_FUNC_DECL genType inverseTranspose(genType const &m)
Compute the inverse transpose of a matrix.
+
GLM_FUNC_DECL genType affineInverse(genType const &m)
Fast matrix inverse for affine matrix.
+
Definition: _noise.hpp:39
diff --git a/doc/api/a00072.html b/doc/api/a00072.html index d14b7a16..7731bf24 100644 --- a/doc/api/a00072.html +++ b/doc/api/a00072.html @@ -3,8 +3,8 @@ - -GLM: matrix_access.hpp File Reference + +0.9.6: matrix_major_storage.hpp File Reference @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,57 +41,78 @@
-Namespaces | Functions
-
matrix_access.hpp File Reference
+
matrix_major_storage.hpp File Reference

Go to the source code of this file.

- - - -

-Namespaces

 glm
 
- - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Functions

template<typename genType >
genType::col_type column (genType const &m, length_t const &index)
 
template<typename genType >
genType column (genType const &m, length_t const &index, typename genType::col_type const &x)
 
template<typename genType >
genType::row_type row (genType const &m, length_t const &index)
 
template<typename genType >
genType row (genType const &m, length_t const &index, typename genType::row_type const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat2x2< T, P > colMajor2 (tvec2< T, P > const &v1, tvec2< T, P > const &v2)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat2x2< T, P > colMajor2 (tmat2x2< T, P > const &m)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat3x3< T, P > colMajor3 (tvec3< T, P > const &v1, tvec3< T, P > const &v2, tvec3< T, P > const &v3)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat3x3< T, P > colMajor3 (tmat3x3< T, P > const &m)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat4x4< T, P > colMajor4 (tvec4< T, P > const &v1, tvec4< T, P > const &v2, tvec4< T, P > const &v3, tvec4< T, P > const &v4)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat4x4< T, P > colMajor4 (tmat4x4< T, P > const &m)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat2x2< T, P > rowMajor2 (tvec2< T, P > const &v1, tvec2< T, P > const &v2)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat2x2< T, P > rowMajor2 (tmat2x2< T, P > const &m)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat3x3< T, P > rowMajor3 (tvec3< T, P > const &v1, tvec3< T, P > const &v2, tvec3< T, P > const &v3)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat3x3< T, P > rowMajor3 (tmat3x3< T, P > const &m)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat4x4< T, P > rowMajor4 (tvec4< T, P > const &v1, tvec4< T, P > const &v2, tvec4< T, P > const &v3, tvec4< T, P > const &v4)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat4x4< T, P > rowMajor4 (tmat4x4< T, P > const &m)
 

Detailed Description

OpenGL Mathematics (glm.g-truc.net)

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTC_matrix_access

-
Date
2005-12-27 / 2011-05-16
+

GLM_GTX_matrix_major_storage

+
Date
2006-04-19 / 2011-06-07
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
+
See also
GLM Core (dependence)
+
+GLM_GTX_extented_min_max (dependence)
-

Definition in file matrix_access.hpp.

+

Definition in file matrix_major_storage.hpp.

diff --git a/doc/api/a00072_source.html b/doc/api/a00072_source.html index 5fa38a6b..3c7c9ab1 100644 --- a/doc/api/a00072_source.html +++ b/doc/api/a00072_source.html @@ -3,8 +3,8 @@ - -GLM: matrix_access.hpp Source File + +0.9.6: matrix_major_storage.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,63 +41,103 @@
-
matrix_access.hpp
+
matrix_major_storage.hpp
Go to the documentation of this file.
1 
-
37 #ifndef GLM_GTC_matrix_access
-
38 #define GLM_GTC_matrix_access
-
39 
-
40 // Dependency:
-
41 #include "../detail/setup.hpp"
-
42 
-
43 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
44 # pragma message("GLM: GLM_GTC_matrix_access extension included")
-
45 #endif
-
46 
-
47 namespace glm
-
48 {
+
43 #pragma once
+
44 
+
45 // Dependency:
+
46 #include "../glm.hpp"
+
47 
+
48 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+
49 # pragma message("GLM: GLM_GTX_matrix_major_storage extension included")
+
50 #endif
51 
-
54  template <typename genType>
-
55  typename genType::row_type row(
-
56  genType const & m,
-
57  length_t const & index);
-
58 
-
61  template <typename genType>
-
62  genType row(
-
63  genType const & m,
-
64  length_t const & index,
-
65  typename genType::row_type const & x);
-
66 
-
69  template <typename genType>
-
70  typename genType::col_type column(
-
71  genType const & m,
-
72  length_t const & index);
-
73 
-
76  template <typename genType>
-
77  genType column(
-
78  genType const & m,
-
79  length_t const & index,
-
80  typename genType::col_type const & x);
-
81 
-
83 }//namespace glm
-
84 
-
85 #include "matrix_access.inl"
-
86 
-
87 #endif//GLM_GTC_matrix_access
-
genType::col_type column(genType const &m, length_t const &index)
Get a specific column of a matrix.
-
genType::row_type row(genType const &m, length_t const &index)
Get a specific row of a matrix.
+
52 namespace glm
+
53 {
+
56 
+
59  template <typename T, precision P>
+
60  GLM_FUNC_DECL tmat2x2<T, P> rowMajor2(
+
61  tvec2<T, P> const & v1,
+
62  tvec2<T, P> const & v2);
+
63 
+
66  template <typename T, precision P>
+
67  GLM_FUNC_DECL tmat2x2<T, P> rowMajor2(
+
68  tmat2x2<T, P> const & m);
+
69 
+
72  template <typename T, precision P>
+
73  GLM_FUNC_DECL tmat3x3<T, P> rowMajor3(
+
74  tvec3<T, P> const & v1,
+
75  tvec3<T, P> const & v2,
+
76  tvec3<T, P> const & v3);
+
77 
+
80  template <typename T, precision P>
+
81  GLM_FUNC_DECL tmat3x3<T, P> rowMajor3(
+
82  tmat3x3<T, P> const & m);
+
83 
+
86  template <typename T, precision P>
+
87  GLM_FUNC_DECL tmat4x4<T, P> rowMajor4(
+
88  tvec4<T, P> const & v1,
+
89  tvec4<T, P> const & v2,
+
90  tvec4<T, P> const & v3,
+
91  tvec4<T, P> const & v4);
+
92 
+
95  template <typename T, precision P>
+
96  GLM_FUNC_DECL tmat4x4<T, P> rowMajor4(
+
97  tmat4x4<T, P> const & m);
+
98 
+
101  template <typename T, precision P>
+
102  GLM_FUNC_DECL tmat2x2<T, P> colMajor2(
+
103  tvec2<T, P> const & v1,
+
104  tvec2<T, P> const & v2);
+
105 
+
108  template <typename T, precision P>
+
109  GLM_FUNC_DECL tmat2x2<T, P> colMajor2(
+
110  tmat2x2<T, P> const & m);
+
111 
+
114  template <typename T, precision P>
+
115  GLM_FUNC_DECL tmat3x3<T, P> colMajor3(
+
116  tvec3<T, P> const & v1,
+
117  tvec3<T, P> const & v2,
+
118  tvec3<T, P> const & v3);
+
119 
+
122  template <typename T, precision P>
+
123  GLM_FUNC_DECL tmat3x3<T, P> colMajor3(
+
124  tmat3x3<T, P> const & m);
+
125 
+
128  template <typename T, precision P>
+
129  GLM_FUNC_DECL tmat4x4<T, P> colMajor4(
+
130  tvec4<T, P> const & v1,
+
131  tvec4<T, P> const & v2,
+
132  tvec4<T, P> const & v3,
+
133  tvec4<T, P> const & v4);
+
134 
+
137  template <typename T, precision P>
+
138  GLM_FUNC_DECL tmat4x4<T, P> colMajor4(
+
139  tmat4x4<T, P> const & m);
+
140 
+
142 }//namespace glm
+
143 
+
144 #include "matrix_major_storage.inl"
+
GLM_FUNC_DECL tmat4x4< T, P > colMajor4(tmat4x4< T, P > const &m)
Build a column major matrix from other matrix.
+
GLM_FUNC_DECL tmat2x2< T, P > rowMajor2(tmat2x2< T, P > const &m)
Build a row major matrix from other matrix.
+
GLM_FUNC_DECL tmat3x3< T, P > rowMajor3(tmat3x3< T, P > const &m)
Build a row major matrix from other matrix.
+
GLM_FUNC_DECL tmat2x2< T, P > colMajor2(tmat2x2< T, P > const &m)
Build a column major matrix from other matrix.
+
GLM_FUNC_DECL tmat3x3< T, P > colMajor3(tmat3x3< T, P > const &m)
Build a column major matrix from other matrix.
+
Definition: _noise.hpp:39
+
GLM_FUNC_DECL tmat4x4< T, P > rowMajor4(tmat4x4< T, P > const &m)
Build a row major matrix from other matrix.
diff --git a/doc/api/a00073.html b/doc/api/a00073.html index 4bbe0b23..313f07b1 100644 --- a/doc/api/a00073.html +++ b/doc/api/a00073.html @@ -3,8 +3,8 @@ - -GLM: matrix_cross_product.hpp File Reference + +0.9.6: matrix_operation.hpp File Reference @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,53 +41,67 @@
-Namespaces | Functions
-
matrix_cross_product.hpp File Reference
+
matrix_operation.hpp File Reference

Go to the source code of this file.

- - - -

-Namespaces

 glm
 
- - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + +

Functions

template<typename T , precision P>
detail::tmat3x3< T, P > matrixCross3 (detail::tvec3< T, P > const &x)
 
template<typename T , precision P>
detail::tmat4x4< T, P > matrixCross4 (detail::tvec3< T, P > const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat2x2< T, P > diagonal2x2 (tvec2< T, P > const &v)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat2x3< T, P > diagonal2x3 (tvec2< T, P > const &v)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat2x4< T, P > diagonal2x4 (tvec2< T, P > const &v)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat3x2< T, P > diagonal3x2 (tvec2< T, P > const &v)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat3x3< T, P > diagonal3x3 (tvec3< T, P > const &v)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat3x4< T, P > diagonal3x4 (tvec3< T, P > const &v)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat4x2< T, P > diagonal4x2 (tvec2< T, P > const &v)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat4x3< T, P > diagonal4x3 (tvec3< T, P > const &v)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat4x4< T, P > diagonal4x4 (tvec4< T, P > const &v)
 

Detailed Description

OpenGL Mathematics (glm.g-truc.net)

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_matrix_cross_product

-
Date
2005-12-21 / 2011-06-07
+

GLM_GTX_matrix_operation

+
Date
2009-08-29 / 2011-06-07
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
-
-GLM_GTX_extented_min_max (dependence)
+
See also
GLM Core (dependence)
-

Definition in file matrix_cross_product.hpp.

+

Definition in file matrix_operation.hpp.

diff --git a/doc/api/a00073_source.html b/doc/api/a00073_source.html index 27c9e1b0..8bd129b6 100644 --- a/doc/api/a00073_source.html +++ b/doc/api/a00073_source.html @@ -3,8 +3,8 @@ - -GLM: matrix_cross_product.hpp Source File + +0.9.6: matrix_operation.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,49 +41,82 @@
-
matrix_cross_product.hpp
+
matrix_operation.hpp
Go to the documentation of this file.
1 
-
39 #ifndef GLM_GTX_matrix_cross_product
-
40 #define GLM_GTX_matrix_cross_product
-
41 
-
42 // Dependency:
-
43 #include "../glm.hpp"
-
44 
-
45 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
46 # pragma message("GLM: GLM_GTX_matrix_cross_product extension included")
-
47 #endif
-
48 
-
49 namespace glm
-
50 {
-
53 
-
56  template <typename T, precision P>
-
57  detail::tmat3x3<T, P> matrixCross3(
-
58  detail::tvec3<T, P> const & x);
-
59 
-
62  template <typename T, precision P>
-
63  detail::tmat4x4<T, P> matrixCross4(
-
64  detail::tvec3<T, P> const & x);
-
65 
-
67 }//namespace glm
-
68 
-
69 #include "matrix_cross_product.inl"
-
70 
-
71 #endif//GLM_GTX_matrix_cross_product
-
detail::tmat4x4< T, P > matrixCross4(detail::tvec3< T, P > const &x)
Build a cross product matrix.
-
detail::tmat3x3< T, P > matrixCross3(detail::tvec3< T, P > const &x)
Build a cross product matrix.
+
42 #pragma once
+
43 
+
44 // Dependency:
+
45 #include "../glm.hpp"
+
46 
+
47 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+
48 # pragma message("GLM: GLM_GTX_matrix_operation extension included")
+
49 #endif
+
50 
+
51 namespace glm
+
52 {
+
55 
+
58  template <typename T, precision P>
+
59  GLM_FUNC_DECL tmat2x2<T, P> diagonal2x2(
+
60  tvec2<T, P> const & v);
+
61 
+
64  template <typename T, precision P>
+
65  GLM_FUNC_DECL tmat2x3<T, P> diagonal2x3(
+
66  tvec2<T, P> const & v);
+
67 
+
70  template <typename T, precision P>
+
71  GLM_FUNC_DECL tmat2x4<T, P> diagonal2x4(
+
72  tvec2<T, P> const & v);
+
73 
+
76  template <typename T, precision P>
+
77  GLM_FUNC_DECL tmat3x2<T, P> diagonal3x2(
+
78  tvec2<T, P> const & v);
+
79 
+
82  template <typename T, precision P>
+
83  GLM_FUNC_DECL tmat3x3<T, P> diagonal3x3(
+
84  tvec3<T, P> const & v);
+
85 
+
88  template <typename T, precision P>
+
89  GLM_FUNC_DECL tmat3x4<T, P> diagonal3x4(
+
90  tvec3<T, P> const & v);
+
91 
+
94  template <typename T, precision P>
+
95  GLM_FUNC_DECL tmat4x2<T, P> diagonal4x2(
+
96  tvec2<T, P> const & v);
+
97 
+
100  template <typename T, precision P>
+
101  GLM_FUNC_DECL tmat4x3<T, P> diagonal4x3(
+
102  tvec3<T, P> const & v);
+
103 
+
106  template <typename T, precision P>
+
107  GLM_FUNC_DECL tmat4x4<T, P> diagonal4x4(
+
108  tvec4<T, P> const & v);
+
109 
+
111 }//namespace glm
+
112 
+
113 #include "matrix_operation.inl"
+
GLM_FUNC_DECL tmat4x4< T, P > diagonal4x4(tvec4< T, P > const &v)
Build a diagonal matrix.
+
GLM_FUNC_DECL tmat2x4< T, P > diagonal2x4(tvec2< T, P > const &v)
Build a diagonal matrix.
+
GLM_FUNC_DECL tmat3x3< T, P > diagonal3x3(tvec3< T, P > const &v)
Build a diagonal matrix.
+
GLM_FUNC_DECL tmat4x2< T, P > diagonal4x2(tvec2< T, P > const &v)
Build a diagonal matrix.
+
GLM_FUNC_DECL tmat2x3< T, P > diagonal2x3(tvec2< T, P > const &v)
Build a diagonal matrix.
+
Definition: _noise.hpp:39
+
GLM_FUNC_DECL tmat2x2< T, P > diagonal2x2(tvec2< T, P > const &v)
Build a diagonal matrix.
+
GLM_FUNC_DECL tmat3x2< T, P > diagonal3x2(tvec2< T, P > const &v)
Build a diagonal matrix.
+
GLM_FUNC_DECL tmat3x4< T, P > diagonal3x4(tvec3< T, P > const &v)
Build a diagonal matrix.
+
GLM_FUNC_DECL tmat4x3< T, P > diagonal4x3(tvec3< T, P > const &v)
Build a diagonal matrix.
diff --git a/doc/api/a00074.html b/doc/api/a00074.html index fe3f1d7d..80c62360 100644 --- a/doc/api/a00074.html +++ b/doc/api/a00074.html @@ -3,8 +3,8 @@ - -GLM: matrix_integer.hpp File Reference + +0.9.6: matrix_query.hpp File Reference @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,309 +41,66 @@
-Namespaces | -Typedefs
+Functions
-
matrix_integer.hpp File Reference
+
matrix_query.hpp File Reference

Go to the source code of this file.

- - - -

-Namespaces

 glm
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + +

-Typedefs

typedef detail::tmat2x2< int,
-highp > 
highp_imat2
 
typedef detail::tmat2x2< int,
-highp > 
highp_imat2x2
 
typedef detail::tmat2x3< int,
-highp > 
highp_imat2x3
 
typedef detail::tmat2x4< int,
-highp > 
highp_imat2x4
 
typedef detail::tmat3x3< int,
-highp > 
highp_imat3
 
typedef detail::tmat3x2< int,
-highp > 
highp_imat3x2
 
typedef detail::tmat3x3< int,
-highp > 
highp_imat3x3
 
typedef detail::tmat3x4< int,
-highp > 
highp_imat3x4
 
typedef detail::tmat4x4< int,
-highp > 
highp_imat4
 
typedef detail::tmat4x2< int,
-highp > 
highp_imat4x2
 
typedef detail::tmat4x3< int,
-highp > 
highp_imat4x3
 
typedef detail::tmat4x4< int,
-highp > 
highp_imat4x4
 
typedef detail::tmat2x2< uint,
-highp > 
highp_umat2
 
typedef detail::tmat2x2< uint,
-highp > 
highp_umat2x2
 
typedef detail::tmat2x3< uint,
-highp > 
highp_umat2x3
 
typedef detail::tmat2x4< uint,
-highp > 
highp_umat2x4
 
typedef detail::tmat3x3< uint,
-highp > 
highp_umat3
 
typedef detail::tmat3x2< uint,
-highp > 
highp_umat3x2
 
typedef detail::tmat3x3< uint,
-highp > 
highp_umat3x3
 
typedef detail::tmat3x4< uint,
-highp > 
highp_umat3x4
 
typedef detail::tmat4x4< uint,
-highp > 
highp_umat4
 
typedef detail::tmat4x2< uint,
-highp > 
highp_umat4x2
 
typedef detail::tmat4x3< uint,
-highp > 
highp_umat4x3
 
typedef detail::tmat4x4< uint,
-highp > 
highp_umat4x4
 
typedef mediump_imat2 imat2
 
typedef mediump_imat2x2 imat2x2
 
typedef mediump_imat2x3 imat2x3
 
typedef mediump_imat2x4 imat2x4
 
typedef mediump_imat3 imat3
 
typedef mediump_imat3x2 imat3x2
 
typedef mediump_imat3x3 imat3x3
 
typedef mediump_imat3x4 imat3x4
 
typedef mediump_imat4 imat4
 
typedef mediump_imat4x2 imat4x2
 
typedef mediump_imat4x3 imat4x3
 
typedef mediump_imat4x4 imat4x4
 
typedef detail::tmat2x2< int,
-lowp > 
lowp_imat2
 
typedef detail::tmat2x2< int,
-lowp > 
lowp_imat2x2
 
typedef detail::tmat2x3< int,
-lowp > 
lowp_imat2x3
 
typedef detail::tmat2x4< int,
-lowp > 
lowp_imat2x4
 
typedef detail::tmat3x3< int,
-lowp > 
lowp_imat3
 
typedef detail::tmat3x2< int,
-lowp > 
lowp_imat3x2
 
typedef detail::tmat3x3< int,
-lowp > 
lowp_imat3x3
 
typedef detail::tmat3x4< int,
-lowp > 
lowp_imat3x4
 
typedef detail::tmat4x4< int,
-lowp > 
lowp_imat4
 
typedef detail::tmat4x2< int,
-lowp > 
lowp_imat4x2
 
typedef detail::tmat4x3< int,
-lowp > 
lowp_imat4x3
 
typedef detail::tmat4x4< int,
-lowp > 
lowp_imat4x4
 
typedef detail::tmat2x2< uint,
-lowp > 
lowp_umat2
 
typedef detail::tmat2x2< uint,
-lowp > 
lowp_umat2x2
 
typedef detail::tmat2x3< uint,
-lowp > 
lowp_umat2x3
 
typedef detail::tmat2x4< uint,
-lowp > 
lowp_umat2x4
 
typedef detail::tmat3x3< uint,
-lowp > 
lowp_umat3
 
typedef detail::tmat3x2< uint,
-lowp > 
lowp_umat3x2
 
typedef detail::tmat3x3< uint,
-lowp > 
lowp_umat3x3
 
typedef detail::tmat3x4< uint,
-lowp > 
lowp_umat3x4
 
typedef detail::tmat4x4< uint,
-lowp > 
lowp_umat4
 
typedef detail::tmat4x2< uint,
-lowp > 
lowp_umat4x2
 
typedef detail::tmat4x3< uint,
-lowp > 
lowp_umat4x3
 
typedef detail::tmat4x4< uint,
-lowp > 
lowp_umat4x4
 
typedef detail::tmat2x2< int,
-mediump > 
mediump_imat2
 
typedef detail::tmat2x2< int,
-mediump > 
mediump_imat2x2
 
typedef detail::tmat2x3< int,
-mediump > 
mediump_imat2x3
 
typedef detail::tmat2x4< int,
-mediump > 
mediump_imat2x4
 
typedef detail::tmat3x3< int,
-mediump > 
mediump_imat3
 
typedef detail::tmat3x2< int,
-mediump > 
mediump_imat3x2
 
typedef detail::tmat3x3< int,
-mediump > 
mediump_imat3x3
 
typedef detail::tmat3x4< int,
-mediump > 
mediump_imat3x4
 
typedef detail::tmat4x4< int,
-mediump > 
mediump_imat4
 
typedef detail::tmat4x2< int,
-mediump > 
mediump_imat4x2
 
typedef detail::tmat4x3< int,
-mediump > 
mediump_imat4x3
 
typedef detail::tmat4x4< int,
-mediump > 
mediump_imat4x4
 
typedef detail::tmat2x2< uint,
-mediump > 
mediump_umat2
 
typedef detail::tmat2x2< uint,
-mediump > 
mediump_umat2x2
 
typedef detail::tmat2x3< uint,
-mediump > 
mediump_umat2x3
 
typedef detail::tmat2x4< uint,
-mediump > 
mediump_umat2x4
 
typedef detail::tmat3x3< uint,
-mediump > 
mediump_umat3
 
typedef detail::tmat3x2< uint,
-mediump > 
mediump_umat3x2
 
typedef detail::tmat3x3< uint,
-mediump > 
mediump_umat3x3
 
typedef detail::tmat3x4< uint,
-mediump > 
mediump_umat3x4
 
typedef detail::tmat4x4< uint,
-mediump > 
mediump_umat4
 
typedef detail::tmat4x2< uint,
-mediump > 
mediump_umat4x2
 
typedef detail::tmat4x3< uint,
-mediump > 
mediump_umat4x3
 
typedef detail::tmat4x4< uint,
-mediump > 
mediump_umat4x4
 
typedef mediump_umat2 umat2
 
typedef mediump_umat2x2 umat2x2
 
typedef mediump_umat2x3 umat2x3
 
typedef mediump_umat2x4 umat2x4
 
typedef mediump_umat3 umat3
 
typedef mediump_umat3x2 umat3x2
 
typedef mediump_umat3x3 umat3x3
 
typedef mediump_umat3x4 umat3x4
 
typedef mediump_umat4 umat4
 
typedef mediump_umat4x2 umat4x2
 
typedef mediump_umat4x3 umat4x3
 
typedef mediump_umat4x4 umat4x4
 

+Functions

template<typename T , precision P, template< typename, precision > class matType>
GLM_FUNC_DECL bool isIdentity (matType< T, P > const &m, T const &epsilon)
 
template<typename T , precision P>
GLM_FUNC_DECL bool isNormalized (tmat2x2< T, P > const &m, T const &epsilon)
 
template<typename T , precision P>
GLM_FUNC_DECL bool isNormalized (tmat3x3< T, P > const &m, T const &epsilon)
 
template<typename T , precision P>
GLM_FUNC_DECL bool isNormalized (tmat4x4< T, P > const &m, T const &epsilon)
 
template<typename T , precision P>
GLM_FUNC_DECL bool isNull (tmat2x2< T, P > const &m, T const &epsilon)
 
template<typename T , precision P>
GLM_FUNC_DECL bool isNull (tmat3x3< T, P > const &m, T const &epsilon)
 
template<typename T , precision P>
GLM_FUNC_DECL bool isNull (tmat4x4< T, P > const &m, T const &epsilon)
 
template<typename T , precision P, template< typename, precision > class matType>
GLM_FUNC_DECL bool isOrthogonal (matType< T, P > const &m, T const &epsilon)
 

Detailed Description

OpenGL Mathematics (glm.g-truc.net)

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTC_matrix_integer

-
Date
2011-01-20 / 2011-06-05
+

GLM_GTX_matrix_query

+
Date
2007-03-05 / 2011-08-28
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
+
See also
GLM Core (dependence)
+
+GLM_GTX_vector_query (dependence)
-

Definition in file matrix_integer.hpp.

+

Definition in file matrix_query.hpp.

diff --git a/doc/api/a00074_source.html b/doc/api/a00074_source.html index 02b9e3dd..fc7c31a9 100644 --- a/doc/api/a00074_source.html +++ b/doc/api/a00074_source.html @@ -3,8 +3,8 @@ - -GLM: matrix_integer.hpp Source File + +0.9.6: matrix_query.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,400 +41,68 @@
-
matrix_integer.hpp
+
matrix_query.hpp
Go to the documentation of this file.
1 
-
37 #ifndef GLM_GTC_matrix_integer
-
38 #define GLM_GTC_matrix_integer
-
39 
-
40 // Dependency:
-
41 #include "../mat2x2.hpp"
-
42 #include "../mat2x3.hpp"
-
43 #include "../mat2x4.hpp"
-
44 #include "../mat3x2.hpp"
-
45 #include "../mat3x3.hpp"
-
46 #include "../mat3x4.hpp"
-
47 #include "../mat4x2.hpp"
-
48 #include "../mat4x3.hpp"
-
49 #include "../mat4x4.hpp"
-
50 
-
51 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
52 # pragma message("GLM: GLM_GTC_matrix_integer extension included")
-
53 #endif
-
54 
-
55 namespace glm
-
56 {
-
59 
-
62  typedef detail::tmat2x2<int, highp> highp_imat2;
-
63 
-
66  typedef detail::tmat3x3<int, highp> highp_imat3;
-
67 
-
70  typedef detail::tmat4x4<int, highp> highp_imat4;
-
71 
-
74  typedef detail::tmat2x2<int, highp> highp_imat2x2;
-
75 
-
78  typedef detail::tmat2x3<int, highp> highp_imat2x3;
-
79 
-
82  typedef detail::tmat2x4<int, highp> highp_imat2x4;
+
43 #pragma once
+
44 
+
45 // Dependency:
+
46 #include "../glm.hpp"
+
47 #include "../gtx/vector_query.hpp"
+
48 #include <limits>
+
49 
+
50 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+
51 # pragma message("GLM: GLM_GTX_matrix_query extension included")
+
52 #endif
+
53 
+
54 namespace glm
+
55 {
+
58 
+
61  template<typename T, precision P>
+
62  GLM_FUNC_DECL bool isNull(tmat2x2<T, P> const & m, T const & epsilon);
+
63 
+
66  template<typename T, precision P>
+
67  GLM_FUNC_DECL bool isNull(tmat3x3<T, P> const & m, T const & epsilon);
+
68 
+
71  template<typename T, precision P>
+
72  GLM_FUNC_DECL bool isNull(tmat4x4<T, P> const & m, T const & epsilon);
+
73 
+
76  template<typename T, precision P, template <typename, precision> class matType>
+
77  GLM_FUNC_DECL bool isIdentity(matType<T, P> const & m, T const & epsilon);
+
78 
+
81  template<typename T, precision P>
+
82  GLM_FUNC_DECL bool isNormalized(tmat2x2<T, P> const & m, T const & epsilon);
83 
-
86  typedef detail::tmat3x2<int, highp> highp_imat3x2;
-
87 
-
90  typedef detail::tmat3x3<int, highp> highp_imat3x3;
-
91 
-
94  typedef detail::tmat3x4<int, highp> highp_imat3x4;
-
95 
-
98  typedef detail::tmat4x2<int, highp> highp_imat4x2;
-
99 
-
102  typedef detail::tmat4x3<int, highp> highp_imat4x3;
-
103 
-
106  typedef detail::tmat4x4<int, highp> highp_imat4x4;
-
107 
-
108 
-
111  typedef detail::tmat2x2<int, mediump> mediump_imat2;
-
112 
-
115  typedef detail::tmat3x3<int, mediump> mediump_imat3;
-
116 
-
119  typedef detail::tmat4x4<int, mediump> mediump_imat4;
-
120 
-
121 
-
124  typedef detail::tmat2x2<int, mediump> mediump_imat2x2;
-
125 
-
128  typedef detail::tmat2x3<int, mediump> mediump_imat2x3;
-
129 
-
132  typedef detail::tmat2x4<int, mediump> mediump_imat2x4;
-
133 
-
136  typedef detail::tmat3x2<int, mediump> mediump_imat3x2;
-
137 
-
140  typedef detail::tmat3x3<int, mediump> mediump_imat3x3;
-
141 
-
144  typedef detail::tmat3x4<int, mediump> mediump_imat3x4;
-
145 
-
148  typedef detail::tmat4x2<int, mediump> mediump_imat4x2;
-
149 
-
152  typedef detail::tmat4x3<int, mediump> mediump_imat4x3;
-
153 
-
156  typedef detail::tmat4x4<int, mediump> mediump_imat4x4;
-
157 
-
158 
-
161  typedef detail::tmat2x2<int, lowp> lowp_imat2;
-
162 
-
165  typedef detail::tmat3x3<int, lowp> lowp_imat3;
-
166 
-
169  typedef detail::tmat4x4<int, lowp> lowp_imat4;
-
170 
-
171 
-
174  typedef detail::tmat2x2<int, lowp> lowp_imat2x2;
-
175 
-
178  typedef detail::tmat2x3<int, lowp> lowp_imat2x3;
-
179 
-
182  typedef detail::tmat2x4<int, lowp> lowp_imat2x4;
-
183 
-
186  typedef detail::tmat3x2<int, lowp> lowp_imat3x2;
-
187 
-
190  typedef detail::tmat3x3<int, lowp> lowp_imat3x3;
-
191 
-
194  typedef detail::tmat3x4<int, lowp> lowp_imat3x4;
-
195 
-
198  typedef detail::tmat4x2<int, lowp> lowp_imat4x2;
-
199 
-
202  typedef detail::tmat4x3<int, lowp> lowp_imat4x3;
-
203 
-
206  typedef detail::tmat4x4<int, lowp> lowp_imat4x4;
-
207 
-
208 
-
211  typedef detail::tmat2x2<uint, highp> highp_umat2;
-
212 
-
215  typedef detail::tmat3x3<uint, highp> highp_umat3;
-
216 
-
219  typedef detail::tmat4x4<uint, highp> highp_umat4;
-
220 
-
223  typedef detail::tmat2x2<uint, highp> highp_umat2x2;
-
224 
-
227  typedef detail::tmat2x3<uint, highp> highp_umat2x3;
-
228 
-
231  typedef detail::tmat2x4<uint, highp> highp_umat2x4;
-
232 
-
235  typedef detail::tmat3x2<uint, highp> highp_umat3x2;
-
236 
-
239  typedef detail::tmat3x3<uint, highp> highp_umat3x3;
-
240 
-
243  typedef detail::tmat3x4<uint, highp> highp_umat3x4;
-
244 
-
247  typedef detail::tmat4x2<uint, highp> highp_umat4x2;
-
248 
-
251  typedef detail::tmat4x3<uint, highp> highp_umat4x3;
-
252 
-
255  typedef detail::tmat4x4<uint, highp> highp_umat4x4;
-
256 
-
257 
-
260  typedef detail::tmat2x2<uint, mediump> mediump_umat2;
-
261 
-
264  typedef detail::tmat3x3<uint, mediump> mediump_umat3;
-
265 
-
268  typedef detail::tmat4x4<uint, mediump> mediump_umat4;
-
269 
-
270 
-
273  typedef detail::tmat2x2<uint, mediump> mediump_umat2x2;
-
274 
-
277  typedef detail::tmat2x3<uint, mediump> mediump_umat2x3;
-
278 
-
281  typedef detail::tmat2x4<uint, mediump> mediump_umat2x4;
-
282 
-
285  typedef detail::tmat3x2<uint, mediump> mediump_umat3x2;
-
286 
-
289  typedef detail::tmat3x3<uint, mediump> mediump_umat3x3;
-
290 
-
293  typedef detail::tmat3x4<uint, mediump> mediump_umat3x4;
-
294 
-
297  typedef detail::tmat4x2<uint, mediump> mediump_umat4x2;
-
298 
-
301  typedef detail::tmat4x3<uint, mediump> mediump_umat4x3;
-
302 
-
305  typedef detail::tmat4x4<uint, mediump> mediump_umat4x4;
-
306 
-
307 
-
310  typedef detail::tmat2x2<uint, lowp> lowp_umat2;
-
311 
-
314  typedef detail::tmat3x3<uint, lowp> lowp_umat3;
-
315 
-
318  typedef detail::tmat4x4<uint, lowp> lowp_umat4;
-
319 
-
320 
-
323  typedef detail::tmat2x2<uint, lowp> lowp_umat2x2;
-
324 
-
327  typedef detail::tmat2x3<uint, lowp> lowp_umat2x3;
-
328 
-
331  typedef detail::tmat2x4<uint, lowp> lowp_umat2x4;
-
332 
-
335  typedef detail::tmat3x2<uint, lowp> lowp_umat3x2;
-
336 
-
339  typedef detail::tmat3x3<uint, lowp> lowp_umat3x3;
-
340 
-
343  typedef detail::tmat3x4<uint, lowp> lowp_umat3x4;
-
344 
-
347  typedef detail::tmat4x2<uint, lowp> lowp_umat4x2;
-
348 
-
351  typedef detail::tmat4x3<uint, lowp> lowp_umat4x3;
-
352 
-
355  typedef detail::tmat4x4<uint, lowp> lowp_umat4x4;
-
356 
-
357 #if(defined(GLM_PRECISION_HIGHP_INT))
-
358  typedef highp_imat2 imat2;
-
359  typedef highp_imat3 imat3;
-
360  typedef highp_imat4 imat4;
-
361  typedef highp_imat2x2 imat2x2;
-
362  typedef highp_imat2x3 imat2x3;
-
363  typedef highp_imat2x4 imat2x4;
-
364  typedef highp_imat3x2 imat3x2;
-
365  typedef highp_imat3x3 imat3x3;
-
366  typedef highp_imat3x4 imat3x4;
-
367  typedef highp_imat4x2 imat4x2;
-
368  typedef highp_imat4x3 imat4x3;
-
369  typedef highp_imat4x4 imat4x4;
-
370 #elif(defined(GLM_PRECISION_LOWP_INT))
-
371  typedef lowp_imat2 imat2;
-
372  typedef lowp_imat3 imat3;
-
373  typedef lowp_imat4 imat4;
-
374  typedef lowp_imat2x2 imat2x2;
-
375  typedef lowp_imat2x3 imat2x3;
-
376  typedef lowp_imat2x4 imat2x4;
-
377  typedef lowp_imat3x2 imat3x2;
-
378  typedef lowp_imat3x3 imat3x3;
-
379  typedef lowp_imat3x4 imat3x4;
-
380  typedef lowp_imat4x2 imat4x2;
-
381  typedef lowp_imat4x3 imat4x3;
-
382  typedef lowp_imat4x4 imat4x4;
-
383 #else //if(defined(GLM_PRECISION_MEDIUMP_INT))
-
384 
- -
388 
- -
392 
- -
396 
- -
400 
- -
404 
- -
408 
- -
412 
- -
416 
- -
420 
- -
424 
- -
428 
- -
432 #endif//GLM_PRECISION
-
433 
-
434 #if(defined(GLM_PRECISION_HIGHP_UINT))
-
435  typedef highp_umat2 umat2;
-
436  typedef highp_umat3 umat3;
-
437  typedef highp_umat4 umat4;
-
438  typedef highp_umat2x2 umat2x2;
-
439  typedef highp_umat2x3 umat2x3;
-
440  typedef highp_umat2x4 umat2x4;
-
441  typedef highp_umat3x2 umat3x2;
-
442  typedef highp_umat3x3 umat3x3;
-
443  typedef highp_umat3x4 umat3x4;
-
444  typedef highp_umat4x2 umat4x2;
-
445  typedef highp_umat4x3 umat4x3;
-
446  typedef highp_umat4x4 umat4x4;
-
447 #elif(defined(GLM_PRECISION_LOWP_UINT))
-
448  typedef lowp_umat2 umat2;
-
449  typedef lowp_umat3 umat3;
-
450  typedef lowp_umat4 umat4;
-
451  typedef lowp_umat2x2 umat2x2;
-
452  typedef lowp_umat2x3 umat2x3;
-
453  typedef lowp_umat2x4 umat2x4;
-
454  typedef lowp_umat3x2 umat3x2;
-
455  typedef lowp_umat3x3 umat3x3;
-
456  typedef lowp_umat3x4 umat3x4;
-
457  typedef lowp_umat4x2 umat4x2;
-
458  typedef lowp_umat4x3 umat4x3;
-
459  typedef lowp_umat4x4 umat4x4;
-
460 #else //if(defined(GLM_PRECISION_MEDIUMP_UINT))
-
461 
- -
465 
- -
469 
- -
473 
- -
477 
- -
481 
- -
485 
- -
489 
- -
493 
- -
497 
- -
501 
- -
505 
- -
509 #endif//GLM_PRECISION
-
510 
-
512 }//namespace glm
-
513 
-
514 #endif//GLM_GTC_matrix_integer
-
detail::tmat4x2< int, mediump > mediump_imat4x2
Medium-precision signed integer 4x2 matrix.
-
detail::tmat3x3< uint, lowp > lowp_umat3x3
Low-precision unsigned integer 3x3 matrix.
-
detail::tmat4x3< int, mediump > mediump_imat4x3
Medium-precision signed integer 4x3 matrix.
-
detail::tmat3x3< uint, highp > highp_umat3
High-precision unsigned integer 3x3 matrix.
-
detail::tmat2x2< int, lowp > lowp_imat2x2
Low-precision signed integer 2x2 matrix.
-
detail::tmat3x3< uint, lowp > lowp_umat3
Low-precision unsigned integer 3x3 matrix.
-
mediump_umat3x2 umat3x2
Unsigned integer 3x2 matrix.
-
detail::tmat2x2< uint, lowp > lowp_umat2
Low-precision unsigned integer 2x2 matrix.
-
detail::tmat2x4< uint, highp > highp_umat2x4
High-precision unsigned integer 2x4 matrix.
-
detail::tmat3x2< uint, lowp > lowp_umat3x2
Low-precision unsigned integer 3x2 matrix.
-
detail::tmat4x4< int, mediump > mediump_imat4x4
Medium-precision signed integer 4x4 matrix.
-
mediump_imat4x2 imat4x2
Signed integer 4x2 matrix.
-
detail::tmat2x2< uint, highp > highp_umat2
High-precision unsigned integer 2x2 matrix.
-
detail::tmat3x2< int, mediump > mediump_imat3x2
Medium-precision signed integer 3x2 matrix.
-
mediump_imat4x3 imat4x3
Signed integer 4x3 matrix.
-
mediump_imat2x4 imat2x4
Signed integer 2x4 matrix.
-
detail::tmat3x4< int, highp > highp_imat3x4
High-precision signed integer 3x4 matrix.
-
mediump_umat3x4 umat3x4
Unsigned integer 3x4 matrix.
-
mediump_imat2 imat2
Signed integer 2x2 matrix.
-
detail::tmat2x3< int, mediump > mediump_imat2x3
Medium-precision signed integer 2x3 matrix.
-
detail::tmat2x3< uint, mediump > mediump_umat2x3
Medium-precision unsigned integer 2x3 matrix.
-
detail::tmat2x2< int, highp > highp_imat2
High-precision signed integer 2x2 matrix.
-
detail::tmat2x4< uint, mediump > mediump_umat2x4
Medium-precision unsigned integer 2x4 matrix.
-
detail::tmat4x4< int, highp > highp_imat4
High-precision signed integer 4x4 matrix.
-
detail::tmat4x4< uint, highp > highp_umat4
High-precision unsigned integer 4x4 matrix.
-
detail::tmat2x2< uint, lowp > lowp_umat2x2
Low-precision unsigned integer 2x2 matrix.
-
detail::tmat4x3< uint, highp > highp_umat4x3
High-precision unsigned integer 4x3 matrix.
-
detail::tmat2x2< uint, mediump > mediump_umat2
Medium-precision unsigned integer 2x2 matrix.
-
detail::tmat3x4< int, mediump > mediump_imat3x4
Medium-precision signed integer 3x4 matrix.
-
detail::tmat2x4< uint, lowp > lowp_umat2x4
Low-precision unsigned integer 2x4 matrix.
-
detail::tmat3x3< uint, mediump > mediump_umat3
Medium-precision unsigned integer 3x3 matrix.
-
detail::tmat4x2< uint, highp > highp_umat4x2
High-precision unsigned integer 4x2 matrix.
-
mediump_umat4x3 umat4x3
Unsigned integer 4x3 matrix.
-
detail::tmat2x2< uint, mediump > mediump_umat2x2
Medium-precision unsigned integer 2x2 matrix.
-
detail::tmat4x2< uint, mediump > mediump_umat4x2
Medium-precision unsigned integer 4x2 matrix.
-
detail::tmat4x4< int, lowp > lowp_imat4x4
Low-precision signed integer 4x4 matrix.
-
mediump_imat3x2 imat3x2
Signed integer 3x2 matrix.
-
detail::tmat3x4< uint, lowp > lowp_umat3x4
Low-precision unsigned integer 3x4 matrix.
-
detail::tmat3x2< int, lowp > lowp_imat3x2
Low-precision signed integer 3x2 matrix.
-
detail::tmat4x4< uint, lowp > lowp_umat4
Low-precision unsigned integer 4x4 matrix.
-
detail::tmat3x2< uint, highp > highp_umat3x2
High-precision unsigned integer 3x2 matrix.
-
detail::tmat4x2< uint, lowp > lowp_umat4x2
Low-precision unsigned integer 4x2 matrix.
-
detail::tmat3x3< uint, mediump > mediump_umat3x3
Medium-precision unsigned integer 3x3 matrix.
-
detail::tmat4x4< int, highp > highp_imat4x4
High-precision signed integer 4x4 matrix.
-
detail::tmat2x2< int, mediump > mediump_imat2
Medium-precision signed integer 2x2 matrix.
-
mediump_imat4x4 imat4x4
Signed integer 4x4 matrix.
-
mediump_umat4 umat4
Unsigned integer 4x4 matrix.
-
detail::tmat4x3< int, lowp > lowp_imat4x3
Low-precision signed integer 4x3 matrix.
-
detail::tmat2x3< int, lowp > lowp_imat2x3
Low-precision signed integer 2x3 matrix.
-
mediump_imat3x3 imat3x3
Signed integer 3x3 matrix.
-
mediump_umat3 umat3
Unsigned integer 3x3 matrix.
-
detail::tmat2x3< uint, highp > highp_umat2x3
High-precision unsigned integer 2x3 matrix.
-
detail::tmat4x3< uint, lowp > lowp_umat4x3
Low-precision unsigned integer 4x3 matrix.
-
detail::tmat3x4< int, lowp > lowp_imat3x4
Low-precision signed integer 3x4 matrix.
-
mediump_umat4x2 umat4x2
Unsigned integer 4x2 matrix.
-
detail::tmat2x4< int, lowp > lowp_imat2x4
Low-precision signed integer 2x4 matrix.
-
mediump_imat4 imat4
Signed integer 4x4 matrix.
-
detail::tmat2x4< int, highp > highp_imat2x4
High-precision signed integer 2x4 matrix.
-
detail::tmat4x4< int, mediump > mediump_imat4
Medium-precision signed integer 4x4 matrix.
-
detail::tmat3x3< int, lowp > lowp_imat3
Low-precision signed integer 3x3 matrix.
-
detail::tmat4x4< uint, highp > highp_umat4x4
High-precision unsigned integer 4x4 matrix.
-
detail::tmat4x2< int, highp > highp_imat4x2
High-precision signed integer 4x2 matrix.
-
detail::tmat2x2< int, mediump > mediump_imat2x2
Medium-precision signed integer 2x2 matrix.
-
mediump_imat2x3 imat2x3
Signed integer 2x3 matrix.
-
detail::tmat2x2< int, lowp > lowp_imat2
Low-precision signed integer 2x2 matrix.
-
detail::tmat2x4< int, mediump > mediump_imat2x4
Medium-precision signed integer 2x4 matrix.
-
detail::tmat2x2< int, highp > highp_imat2x2
High-precision signed integer 2x2 matrix.
-
detail::tmat3x2< uint, mediump > mediump_umat3x2
Medium-precision unsigned integer 3x2 matrix.
-
mediump_umat3x3 umat3x3
Unsigned integer 3x3 matrix.
-
detail::tmat3x2< int, highp > highp_imat3x2
High-precision signed integer 3x2 matrix.
-
mediump_umat2 umat2
Unsigned integer 2x2 matrix.
-
detail::tmat3x3< int, mediump > mediump_imat3
Medium-precision signed integer 3x3 matrix.
-
mediump_umat2x2 umat2x2
Unsigned integer 2x2 matrix.
-
detail::tmat3x3< int, highp > highp_imat3
High-precision signed integer 3x3 matrix.
-
detail::tmat3x3< int, mediump > mediump_imat3x3
Medium-precision signed integer 3x3 matrix.
-
detail::tmat4x3< uint, mediump > mediump_umat4x3
Medium-precision unsigned integer 4x3 matrix.
-
mediump_umat4x4 umat4x4
Unsigned integer 4x4 matrix.
-
mediump_imat3 imat3
Signed integer 3x3 matrix.
-
mediump_imat2x2 imat2x2
Signed integer 2x2 matrix.
-
detail::tmat3x3< int, highp > highp_imat3x3
High-precision signed integer 3x3 matrix.
-
detail::tmat4x4< uint, mediump > mediump_umat4
Medium-precision unsigned integer 4x4 matrix.
-
detail::tmat3x4< uint, mediump > mediump_umat3x4
Medium-precision unsigned integer 3x4 matrix.
-
detail::tmat4x3< int, highp > highp_imat4x3
High-precision signed integer 4x3 matrix.
-
detail::tmat4x4< uint, lowp > lowp_umat4x4
Low-precision unsigned integer 4x4 matrix.
-
detail::tmat2x2< uint, highp > highp_umat2x2
High-precision unsigned integer 2x2 matrix.
-
detail::tmat4x4< uint, mediump > mediump_umat4x4
Medium-precision unsigned integer 4x4 matrix.
-
detail::tmat4x2< int, lowp > lowp_imat4x2
Low-precision signed integer 4x2 matrix.
-
detail::tmat2x3< uint, lowp > lowp_umat2x3
Low-precision unsigned integer 2x3 matrix.
-
detail::tmat3x3< int, lowp > lowp_imat3x3
Low-precision signed integer 3x3 matrix.
-
mediump_umat2x4 umat2x4
Unsigned integer 2x4 matrix.
-
mediump_umat2x3 umat2x3
Unsigned integer 2x3 matrix.
-
detail::tmat3x4< uint, highp > highp_umat3x4
High-precision unsigned integer 3x4 matrix.
-
detail::tmat4x4< int, lowp > lowp_imat4
Low-precision signed integer 4x4 matrix.
-
detail::tmat3x3< uint, highp > highp_umat3x3
High-precision unsigned integer 3x3 matrix.
-
detail::tmat2x3< int, highp > highp_imat2x3
High-precision signed integer 2x3 matrix.
-
mediump_imat3x4 imat3x4
Signed integer 3x4 matrix.
+
86  template<typename T, precision P>
+
87  GLM_FUNC_DECL bool isNormalized(tmat3x3<T, P> const & m, T const & epsilon);
+
88 
+
91  template<typename T, precision P>
+
92  GLM_FUNC_DECL bool isNormalized(tmat4x4<T, P> const & m, T const & epsilon);
+
93 
+
96  template<typename T, precision P, template <typename, precision> class matType>
+
97  GLM_FUNC_DECL bool isOrthogonal(matType<T, P> const & m, T const & epsilon);
+
98 
+
100 }//namespace glm
+
101 
+
102 #include "matrix_query.inl"
+
GLM_FUNC_DECL bool isNull(tmat4x4< T, P > const &m, T const &epsilon)
Return whether a matrix is a null matrix.
+
GLM_FUNC_DECL bool isIdentity(matType< T, P > const &m, T const &epsilon)
Return whether a matrix is an identity matrix.
+
GLM_FUNC_DECL bool isNormalized(tmat4x4< T, P > const &m, T const &epsilon)
Return whether a matrix is a normalized matrix.
+
GLM_FUNC_DECL bool isOrthogonal(matType< T, P > const &m, T const &epsilon)
Return whether a matrix is an orthonormalized matrix.
+
Definition: _noise.hpp:39
+
GLM_FUNC_DECL genType epsilon()
Return the epsilon constant for floating point types.
diff --git a/doc/api/a00075.html b/doc/api/a00075.html index d4a8f038..129d7806 100644 --- a/doc/api/a00075.html +++ b/doc/api/a00075.html @@ -3,8 +3,8 @@ - -GLM: matrix_interpolation.hpp File Reference + +0.9.6: matrix_transform.hpp File Reference @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,57 +41,97 @@
-Namespaces | Functions
-
matrix_interpolation.hpp File Reference
+
matrix_transform.hpp File Reference

Go to the source code of this file.

- - - -

-Namespaces

 glm
 
- - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Functions

template<typename T , precision P>
void axisAngle (detail::tmat4x4< T, P > const &mat, detail::tvec3< T, P > &axis, T &angle)
 
template<typename T , precision P>
detail::tmat4x4< T, P > axisAngleMatrix (detail::tvec3< T, P > const &axis, T const angle)
 
template<typename T , precision P>
detail::tmat4x4< T, P > extractMatrixRotation (detail::tmat4x4< T, P > const &mat)
 
template<typename T , precision P>
detail::tmat4x4< T, P > interpolate (detail::tmat4x4< T, P > const &m1, detail::tmat4x4< T, P > const &m2, T const delta)
 
template<typename T >
GLM_FUNC_DECL tmat4x4< T,
+defaultp > 
frustum (T left, T right, T bottom, T top, T near, T far)
 
template<typename T >
GLM_FUNC_DECL tmat4x4< T,
+defaultp > 
infinitePerspective (T fovy, T aspect, T near)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat4x4< T, P > lookAt (tvec3< T, P > const &eye, tvec3< T, P > const &center, tvec3< T, P > const &up)
 
template<typename T >
GLM_FUNC_DECL tmat4x4< T,
+defaultp > 
ortho (T left, T right, T bottom, T top, T zNear, T zFar)
 
template<typename T >
GLM_FUNC_DECL tmat4x4< T,
+defaultp > 
ortho (T left, T right, T bottom, T top)
 
template<typename T >
GLM_FUNC_DECL tmat4x4< T,
+defaultp > 
perspective (T fovy, T aspect, T near, T far)
 
template<typename T >
GLM_FUNC_DECL tmat4x4< T,
+defaultp > 
perspectiveFov (T fov, T width, T height, T near, T far)
 
template<typename T , precision P, typename U >
GLM_FUNC_DECL tmat4x4< T, P > pickMatrix (tvec2< T, P > const &center, tvec2< T, P > const &delta, tvec4< U, P > const &viewport)
 
template<typename T , typename U , precision P>
GLM_FUNC_DECL tvec3< T, P > project (tvec3< T, P > const &obj, tmat4x4< T, P > const &model, tmat4x4< T, P > const &proj, tvec4< U, P > const &viewport)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat4x4< T, P > rotate (tmat4x4< T, P > const &m, T angle, tvec3< T, P > const &axis)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat4x4< T, P > scale (tmat4x4< T, P > const &m, tvec3< T, P > const &v)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat4x4< T, P > translate (tmat4x4< T, P > const &m, tvec3< T, P > const &v)
 
template<typename T >
GLM_FUNC_DECL tmat4x4< T,
+defaultp > 
tweakedInfinitePerspective (T fovy, T aspect, T near)
 
template<typename T >
GLM_FUNC_DECL tmat4x4< T,
+defaultp > 
tweakedInfinitePerspective (T fovy, T aspect, T near, T ep)
 
template<typename T , typename U , precision P>
GLM_FUNC_DECL tvec3< T, P > unProject (tvec3< T, P > const &win, tmat4x4< T, P > const &model, tmat4x4< T, P > const &proj, tvec4< U, P > const &viewport)
 

Detailed Description

OpenGL Mathematics (glm.g-truc.net)

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_matrix_interpolation

-
Date
2011-03-05 / 2011-06-07
-
Author
Ghenadii Ursachi (the.a.nosp@m.ster.nosp@m.oth@g.nosp@m.mail.nosp@m..com)
-
See Also
GLM Core (dependence)
+

GLM_GTC_matrix_transform

+
Date
2009-04-29 / 2011-05-16
+
Author
Christophe Riccio
+
See also
GLM Core (dependence)
+
+GLM_GTX_transform
+
+GLM_GTX_transform2
-

Definition in file matrix_interpolation.hpp.

+

Definition in file matrix_transform.hpp.

diff --git a/doc/api/a00075_source.html b/doc/api/a00075_source.html index 558af6fc..fbbca2d2 100644 --- a/doc/api/a00075_source.html +++ b/doc/api/a00075_source.html @@ -3,8 +3,8 @@ - -GLM: matrix_interpolation.hpp Source File + +0.9.6: matrix_transform.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,66 +41,151 @@
-
matrix_interpolation.hpp
+
matrix_transform.hpp
Go to the documentation of this file.
1 
-
38 #ifndef GLM_GTX_matrix_interpolation
-
39 #define GLM_GTX_matrix_interpolation
-
40 
-
41 // Dependency:
-
42 #include "../glm.hpp"
-
43 
-
44 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
45 # pragma message("GLM: GLM_GTX_matrix_interpolation extension included")
-
46 #endif
-
47 
-
48 namespace glm
-
49 {
-
52 
-
55  template <typename T, precision P>
-
56  void axisAngle(
-
57  detail::tmat4x4<T, P> const & mat,
-
58  detail::tvec3<T, P> & axis,
-
59  T & angle);
-
60 
-
63  template <typename T, precision P>
-
64  detail::tmat4x4<T, P> axisAngleMatrix(
-
65  detail::tvec3<T, P> const & axis,
-
66  T const angle);
+
50 #pragma once
+
51 
+
52 // Dependencies
+
53 #include "../mat4x4.hpp"
+
54 #include "../vec2.hpp"
+
55 #include "../vec3.hpp"
+
56 #include "../vec4.hpp"
+
57 #include "../gtc/constants.hpp"
+
58 
+
59 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+
60 # pragma message("GLM: GLM_GTC_matrix_transform extension included")
+
61 #endif
+
62 
+
63 namespace glm
+
64 {
67 
-
70  template <typename T, precision P>
-
71  detail::tmat4x4<T, P> extractMatrixRotation(
-
72  detail::tmat4x4<T, P> const & mat);
-
73 
-
77  template <typename T, precision P>
-
78  detail::tmat4x4<T, P> interpolate(
-
79  detail::tmat4x4<T, P> const & m1,
-
80  detail::tmat4x4<T, P> const & m2,
-
81  T const delta);
-
82 
-
84 }//namespace glm
-
85 
-
86 #include "matrix_interpolation.inl"
-
87 
-
88 #endif//GLM_GTX_matrix_interpolation
-
GLM_FUNC_DECL T angle(detail::tquat< T, P > const &x)
Returns the quaternion rotation angle.
-
detail::tmat4x4< T, P > extractMatrixRotation(detail::tmat4x4< T, P > const &mat)
Extracts the rotation part of a matrix.
-
void axisAngle(detail::tmat4x4< T, P > const &mat, detail::tvec3< T, P > &axis, T &angle)
Get the axis and angle of the rotation from a matrix.
-
detail::tmat4x4< T, P > interpolate(detail::tmat4x4< T, P > const &m1, detail::tmat4x4< T, P > const &m2, T const delta)
Build a interpolation of 4 * 4 matrixes.
-
detail::tmat4x4< T, P > axisAngleMatrix(detail::tvec3< T, P > const &axis, T const angle)
Build a matrix from axis and angle.
-
GLM_FUNC_DECL detail::tvec3< T, P > axis(detail::tquat< T, P > const &x)
Returns the q rotation axis.
+
86  template <typename T, precision P>
+
87  GLM_FUNC_DECL tmat4x4<T, P> translate(
+
88  tmat4x4<T, P> const & m,
+
89  tvec3<T, P> const & v);
+
90 
+
100  template <typename T, precision P>
+
101  GLM_FUNC_DECL tmat4x4<T, P> rotate(
+
102  tmat4x4<T, P> const & m,
+
103  T angle,
+
104  tvec3<T, P> const & axis);
+
105 
+
114  template <typename T, precision P>
+
115  GLM_FUNC_DECL tmat4x4<T, P> scale(
+
116  tmat4x4<T, P> const & m,
+
117  tvec3<T, P> const & v);
+
118 
+
130  template <typename T>
+
131  GLM_FUNC_DECL tmat4x4<T, defaultp> ortho(
+
132  T left,
+
133  T right,
+
134  T bottom,
+
135  T top,
+
136  T zNear,
+
137  T zFar);
+
138 
+
148  template <typename T>
+
149  GLM_FUNC_DECL tmat4x4<T, defaultp> ortho(
+
150  T left,
+
151  T right,
+
152  T bottom,
+
153  T top);
+
154 
+
165  template <typename T>
+
166  GLM_FUNC_DECL tmat4x4<T, defaultp> frustum(
+
167  T left,
+
168  T right,
+
169  T bottom,
+
170  T top,
+
171  T near,
+
172  T far);
+
173 
+
182  template <typename T>
+
183  GLM_FUNC_DECL tmat4x4<T, defaultp> perspective(
+
184  T fovy,
+
185  T aspect,
+
186  T near,
+
187  T far);
+
188 
+
198  template <typename T>
+
199  GLM_FUNC_DECL tmat4x4<T, defaultp> perspectiveFov(
+
200  T fov,
+
201  T width,
+
202  T height,
+
203  T near,
+
204  T far);
+
205 
+
213  template <typename T>
+
214  GLM_FUNC_DECL tmat4x4<T, defaultp> infinitePerspective(
+
215  T fovy, T aspect, T near);
+
216 
+
224  template <typename T>
+
225  GLM_FUNC_DECL tmat4x4<T, defaultp> tweakedInfinitePerspective(
+
226  T fovy, T aspect, T near);
+
227 
+
236  template <typename T>
+
237  GLM_FUNC_DECL tmat4x4<T, defaultp> tweakedInfinitePerspective(
+
238  T fovy, T aspect, T near, T ep);
+
239 
+
250  template <typename T, typename U, precision P>
+
251  GLM_FUNC_DECL tvec3<T, P> project(
+
252  tvec3<T, P> const & obj,
+
253  tmat4x4<T, P> const & model,
+
254  tmat4x4<T, P> const & proj,
+
255  tvec4<U, P> const & viewport);
+
256 
+
267  template <typename T, typename U, precision P>
+
268  GLM_FUNC_DECL tvec3<T, P> unProject(
+
269  tvec3<T, P> const & win,
+
270  tmat4x4<T, P> const & model,
+
271  tmat4x4<T, P> const & proj,
+
272  tvec4<U, P> const & viewport);
+
273 
+
282  template <typename T, precision P, typename U>
+
283  GLM_FUNC_DECL tmat4x4<T, P> pickMatrix(
+
284  tvec2<T, P> const & center,
+
285  tvec2<T, P> const & delta,
+
286  tvec4<U, P> const & viewport);
+
287 
+
295  template <typename T, precision P>
+
296  GLM_FUNC_DECL tmat4x4<T, P> lookAt(
+
297  tvec3<T, P> const & eye,
+
298  tvec3<T, P> const & center,
+
299  tvec3<T, P> const & up);
+
300 
+
302 }//namespace glm
+
303 
+
304 #include "matrix_transform.inl"
+
GLM_FUNC_DECL tmat4x4< T, defaultp > ortho(T left, T right, T bottom, T top)
Creates a matrix for projecting two-dimensional coordinates onto the screen.
+
GLM_FUNC_DECL tmat4x4< T, P > scale(tmat4x4< T, P > const &m, tvec3< T, P > const &v)
Builds a scale 4 * 4 matrix created from 3 scalars.
+
GLM_FUNC_DECL vecType proj(vecType const &x, vecType const &Normal)
Projects x on Normal.
+
GLM_FUNC_DECL tvec3< T, P > project(tvec3< T, P > const &obj, tmat4x4< T, P > const &model, tmat4x4< T, P > const &proj, tvec4< U, P > const &viewport)
Map the specified object coordinates (obj.x, obj.y, obj.z) into window coordinates.
+
GLM_FUNC_DECL tvec3< T, P > axis(tquat< T, P > const &x)
Returns the q rotation axis.
+
GLM_FUNC_DECL tmat4x4< T, defaultp > perspectiveFov(T fov, T width, T height, T near, T far)
Builds a perspective projection matrix based on a field of view.
+
GLM_FUNC_DECL T angle(tquat< T, P > const &x)
Returns the quaternion rotation angle.
+
GLM_FUNC_DECL tmat4x4< T, P > translate(tmat4x4< T, P > const &m, tvec3< T, P > const &v)
Builds a translation 4 * 4 matrix created from a vector of 3 components.
+
GLM_FUNC_DECL tmat4x4< T, defaultp > frustum(T left, T right, T bottom, T top, T near, T far)
Creates a frustum matrix.
+
GLM_FUNC_DECL tmat4x4< T, defaultp > tweakedInfinitePerspective(T fovy, T aspect, T near, T ep)
Creates a matrix for a symmetric perspective-view frustum with far plane at infinite for graphics har...
+
GLM_FUNC_DECL tmat4x4< T, P > rotate(tmat4x4< T, P > const &m, T angle, tvec3< T, P > const &axis)
Builds a rotation 4 * 4 matrix created from an axis vector and an angle.
+
Definition: _noise.hpp:39
+
GLM_FUNC_DECL tmat4x4< T, defaultp > perspective(T fovy, T aspect, T near, T far)
Creates a matrix for a symetric perspective-view frustum.
+
GLM_FUNC_DECL tvec3< T, P > unProject(tvec3< T, P > const &win, tmat4x4< T, P > const &model, tmat4x4< T, P > const &proj, tvec4< U, P > const &viewport)
Map the specified window coordinates (win.x, win.y, win.z) into object coordinates.
+
GLM_FUNC_DECL tmat4x4< T, P > pickMatrix(tvec2< T, P > const &center, tvec2< T, P > const &delta, tvec4< U, P > const &viewport)
Define a picking region.
+
GLM_FUNC_DECL tmat4x4< T, defaultp > infinitePerspective(T fovy, T aspect, T near)
Creates a matrix for a symmetric perspective-view frustum with far plane at infinite.
+
GLM_FUNC_DECL tmat4x4< T, P > lookAt(tvec3< T, P > const &eye, tvec3< T, P > const &center, tvec3< T, P > const &up)
Build a look at view matrix.
diff --git a/doc/api/a00076.html b/doc/api/a00076.html index 4479d163..d9ce0750 100644 --- a/doc/api/a00076.html +++ b/doc/api/a00076.html @@ -3,8 +3,8 @@ - -GLM: matrix_inverse.hpp File Reference + +0.9.6: matrix_transform_2d.hpp File Reference @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,52 +41,55 @@
-Namespaces | Functions
-
matrix_inverse.hpp File Reference
+
matrix_transform_2d.hpp File Reference

Go to the source code of this file.

- - - -

-Namespaces

 glm
 
- - - - - - + + + + + + + + + + + + + + +

Functions

template<typename genType >
GLM_FUNC_QUALIFIER genType affineInverse (genType const &m)
 
template<typename genType >
GLM_FUNC_QUALIFIER
-genType::value_type 
inverseTranspose (genType const &m)
 
template<typename T , precision P>
GLM_FUNC_QUALIFIER tmat3x3< T, P > rotate (tmat3x3< T, P > const &m, T angle)
 
template<typename T , precision P>
GLM_FUNC_QUALIFIER tmat3x3< T, P > scale (tmat3x3< T, P > const &m, tvec2< T, P > const &v)
 
template<typename T , precision P>
GLM_FUNC_QUALIFIER tmat3x3< T, P > shearX (tmat3x3< T, P > const &m, T y)
 
template<typename T , precision P>
GLM_FUNC_QUALIFIER tmat3x3< T, P > shearY (tmat3x3< T, P > const &m, T x)
 
template<typename T , precision P>
GLM_FUNC_QUALIFIER tmat3x3< T, P > translate (tmat3x3< T, P > const &m, tvec2< T, P > const &v)
 

Detailed Description

OpenGL Mathematics (glm.g-truc.net)

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTC_matrix_inverse

-
Date
2005-12-21 / 2011-06-05
-
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
+

GLM_GTX_matrix_transform_2d

+
Date
2014-02-20
+
Author
Miguel Ángel Pérez Martínez
+
See also
GLM Core (dependence)
-

Definition in file matrix_inverse.hpp.

+

Definition in file matrix_transform_2d.hpp.

diff --git a/doc/api/a00076_source.html b/doc/api/a00076_source.html index 4107b9a1..f911de8e 100644 --- a/doc/api/a00076_source.html +++ b/doc/api/a00076_source.html @@ -3,8 +3,8 @@ - -GLM: matrix_inverse.hpp Source File + +0.9.6: matrix_transform_2d.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,48 +41,70 @@
-
matrix_inverse.hpp
+
matrix_transform_2d.hpp
Go to the documentation of this file.
1 
-
37 #ifndef GLM_GTC_matrix_inverse
-
38 #define GLM_GTC_matrix_inverse
-
39 
-
40 // Dependencies
-
41 #include "../detail/setup.hpp"
-
42 
-
43 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
44 # pragma message("GLM: GLM_GTC_matrix_inverse extension included")
-
45 #endif
-
46 
-
47 namespace glm
-
48 {
-
51 
-
57  template <typename genType>
-
58  GLM_FUNC_QUALIFIER genType affineInverse(genType const & m);
-
59 
-
65  template <typename genType>
-
66  GLM_FUNC_QUALIFIER typename genType::value_type inverseTranspose(
-
67  genType const & m);
-
68 
-
70 }//namespace glm
-
71 
-
72 #include "matrix_inverse.inl"
-
73 
-
74 #endif//GLM_GTC_matrix_inverse
-
GLM_FUNC_QUALIFIER genType affineInverse(genType const &m)
Fast matrix inverse for affine matrix.
-
GLM_FUNC_QUALIFIER genType::value_type inverseTranspose(genType const &m)
Compute the inverse transpose of a matrix.
+
42 #pragma once
+
43 
+
44 // Dependency:
+
45 #include "../mat3x3.hpp"
+
46 #include "../vec2.hpp"
+
47 
+
48 
+
49 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+
50 # pragma message("GLM: GLM_GTX_matrix_transform_2d extension included")
+
51 #endif
+
52 
+
53 namespace glm
+
54 {
+
57 
+
62  template <typename T, precision P>
+
63  GLM_FUNC_QUALIFIER tmat3x3<T, P> translate(
+
64  tmat3x3<T, P> const & m,
+
65  tvec2<T, P> const & v);
+
66 
+
71  template <typename T, precision P>
+
72  GLM_FUNC_QUALIFIER tmat3x3<T, P> rotate(
+
73  tmat3x3<T, P> const & m,
+
74  T angle);
+
75 
+
80  template <typename T, precision P>
+
81  GLM_FUNC_QUALIFIER tmat3x3<T, P> scale(
+
82  tmat3x3<T, P> const & m,
+
83  tvec2<T, P> const & v);
+
84 
+
89  template <typename T, precision P>
+
90  GLM_FUNC_QUALIFIER tmat3x3<T, P> shearX(
+
91  tmat3x3<T, P> const & m,
+
92  T y);
+
93 
+
98  template <typename T, precision P>
+
99  GLM_FUNC_QUALIFIER tmat3x3<T, P> shearY(
+
100  tmat3x3<T, P> const & m,
+
101  T x);
+
102 
+
104 }//namespace glm
+
105 
+
106 #include "matrix_transform_2d.inl"
+
GLM_FUNC_QUALIFIER tmat3x3< T, P > rotate(tmat3x3< T, P > const &m, T angle)
Builds a rotation 3 * 3 matrix created from an angle.
+
GLM_FUNC_QUALIFIER tmat3x3< T, P > shearY(tmat3x3< T, P > const &m, T x)
Builds a vertical (parallel to the y axis) shear 3 * 3 matrix.
+
GLM_FUNC_DECL T angle(tquat< T, P > const &x)
Returns the quaternion rotation angle.
+
GLM_FUNC_QUALIFIER tmat3x3< T, P > scale(tmat3x3< T, P > const &m, tvec2< T, P > const &v)
Builds a scale 3 * 3 matrix created from a vector of 2 components.
+
GLM_FUNC_QUALIFIER tmat3x3< T, P > shearX(tmat3x3< T, P > const &m, T y)
Builds an horizontal (parallel to the x axis) shear 3 * 3 matrix.
+
Definition: _noise.hpp:39
+
GLM_FUNC_QUALIFIER tmat3x3< T, P > translate(tmat3x3< T, P > const &m, tvec2< T, P > const &v)
Builds a translation 3 * 3 matrix created from a vector of 2 components.
diff --git a/doc/api/a00077.html b/doc/api/a00077.html index e1701842..a4f8ee32 100644 --- a/doc/api/a00077.html +++ b/doc/api/a00077.html @@ -3,8 +3,8 @@ - -GLM: matrix_major_storage.hpp File Reference + +0.9.6: mixed_product.hpp File Reference @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,83 +41,44 @@
-Namespaces | Functions
-
matrix_major_storage.hpp File Reference
+
mixed_product.hpp File Reference

Go to the source code of this file.

- - - -

-Namespaces

 glm
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + +

Functions

template<typename T , precision P>
detail::tmat2x2< T, P > colMajor2 (detail::tvec2< T, P > const &v1, detail::tvec2< T, P > const &v2)
 
template<typename T , precision P>
detail::tmat2x2< T, P > colMajor2 (detail::tmat2x2< T, P > const &m)
 
template<typename T , precision P>
detail::tmat3x3< T, P > colMajor3 (detail::tvec3< T, P > const &v1, detail::tvec3< T, P > const &v2, detail::tvec3< T, P > const &v3)
 
template<typename T , precision P>
detail::tmat3x3< T, P > colMajor3 (detail::tmat3x3< T, P > const &m)
 
template<typename T , precision P>
detail::tmat4x4< T, P > colMajor4 (detail::tvec4< T, P > const &v1, detail::tvec4< T, P > const &v2, detail::tvec4< T, P > const &v3, detail::tvec4< T, P > const &v4)
 
template<typename T , precision P>
detail::tmat4x4< T, P > colMajor4 (detail::tmat4x4< T, P > const &m)
 
template<typename T , precision P>
detail::tmat2x2< T, P > rowMajor2 (detail::tvec2< T, P > const &v1, detail::tvec2< T, P > const &v2)
 
template<typename T , precision P>
detail::tmat2x2< T, P > rowMajor2 (detail::tmat2x2< T, P > const &m)
 
template<typename T , precision P>
detail::tmat3x3< T, P > rowMajor3 (detail::tvec3< T, P > const &v1, detail::tvec3< T, P > const &v2, detail::tvec3< T, P > const &v3)
 
template<typename T , precision P>
detail::tmat3x3< T, P > rowMajor3 (detail::tmat3x3< T, P > const &m)
 
template<typename T , precision P>
detail::tmat4x4< T, P > rowMajor4 (detail::tvec4< T, P > const &v1, detail::tvec4< T, P > const &v2, detail::tvec4< T, P > const &v3, detail::tvec4< T, P > const &v4)
 
template<typename T , precision P>
detail::tmat4x4< T, P > rowMajor4 (detail::tmat4x4< T, P > const &m)
 
+template<typename T , precision P>
GLM_FUNC_DECL T mixedProduct (tvec3< T, P > const &v1, tvec3< T, P > const &v2, tvec3< T, P > const &v3)
 

Detailed Description

OpenGL Mathematics (glm.g-truc.net)

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_matrix_major_storage

-
Date
2006-04-19 / 2011-06-07
+

GLM_GTX_mixed_producte

+
Date
2007-04-03 / 2011-06-07
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
-
-GLM_GTX_extented_min_max (dependence)
+
See also
GLM Core (dependence)
-

Definition in file matrix_major_storage.hpp.

+

Definition in file mixed_product.hpp.

diff --git a/doc/api/a00077_source.html b/doc/api/a00077_source.html index dc6a851a..e6452477 100644 --- a/doc/api/a00077_source.html +++ b/doc/api/a00077_source.html @@ -3,8 +3,8 @@ - -GLM: matrix_major_storage.hpp Source File + +0.9.6: mixed_product.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,105 +41,44 @@
-
matrix_major_storage.hpp
+
mixed_product.hpp
Go to the documentation of this file.
1 
-
39 #ifndef GLM_GTX_matrix_major_storage
-
40 #define GLM_GTX_matrix_major_storage
-
41 
-
42 // Dependency:
-
43 #include "../glm.hpp"
-
44 
-
45 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
46 # pragma message("GLM: GLM_GTX_matrix_major_storage extension included")
-
47 #endif
-
48 
-
49 namespace glm
-
50 {
-
53 
-
56  template <typename T, precision P>
-
57  detail::tmat2x2<T, P> rowMajor2(
-
58  detail::tvec2<T, P> const & v1,
-
59  detail::tvec2<T, P> const & v2);
-
60 
-
63  template <typename T, precision P>
-
64  detail::tmat2x2<T, P> rowMajor2(
-
65  detail::tmat2x2<T, P> const & m);
-
66 
-
69  template <typename T, precision P>
-
70  detail::tmat3x3<T, P> rowMajor3(
-
71  detail::tvec3<T, P> const & v1,
-
72  detail::tvec3<T, P> const & v2,
-
73  detail::tvec3<T, P> const & v3);
-
74 
-
77  template <typename T, precision P>
-
78  detail::tmat3x3<T, P> rowMajor3(
-
79  detail::tmat3x3<T, P> const & m);
-
80 
-
83  template <typename T, precision P>
-
84  detail::tmat4x4<T, P> rowMajor4(
-
85  detail::tvec4<T, P> const & v1,
-
86  detail::tvec4<T, P> const & v2,
-
87  detail::tvec4<T, P> const & v3,
-
88  detail::tvec4<T, P> const & v4);
-
89 
-
92  template <typename T, precision P>
-
93  detail::tmat4x4<T, P> rowMajor4(
-
94  detail::tmat4x4<T, P> const & m);
-
95 
-
98  template <typename T, precision P>
-
99  detail::tmat2x2<T, P> colMajor2(
-
100  detail::tvec2<T, P> const & v1,
-
101  detail::tvec2<T, P> const & v2);
-
102 
-
105  template <typename T, precision P>
-
106  detail::tmat2x2<T, P> colMajor2(
-
107  detail::tmat2x2<T, P> const & m);
-
108 
-
111  template <typename T, precision P>
-
112  detail::tmat3x3<T, P> colMajor3(
-
113  detail::tvec3<T, P> const & v1,
-
114  detail::tvec3<T, P> const & v2,
-
115  detail::tvec3<T, P> const & v3);
-
116 
-
119  template <typename T, precision P>
-
120  detail::tmat3x3<T, P> colMajor3(
-
121  detail::tmat3x3<T, P> const & m);
-
122 
-
125  template <typename T, precision P>
-
126  detail::tmat4x4<T, P> colMajor4(
-
127  detail::tvec4<T, P> const & v1,
-
128  detail::tvec4<T, P> const & v2,
-
129  detail::tvec4<T, P> const & v3,
-
130  detail::tvec4<T, P> const & v4);
-
131 
-
134  template <typename T, precision P>
-
135  detail::tmat4x4<T, P> colMajor4(
-
136  detail::tmat4x4<T, P> const & m);
-
137 
-
139 }//namespace glm
-
140 
-
141 #include "matrix_major_storage.inl"
-
142 
-
143 #endif//GLM_GTX_matrix_major_storage
-
detail::tmat4x4< T, P > rowMajor4(detail::tvec4< T, P > const &v1, detail::tvec4< T, P > const &v2, detail::tvec4< T, P > const &v3, detail::tvec4< T, P > const &v4)
Build a row major matrix from row vectors.
-
detail::tmat2x2< T, P > rowMajor2(detail::tvec2< T, P > const &v1, detail::tvec2< T, P > const &v2)
Build a row major matrix from row vectors.
-
detail::tmat3x3< T, P > rowMajor3(detail::tvec3< T, P > const &v1, detail::tvec3< T, P > const &v2, detail::tvec3< T, P > const &v3)
Build a row major matrix from row vectors.
-
detail::tmat2x2< T, P > colMajor2(detail::tvec2< T, P > const &v1, detail::tvec2< T, P > const &v2)
Build a column major matrix from column vectors.
-
detail::tmat3x3< T, P > colMajor3(detail::tvec3< T, P > const &v1, detail::tvec3< T, P > const &v2, detail::tvec3< T, P > const &v3)
Build a column major matrix from column vectors.
-
detail::tmat4x4< T, P > colMajor4(detail::tvec4< T, P > const &v1, detail::tvec4< T, P > const &v2, detail::tvec4< T, P > const &v3, detail::tvec4< T, P > const &v4)
Build a column major matrix from column vectors.
+
42 #pragma once
+
43 
+
44 // Dependency:
+
45 #include "../glm.hpp"
+
46 
+
47 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+
48 # pragma message("GLM: GLM_GTX_mixed_product extension included")
+
49 #endif
+
50 
+
51 namespace glm
+
52 {
+
55 
+
57  template <typename T, precision P>
+
58  GLM_FUNC_DECL T mixedProduct(
+
59  tvec3<T, P> const & v1,
+
60  tvec3<T, P> const & v2,
+
61  tvec3<T, P> const & v3);
+
62 
+
64 }// namespace glm
+
65 
+
66 #include "mixed_product.inl"
+
GLM_FUNC_DECL T mixedProduct(tvec3< T, P > const &v1, tvec3< T, P > const &v2, tvec3< T, P > const &v3)
Mixed product of 3 vectors (from GLM_GTX_mixed_product extension)
+
Definition: _noise.hpp:39
diff --git a/doc/api/a00078.html b/doc/api/a00078.html index f8088e02..51676d4d 100644 --- a/doc/api/a00078.html +++ b/doc/api/a00078.html @@ -3,8 +3,8 @@ - -GLM: matrix_operation.hpp File Reference + +0.9.6: multiple.hpp File Reference @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,72 +41,58 @@
-Namespaces | Functions
-
matrix_operation.hpp File Reference
+
multiple.hpp File Reference

Go to the source code of this file.

- - - -

-Namespaces

 glm
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + +

Functions

template<typename T , precision P>
detail::tmat2x2< T, P > diagonal2x2 (detail::tvec2< T, P > const &v)
 
template<typename T , precision P>
detail::tmat2x3< T, P > diagonal2x3 (detail::tvec2< T, P > const &v)
 
template<typename T , precision P>
detail::tmat2x4< T, P > diagonal2x4 (detail::tvec2< T, P > const &v)
 
template<typename T , precision P>
detail::tmat3x2< T, P > diagonal3x2 (detail::tvec2< T, P > const &v)
 
template<typename T , precision P>
detail::tmat3x3< T, P > diagonal3x3 (detail::tvec3< T, P > const &v)
 
template<typename T , precision P>
detail::tmat3x4< T, P > diagonal3x4 (detail::tvec3< T, P > const &v)
 
template<typename T , precision P>
detail::tmat4x2< T, P > diagonal4x2 (detail::tvec2< T, P > const &v)
 
template<typename T , precision P>
detail::tmat4x3< T, P > diagonal4x3 (detail::tvec3< T, P > const &v)
 
template<typename T , precision P>
detail::tmat4x4< T, P > diagonal4x4 (detail::tvec4< T, P > const &v)
 
template<typename genType >
GLM_DEPRECATED GLM_FUNC_DECL
+genType 
higherMultiple (genType Source, genType Multiple)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_DEPRECATED GLM_FUNC_DECL
+vecType< T, P > 
higherMultiple (vecType< T, P > const &Source, vecType< T, P > const &Multiple)
 
template<typename genType >
GLM_DEPRECATED GLM_FUNC_DECL
+genType 
lowerMultiple (genType Source, genType Multiple)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_DEPRECATED GLM_FUNC_DECL
+vecType< T, P > 
lowerMultiple (vecType< T, P > const &Source, vecType< T, P > const &Multiple)
 

Detailed Description

OpenGL Mathematics (glm.g-truc.net)

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_matrix_operation

-
Date
2009-08-29 / 2011-06-07
+

GLM_GTX_multiple

+
Date
2009-10-26 / 2011-06-07
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
+
See also
GLM Core (dependence)
+
+GLM_GTX_extented_min_max (dependence)
-

Definition in file matrix_operation.hpp.

+

Definition in file multiple.hpp.

diff --git a/doc/api/a00078_source.html b/doc/api/a00078_source.html index d39a15b4..931ed2d2 100644 --- a/doc/api/a00078_source.html +++ b/doc/api/a00078_source.html @@ -3,8 +3,8 @@ - -GLM: matrix_operation.hpp Source File + +0.9.6: multiple.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,84 +41,57 @@
-
matrix_operation.hpp
+
multiple.hpp
Go to the documentation of this file.
1 
-
38 #ifndef GLM_GTX_matrix_operation
-
39 #define GLM_GTX_matrix_operation
-
40 
-
41 // Dependency:
-
42 #include "../glm.hpp"
-
43 
-
44 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
45 # pragma message("GLM: GLM_GTX_matrix_operation extension included")
-
46 #endif
-
47 
-
48 namespace glm
-
49 {
-
52 
-
55  template <typename T, precision P>
-
56  detail::tmat2x2<T, P> diagonal2x2(
-
57  detail::tvec2<T, P> const & v);
-
58 
-
61  template <typename T, precision P>
-
62  detail::tmat2x3<T, P> diagonal2x3(
-
63  detail::tvec2<T, P> const & v);
-
64 
-
67  template <typename T, precision P>
-
68  detail::tmat2x4<T, P> diagonal2x4(
-
69  detail::tvec2<T, P> const & v);
-
70 
-
73  template <typename T, precision P>
-
74  detail::tmat3x2<T, P> diagonal3x2(
-
75  detail::tvec2<T, P> const & v);
-
76 
-
79  template <typename T, precision P>
-
80  detail::tmat3x3<T, P> diagonal3x3(
-
81  detail::tvec3<T, P> const & v);
-
82 
-
85  template <typename T, precision P>
-
86  detail::tmat3x4<T, P> diagonal3x4(
-
87  detail::tvec3<T, P> const & v);
-
88 
-
91  template <typename T, precision P>
-
92  detail::tmat4x2<T, P> diagonal4x2(
-
93  detail::tvec2<T, P> const & v);
-
94 
-
97  template <typename T, precision P>
-
98  detail::tmat4x3<T, P> diagonal4x3(
-
99  detail::tvec3<T, P> const & v);
-
100 
-
103  template <typename T, precision P>
-
104  detail::tmat4x4<T, P> diagonal4x4(
-
105  detail::tvec4<T, P> const & v);
-
106 
-
108 }//namespace glm
-
109 
-
110 #include "matrix_operation.inl"
-
111 
-
112 #endif//GLM_GTX_matrix_operation
-
detail::tmat4x3< T, P > diagonal4x3(detail::tvec3< T, P > const &v)
Build a diagonal matrix.
-
detail::tmat2x3< T, P > diagonal2x3(detail::tvec2< T, P > const &v)
Build a diagonal matrix.
-
detail::tmat3x4< T, P > diagonal3x4(detail::tvec3< T, P > const &v)
Build a diagonal matrix.
-
detail::tmat3x2< T, P > diagonal3x2(detail::tvec2< T, P > const &v)
Build a diagonal matrix.
-
detail::tmat4x4< T, P > diagonal4x4(detail::tvec4< T, P > const &v)
Build a diagonal matrix.
-
detail::tmat3x3< T, P > diagonal3x3(detail::tvec3< T, P > const &v)
Build a diagonal matrix.
-
detail::tmat2x4< T, P > diagonal2x4(detail::tvec2< T, P > const &v)
Build a diagonal matrix.
-
detail::tmat4x2< T, P > diagonal4x2(detail::tvec2< T, P > const &v)
Build a diagonal matrix.
-
detail::tmat2x2< T, P > diagonal2x2(detail::tvec2< T, P > const &v)
Build a diagonal matrix.
+
43 #pragma once
+
44 
+
45 // Dependency:
+
46 #include "../gtc/round.hpp"
+
47 
+
48 #pragma message("GLM: GLM_GTX_multiple extension is deprecated, use GLM_GTC_round instead.")
+
49 
+
50 namespace glm
+
51 {
+
54 
+
62  template <typename genType>
+
63  GLM_DEPRECATED GLM_FUNC_DECL genType higherMultiple(
+
64  genType Source,
+
65  genType Multiple);
+
66 
+
74  template <typename T, precision P, template <typename, precision> class vecType>
+
75  GLM_DEPRECATED GLM_FUNC_DECL vecType<T, P> higherMultiple(
+
76  vecType<T, P> const & Source,
+
77  vecType<T, P> const & Multiple);
+
78 
+
86  template <typename genType>
+
87  GLM_DEPRECATED GLM_FUNC_DECL genType lowerMultiple(
+
88  genType Source,
+
89  genType Multiple);
+
90 
+
98  template <typename T, precision P, template <typename, precision> class vecType>
+
99  GLM_DEPRECATED GLM_FUNC_DECL vecType<T, P> lowerMultiple(
+
100  vecType<T, P> const & Source,
+
101  vecType<T, P> const & Multiple);
+
102 
+
104 }//namespace glm
+
105 
+
106 #include "multiple.inl"
+
Definition: _noise.hpp:39
+
GLM_DEPRECATED GLM_FUNC_DECL vecType< T, P > higherMultiple(vecType< T, P > const &Source, vecType< T, P > const &Multiple)
Higher multiple number of Source.
+
GLM_DEPRECATED GLM_FUNC_DECL vecType< T, P > lowerMultiple(vecType< T, P > const &Source, vecType< T, P > const &Multiple)
Lower multiple number of Source.
diff --git a/doc/api/a00079.html b/doc/api/a00079.html index 3c8ad56b..6afbd8fe 100644 --- a/doc/api/a00079.html +++ b/doc/api/a00079.html @@ -3,8 +3,8 @@ - -GLM: matrix_query.hpp File Reference + +0.9.6: noise.hpp File Reference @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,71 +41,49 @@
-Namespaces | Functions
-
matrix_query.hpp File Reference
+
noise.hpp File Reference

Go to the source code of this file.

- - - -

-Namespaces

 glm
 
- - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + +

Functions

template<typename T , precision P, template< typename, precision > class matType>
bool isIdentity (matType< T, P > const &m, T const &epsilon)
 
template<typename T , precision P>
bool isNormalized (detail::tmat2x2< T, P > const &m, T const &epsilon)
 
template<typename T , precision P>
bool isNormalized (detail::tmat3x3< T, P > const &m, T const &epsilon)
 
template<typename T , precision P>
bool isNormalized (detail::tmat4x4< T, P > const &m, T const &epsilon)
 
template<typename T , precision P>
bool isNull (detail::tmat2x2< T, P > const &m, T const &epsilon)
 
template<typename T , precision P>
bool isNull (detail::tmat3x3< T, P > const &m, T const &epsilon)
 
template<typename T , precision P>
bool isNull (detail::tmat4x4< T, P > const &m, T const &epsilon)
 
template<typename T , precision P, template< typename, precision > class matType>
bool isOrthogonal (matType< T, P > const &m, T const &epsilon)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL T perlin (vecType< T, P > const &p)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL T perlin (vecType< T, P > const &p, vecType< T, P > const &rep)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL T simplex (vecType< T, P > const &p)
 

Detailed Description

OpenGL Mathematics (glm.g-truc.net)

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_matrix_query

-
Date
2007-03-05 / 2011-08-28
+

GLM_GTC_noise

+
Date
2011-04-21 / 2011-09-27
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
-
-GLM_GTX_vector_query (dependence)
+
See also
GLM Core (dependence)
-

Definition in file matrix_query.hpp.

+

Definition in file noise.hpp.

diff --git a/doc/api/a00079_source.html b/doc/api/a00079_source.html index c32d3575..e4a942d2 100644 --- a/doc/api/a00079_source.html +++ b/doc/api/a00079_source.html @@ -3,8 +3,8 @@ - -GLM: matrix_query.hpp Source File + +0.9.6: noise.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,70 +41,60 @@
-
matrix_query.hpp
+
noise.hpp
Go to the documentation of this file.
1 
-
39 #ifndef GLM_GTX_matrix_query
-
40 #define GLM_GTX_matrix_query
-
41 
-
42 // Dependency:
-
43 #include "../glm.hpp"
-
44 #include "../gtx/vector_query.hpp"
-
45 #include <limits>
+
45 #pragma once
46 
-
47 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
48 # pragma message("GLM: GLM_GTX_matrix_query extension included")
-
49 #endif
-
50 
-
51 namespace glm
-
52 {
-
55 
-
58  template<typename T, precision P>
-
59  bool isNull(detail::tmat2x2<T, P> const & m, T const & epsilon);
-
60 
-
63  template<typename T, precision P>
-
64  bool isNull(detail::tmat3x3<T, P> const & m, T const & epsilon);
-
65 
-
68  template<typename T, precision P>
-
69  bool isNull(detail::tmat4x4<T, P> const & m, T const & epsilon);
-
70 
-
73  template<typename T, precision P, template <typename, precision> class matType>
-
74  bool isIdentity(matType<T, P> const & m, T const & epsilon);
-
75 
-
78  template<typename T, precision P>
-
79  bool isNormalized(detail::tmat2x2<T, P> const & m, T const & epsilon);
-
80 
-
83  template<typename T, precision P>
-
84  bool isNormalized(detail::tmat3x3<T, P> const & m, T const & epsilon);
+
47 // Dependencies
+
48 #include "../detail/setup.hpp"
+
49 #include "../detail/precision.hpp"
+
50 #include "../detail/_noise.hpp"
+
51 #include "../geometric.hpp"
+
52 #include "../common.hpp"
+
53 #include "../vector_relational.hpp"
+
54 #include "../vec2.hpp"
+
55 #include "../vec3.hpp"
+
56 #include "../vec4.hpp"
+
57 
+
58 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+
59 # pragma message("GLM: GLM_GTC_noise extension included")
+
60 #endif
+
61 
+
62 namespace glm
+
63 {
+
66 
+
69  template <typename T, precision P, template<typename, precision> class vecType>
+
70  GLM_FUNC_DECL T perlin(
+
71  vecType<T, P> const & p);
+
72 
+
75  template <typename T, precision P, template<typename, precision> class vecType>
+
76  GLM_FUNC_DECL T perlin(
+
77  vecType<T, P> const & p,
+
78  vecType<T, P> const & rep);
+
79 
+
82  template <typename T, precision P, template<typename, precision> class vecType>
+
83  GLM_FUNC_DECL T simplex(
+
84  vecType<T, P> const & p);
85 
-
88  template<typename T, precision P>
-
89  bool isNormalized(detail::tmat4x4<T, P> const & m, T const & epsilon);
-
90 
-
93  template<typename T, precision P, template <typename, precision> class matType>
-
94  bool isOrthogonal(matType<T, P> const & m, T const & epsilon);
-
95 
-
97 }//namespace glm
-
98 
-
99 #include "matrix_query.inl"
-
100 
-
101 #endif//GLM_GTX_matrix_query
-
GLM_FUNC_DECL genType epsilon()
Return the epsilon constant for floating point types.
-
bool isOrthogonal(matType< T, P > const &m, T const &epsilon)
Return whether a matrix is an orthonormalized matrix.
-
bool isNormalized(detail::tmat2x2< T, P > const &m, T const &epsilon)
Return whether a matrix is a normalized matrix.
-
bool isNull(detail::tmat2x2< T, P > const &m, T const &epsilon)
Return whether a matrix a null matrix.
-
bool isIdentity(matType< T, P > const &m, T const &epsilon)
Return whether a matrix is an identity matrix.
+
87 }//namespace glm
+
88 
+
89 #include "noise.inl"
+
GLM_FUNC_DECL T perlin(vecType< T, P > const &p, vecType< T, P > const &rep)
Periodic perlin noise.
+
Definition: _noise.hpp:39
+
GLM_FUNC_DECL T simplex(vecType< T, P > const &p)
Simplex noise.
diff --git a/doc/api/a00080.html b/doc/api/a00080.html index eced8059..6cd68e0a 100644 --- a/doc/api/a00080.html +++ b/doc/api/a00080.html @@ -3,8 +3,8 @@ - -GLM: matrix_transform.hpp File Reference + +0.9.6: norm.hpp File Reference @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,103 +41,72 @@
-Namespaces | Functions
-
matrix_transform.hpp File Reference
+
norm.hpp File Reference

Go to the source code of this file.

- - - -

-Namespaces

 glm
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Functions

template<typename T , precision P>
GLM_FUNC_DECL detail::tmat4x4
-< T, P > 
frustum (T const &left, T const &right, T const &bottom, T const &top, T const &near, T const &far)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tmat4x4
-< T, P > 
infinitePerspective (T fovy, T aspect, T near)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tmat4x4
-< T, P > 
lookAt (detail::tvec3< T, P > const &eye, detail::tvec3< T, P > const &center, detail::tvec3< T, P > const &up)
 
template<typename T >
GLM_FUNC_DECL detail::tmat4x4
-< T, defaultp > 
ortho (T const &left, T const &right, T const &bottom, T const &top, T const &zNear, T const &zFar)
 
template<typename T >
GLM_FUNC_DECL detail::tmat4x4
-< T, defaultp > 
ortho (T const &left, T const &right, T const &bottom, T const &top)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tmat4x4
-< T, P > 
perspective (T const &fovy, T const &aspect, T const &near, T const &far)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tmat4x4
-< T, P > 
perspectiveFov (T const &fov, T const &width, T const &height, T const &near, T const &far)
 
template<typename T , precision P, typename U >
GLM_FUNC_DECL detail::tmat4x4
-< T, P > 
pickMatrix (detail::tvec2< T, P > const &center, detail::tvec2< T, P > const &delta, detail::tvec4< U, P > const &viewport)
 
template<typename T , typename U , precision P>
GLM_FUNC_DECL detail::tvec3< T, P > project (detail::tvec3< T, P > const &obj, detail::tmat4x4< T, P > const &model, detail::tmat4x4< T, P > const &proj, detail::tvec4< U, P > const &viewport)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tmat4x4
-< T, P > 
rotate (detail::tmat4x4< T, P > const &m, T const &angle, detail::tvec3< T, P > const &axis)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tmat4x4
-< T, P > 
scale (detail::tmat4x4< T, P > const &m, detail::tvec3< T, P > const &v)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tmat4x4
-< T, P > 
translate (detail::tmat4x4< T, P > const &m, detail::tvec3< T, P > const &v)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tmat4x4
-< T, P > 
tweakedInfinitePerspective (T fovy, T aspect, T near)
 
template<typename T , typename U , precision P>
GLM_FUNC_DECL detail::tvec3< T, P > unProject (detail::tvec3< T, P > const &win, detail::tmat4x4< T, P > const &model, detail::tmat4x4< T, P > const &proj, detail::tvec4< U, P > const &viewport)
 
template<typename T >
GLM_FUNC_DECL T distance2 (T const &p0, T const &p1)
 
template<typename genType >
GLM_FUNC_DECL genType::value_type distance2 (genType const &p0, genType const &p1)
 
template<typename T , precision P>
GLM_FUNC_DECL T l1Norm (tvec3< T, P > const &x, tvec3< T, P > const &y)
 
template<typename T , precision P>
GLM_FUNC_DECL T l1Norm (tvec3< T, P > const &v)
 
template<typename T , precision P>
GLM_FUNC_DECL T l2Norm (tvec3< T, P > const &x, tvec3< T, P > const &y)
 
template<typename T , precision P>
GLM_FUNC_DECL T l2Norm (tvec3< T, P > const &x)
 
template<typename T >
GLM_FUNC_DECL T length2 (T const &x)
 
template<typename genType >
GLM_FUNC_DECL genType::value_type length2 (genType const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL T lxNorm (tvec3< T, P > const &x, tvec3< T, P > const &y, unsigned int Depth)
 
template<typename T , precision P>
GLM_FUNC_DECL T lxNorm (tvec3< T, P > const &x, unsigned int Depth)
 

Detailed Description

OpenGL Mathematics (glm.g-truc.net)

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTC_matrix_transform

-
Date
2009-04-29 / 2011-05-16
+

GLM_GTX_norm

+
Date
2005-12-21 / 2011-06-07
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
+
See also
GLM Core (dependence)
-GLM_GTX_transform
-
-GLM_GTX_transform2
+GLM_GTX_quaternion (dependence)
-

Definition in file matrix_transform.hpp.

+

Definition in file norm.hpp.

diff --git a/doc/api/a00080_source.html b/doc/api/a00080_source.html index f290beb0..cbd99d34 100644 --- a/doc/api/a00080_source.html +++ b/doc/api/a00080_source.html @@ -3,8 +3,8 @@ - -GLM: matrix_transform.hpp Source File + +0.9.6: norm.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,148 +41,90 @@
-
matrix_transform.hpp
+
norm.hpp
Go to the documentation of this file.
1 
-
46 #ifndef GLM_GTC_matrix_transform
-
47 #define GLM_GTC_matrix_transform
-
48 
-
49 // Dependency:
-
50 #include "../mat4x4.hpp"
-
51 #include "../vec2.hpp"
-
52 #include "../vec3.hpp"
-
53 #include "../vec4.hpp"
-
54 
-
55 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
56 # pragma message("GLM: GLM_GTC_matrix_transform extension included")
-
57 #endif
-
58 
-
59 namespace glm
-
60 {
+
43 #pragma once
+
44 
+
45 // Dependency:
+
46 #include "../glm.hpp"
+
47 #include "../gtx/quaternion.hpp"
+
48 
+
49 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+
50 # pragma message("GLM: GLM_GTX_norm extension included")
+
51 #endif
+
52 
+
53 namespace glm
+
54 {
+
57 
+
60  template <typename T>
+
61  GLM_FUNC_DECL T length2(
+
62  T const & x);
63 
-
84  template <typename T, precision P>
-
85  GLM_FUNC_DECL detail::tmat4x4<T, P> translate(
-
86  detail::tmat4x4<T, P> const & m,
-
87  detail::tvec3<T, P> const & v);
-
88 
-
100  template <typename T, precision P>
-
101  GLM_FUNC_DECL detail::tmat4x4<T, P> rotate(
-
102  detail::tmat4x4<T, P> const & m,
-
103  T const & angle,
-
104  detail::tvec3<T, P> const & axis);
-
105 
-
116  template <typename T, precision P>
-
117  GLM_FUNC_DECL detail::tmat4x4<T, P> scale(
-
118  detail::tmat4x4<T, P> const & m,
-
119  detail::tvec3<T, P> const & v);
-
120 
-
132  template <typename T>
-
133  GLM_FUNC_DECL detail::tmat4x4<T, defaultp> ortho(
-
134  T const & left,
-
135  T const & right,
-
136  T const & bottom,
-
137  T const & top,
-
138  T const & zNear,
-
139  T const & zFar);
-
140 
-
150  template <typename T>
-
151  GLM_FUNC_DECL detail::tmat4x4<T, defaultp> ortho(
-
152  T const & left,
-
153  T const & right,
-
154  T const & bottom,
-
155  T const & top);
-
156 
-
167  template <typename T, precision P>
-
168  GLM_FUNC_DECL detail::tmat4x4<T, P> frustum(
-
169  T const & left,
-
170  T const & right,
-
171  T const & bottom,
-
172  T const & top,
-
173  T const & near,
-
174  T const & far);
-
175 
-
184  template <typename T, precision P>
-
185  GLM_FUNC_DECL detail::tmat4x4<T, P> perspective(
-
186  T const & fovy,
-
187  T const & aspect,
-
188  T const & near,
-
189  T const & far);
-
190 
-
200  template <typename T, precision P>
-
201  GLM_FUNC_DECL detail::tmat4x4<T, P> perspectiveFov(
-
202  T const & fov,
-
203  T const & width,
-
204  T const & height,
-
205  T const & near,
-
206  T const & far);
-
207 
-
215  template <typename T, precision P>
-
216  GLM_FUNC_DECL detail::tmat4x4<T, P> infinitePerspective(
-
217  T fovy, T aspect, T near);
-
218 
-
226  template <typename T, precision P>
-
227  GLM_FUNC_DECL detail::tmat4x4<T, P> tweakedInfinitePerspective(
-
228  T fovy, T aspect, T near);
-
229 
-
239  template <typename T, typename U, precision P>
-
240  GLM_FUNC_DECL detail::tvec3<T, P> project(
-
241  detail::tvec3<T, P> const & obj,
-
242  detail::tmat4x4<T, P> const & model,
-
243  detail::tmat4x4<T, P> const & proj,
-
244  detail::tvec4<U, P> const & viewport);
-
245 
-
255  template <typename T, typename U, precision P>
-
256  GLM_FUNC_DECL detail::tvec3<T, P> unProject(
-
257  detail::tvec3<T, P> const & win,
-
258  detail::tmat4x4<T, P> const & model,
-
259  detail::tmat4x4<T, P> const & proj,
-
260  detail::tvec4<U, P> const & viewport);
-
261 
-
270  template <typename T, precision P, typename U>
-
271  GLM_FUNC_DECL detail::tmat4x4<T, P> pickMatrix(
-
272  detail::tvec2<T, P> const & center,
-
273  detail::tvec2<T, P> const & delta,
-
274  detail::tvec4<U, P> const & viewport);
-
275 
-
283  template <typename T, precision P>
-
284  GLM_FUNC_DECL detail::tmat4x4<T, P> lookAt(
-
285  detail::tvec3<T, P> const & eye,
-
286  detail::tvec3<T, P> const & center,
-
287  detail::tvec3<T, P> const & up);
-
288 
-
290 }//namespace glm
-
291 
-
292 #include "matrix_transform.inl"
-
293 
-
294 #endif//GLM_GTC_matrix_transform
-
GLM_FUNC_DECL detail::tmat4x4< T, P > rotate(detail::tmat4x4< T, P > const &m, T const &angle, detail::tvec3< T, P > const &axis)
Builds a rotation 4 * 4 matrix created from an axis vector and an angle.
-
vecType proj(vecType const &x, vecType const &Normal)
Projects x on Normal.
-
GLM_FUNC_DECL T angle(detail::tquat< T, P > const &x)
Returns the quaternion rotation angle.
-
GLM_FUNC_DECL detail::tmat4x4< T, P > scale(detail::tmat4x4< T, P > const &m, detail::tvec3< T, P > const &v)
Builds a scale 4 * 4 matrix created from 3 scalars.
-
GLM_FUNC_DECL detail::tmat4x4< T, P > tweakedInfinitePerspective(T fovy, T aspect, T near)
Creates a matrix for a symmetric perspective-view frustum with far plane at infinite for graphics har...
-
GLM_FUNC_DECL detail::tmat4x4< T, P > translate(detail::tmat4x4< T, P > const &m, detail::tvec3< T, P > const &v)
Builds a translation 4 * 4 matrix created from a vector of 3 components.
-
GLM_FUNC_DECL detail::tmat4x4< T, P > perspective(T const &fovy, T const &aspect, T const &near, T const &far)
Creates a matrix for a symetric perspective-view frustum.
-
GLM_FUNC_DECL detail::tmat4x4< T, P > pickMatrix(detail::tvec2< T, P > const &center, detail::tvec2< T, P > const &delta, detail::tvec4< U, P > const &viewport)
Define a picking region.
-
GLM_FUNC_DECL detail::tmat4x4< T, P > infinitePerspective(T fovy, T aspect, T near)
Creates a matrix for a symmetric perspective-view frustum with far plane at infinite.
-
GLM_FUNC_DECL detail::tmat4x4< T, defaultp > ortho(T const &left, T const &right, T const &bottom, T const &top, T const &zNear, T const &zFar)
Creates a matrix for an orthographic parallel viewing volume.
-
GLM_FUNC_DECL detail::tvec3< T, P > axis(detail::tquat< T, P > const &x)
Returns the q rotation axis.
-
GLM_FUNC_DECL detail::tvec3< T, P > unProject(detail::tvec3< T, P > const &win, detail::tmat4x4< T, P > const &model, detail::tmat4x4< T, P > const &proj, detail::tvec4< U, P > const &viewport)
Map the specified window coordinates (win.x, win.y, win.z) into object coordinates.
-
GLM_FUNC_DECL detail::tmat4x4< T, P > perspectiveFov(T const &fov, T const &width, T const &height, T const &near, T const &far)
Builds a perspective projection matrix based on a field of view.
-
GLM_FUNC_DECL detail::tmat4x4< T, P > lookAt(detail::tvec3< T, P > const &eye, detail::tvec3< T, P > const &center, detail::tvec3< T, P > const &up)
Build a look at view matrix.
-
GLM_FUNC_DECL detail::tmat4x4< T, P > frustum(T const &left, T const &right, T const &bottom, T const &top, T const &near, T const &far)
Creates a frustum matrix.
-
GLM_FUNC_DECL detail::tvec3< T, P > project(detail::tvec3< T, P > const &obj, detail::tmat4x4< T, P > const &model, detail::tmat4x4< T, P > const &proj, detail::tvec4< U, P > const &viewport)
Map the specified object coordinates (obj.x, obj.y, obj.z) into window coordinates.
+
66  template <typename genType>
+
67  GLM_FUNC_DECL typename genType::value_type length2(
+
68  genType const & x);
+
69 
+
72  template <typename T>
+
73  GLM_FUNC_DECL T distance2(
+
74  T const & p0,
+
75  T const & p1);
+
76 
+
79  template <typename genType>
+
80  GLM_FUNC_DECL typename genType::value_type distance2(
+
81  genType const & p0,
+
82  genType const & p1);
+
83 
+
86  template <typename T, precision P>
+
87  GLM_FUNC_DECL T l1Norm(
+
88  tvec3<T, P> const & x,
+
89  tvec3<T, P> const & y);
+
90 
+
93  template <typename T, precision P>
+
94  GLM_FUNC_DECL T l1Norm(
+
95  tvec3<T, P> const & v);
+
96 
+
99  template <typename T, precision P>
+
100  GLM_FUNC_DECL T l2Norm(
+
101  tvec3<T, P> const & x,
+
102  tvec3<T, P> const & y);
+
103 
+
106  template <typename T, precision P>
+
107  GLM_FUNC_DECL T l2Norm(
+
108  tvec3<T, P> const & x);
+
109 
+
112  template <typename T, precision P>
+
113  GLM_FUNC_DECL T lxNorm(
+
114  tvec3<T, P> const & x,
+
115  tvec3<T, P> const & y,
+
116  unsigned int Depth);
+
117 
+
120  template <typename T, precision P>
+
121  GLM_FUNC_DECL T lxNorm(
+
122  tvec3<T, P> const & x,
+
123  unsigned int Depth);
+
124 
+
126 }//namespace glm
+
127 
+
128 #include "norm.inl"
+
GLM_FUNC_DECL genType::value_type distance2(genType const &p0, genType const &p1)
Returns the squared distance between p0 and p1, i.e., length(p0 - p1).
+
GLM_FUNC_DECL genType::value_type length2(genType const &x)
Returns the squared length of x.
+
GLM_FUNC_DECL T l2Norm(tvec3< T, P > const &x)
Returns the L2 norm of v.
+
GLM_FUNC_DECL T l1Norm(tvec3< T, P > const &v)
Returns the L1 norm of v.
+
Definition: _noise.hpp:39
+
GLM_FUNC_DECL T lxNorm(tvec3< T, P > const &x, unsigned int Depth)
Returns the L norm of v.
diff --git a/doc/api/a00081.html b/doc/api/a00081.html index af3aa450..720fab2a 100644 --- a/doc/api/a00081.html +++ b/doc/api/a00081.html @@ -3,8 +3,8 @@ - -GLM: mixed_product.hpp File Reference + +0.9.6: normal.hpp File Reference @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,49 +41,45 @@
-Namespaces | Functions
-
mixed_product.hpp File Reference
+
normal.hpp File Reference

Go to the source code of this file.

- - - -

-Namespaces

 glm
 
- - - + + +

Functions

-template<typename T , precision P>
mixedProduct (detail::tvec3< T, P > const &v1, detail::tvec3< T, P > const &v2, detail::tvec3< T, P > const &v3)
 
template<typename T , precision P>
GLM_FUNC_DECL tvec3< T, P > triangleNormal (tvec3< T, P > const &p1, tvec3< T, P > const &p2, tvec3< T, P > const &p3)
 

Detailed Description

OpenGL Mathematics (glm.g-truc.net)

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_mixed_producte

-
Date
2007-04-03 / 2011-06-07
+

GLM_GTX_normal

+
Date
2005-12-21 / 2011-06-07
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
+
See also
GLM Core (dependence)
+
+GLM_GTX_extented_min_max (dependence)
-

Definition in file mixed_product.hpp.

+

Definition in file normal.hpp.

diff --git a/doc/api/a00081_source.html b/doc/api/a00081_source.html index 12b4f139..49d272f2 100644 --- a/doc/api/a00081_source.html +++ b/doc/api/a00081_source.html @@ -3,8 +3,8 @@ - -GLM: mixed_product.hpp Source File + +0.9.6: normal.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,46 +41,44 @@
-
mixed_product.hpp
+
normal.hpp
Go to the documentation of this file.
1 
-
38 #ifndef GLM_GTX_mixed_product
-
39 #define GLM_GTX_mixed_product
-
40 
-
41 // Dependency:
-
42 #include "../glm.hpp"
-
43 
-
44 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
45 # pragma message("GLM: GLM_GTX_mixed_product extension included")
-
46 #endif
-
47 
-
48 namespace glm
-
49 {
-
52 
-
54  template <typename T, precision P>
-
55  T mixedProduct(
-
56  detail::tvec3<T, P> const & v1,
-
57  detail::tvec3<T, P> const & v2,
-
58  detail::tvec3<T, P> const & v3);
-
59 
-
61 }// namespace glm
-
62 
-
63 #include "mixed_product.inl"
+
43 #pragma once
+
44 
+
45 // Dependency:
+
46 #include "../glm.hpp"
+
47 
+
48 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+
49 # pragma message("GLM: GLM_GTX_normal extension included")
+
50 #endif
+
51 
+
52 namespace glm
+
53 {
+
56 
+
59  template <typename T, precision P>
+
60  GLM_FUNC_DECL tvec3<T, P> triangleNormal(
+
61  tvec3<T, P> const & p1,
+
62  tvec3<T, P> const & p2,
+
63  tvec3<T, P> const & p3);
64 
-
65 #endif//GLM_GTX_mixed_product
-
T mixedProduct(detail::tvec3< T, P > const &v1, detail::tvec3< T, P > const &v2, detail::tvec3< T, P > const &v3)
Mixed product of 3 vectors (from GLM_GTX_mixed_product extension)
+
66 }//namespace glm
+
67 
+
68 #include "normal.inl"
+
GLM_FUNC_DECL tvec3< T, P > triangleNormal(tvec3< T, P > const &p1, tvec3< T, P > const &p2, tvec3< T, P > const &p3)
Computes triangle normal from triangle points.
+
Definition: _noise.hpp:39
diff --git a/doc/api/a00082.html b/doc/api/a00082.html index 3c2889b3..ec13081e 100644 --- a/doc/api/a00082.html +++ b/doc/api/a00082.html @@ -3,8 +3,8 @@ - -GLM: multiple.hpp File Reference + +0.9.6: normalize_dot.hpp File Reference @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,53 +41,48 @@
-Namespaces | Functions
-
multiple.hpp File Reference
+
normalize_dot.hpp File Reference

Go to the source code of this file.

- - - -

-Namespaces

 glm
 
- - - - - - + + + + + +

Functions

template<typename genType >
genType higherMultiple (genType const &Source, genType const &Multiple)
 
template<typename genType >
genType lowerMultiple (genType const &Source, genType const &Multiple)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL T fastNormalizeDot (vecType< T, P > const &x, vecType< T, P > const &y)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL T normalizeDot (vecType< T, P > const &x, vecType< T, P > const &y)
 

Detailed Description

OpenGL Mathematics (glm.g-truc.net)

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_multiple

-
Date
2009-10-26 / 2011-06-07
+

GLM_GTX_normalize_dot

+
Date
2007-09-28 / 2011-06-07
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
+
See also
GLM Core (dependence)
-GLM_GTX_extented_min_max (dependence)
+GLM_GTX_fast_square_root (dependence)
-

Definition in file multiple.hpp.

+

Definition in file normalize_dot.hpp.

diff --git a/doc/api/a00082_source.html b/doc/api/a00082_source.html index b8639ee5..29ae6bb9 100644 --- a/doc/api/a00082_source.html +++ b/doc/api/a00082_source.html @@ -3,8 +3,8 @@ - -GLM: multiple.hpp Source File + +0.9.6: normalize_dot.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,51 +41,45 @@
-
multiple.hpp
+
normalize_dot.hpp
Go to the documentation of this file.
1 
-
39 #ifndef GLM_GTX_multiple
-
40 #define GLM_GTX_multiple
-
41 
-
42 // Dependency:
-
43 #include "../glm.hpp"
+
43 #pragma once
44 
-
45 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
46 # pragma message("GLM: GLM_GTX_multiple extension included")
-
47 #endif
-
48 
-
49 namespace glm
-
50 {
-
53 
-
61  template <typename genType>
-
62  genType higherMultiple(
-
63  genType const & Source,
-
64  genType const & Multiple);
-
65 
-
73  template <typename genType>
-
74  genType lowerMultiple(
-
75  genType const & Source,
-
76  genType const & Multiple);
-
77 
-
79 }//namespace glm
-
80 
-
81 #include "multiple.inl"
-
82 
-
83 #endif//GLM_GTX_multiple
-
genType lowerMultiple(genType const &Source, genType const &Multiple)
Lower multiple number of Source.
-
genType higherMultiple(genType const &Source, genType const &Multiple)
Higher multiple number of Source.
+
45 // Dependency:
+
46 #include "../gtx/fast_square_root.hpp"
+
47 
+
48 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+
49 # pragma message("GLM: GLM_GTX_normalize_dot extension included")
+
50 #endif
+
51 
+
52 namespace glm
+
53 {
+
56 
+
61  template <typename T, precision P, template <typename, precision> class vecType>
+
62  GLM_FUNC_DECL T normalizeDot(vecType<T, P> const & x, vecType<T, P> const & y);
+
63 
+
68  template <typename T, precision P, template <typename, precision> class vecType>
+
69  GLM_FUNC_DECL T fastNormalizeDot(vecType<T, P> const & x, vecType<T, P> const & y);
+
70 
+
72 }//namespace glm
+
73 
+
74 #include "normalize_dot.inl"
+
GLM_FUNC_DECL T normalizeDot(vecType< T, P > const &x, vecType< T, P > const &y)
Normalize parameters and returns the dot product of x and y.
+
GLM_FUNC_DECL T fastNormalizeDot(vecType< T, P > const &x, vecType< T, P > const &y)
Normalize parameters and returns the dot product of x and y.
+
Definition: _noise.hpp:39
diff --git a/doc/api/a00083.html b/doc/api/a00083.html index b9501bb0..3bfd7215 100644 --- a/doc/api/a00083.html +++ b/doc/api/a00083.html @@ -3,8 +3,8 @@ - -GLM: noise.hpp File Reference + +0.9.6: number_precision.hpp File Reference @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,54 +41,74 @@
-Namespaces | -Functions
+Typedefs
-
gtc/noise.hpp File Reference
+
number_precision.hpp File Reference

Go to the source code of this file.

- - - -

-Namespaces

 glm
 
- - - - - - - - - - + + + + + + + + + + + + + + + + + + + + +

-Functions

template<typename T , precision P, template< typename, precision > class vecType>
perlin (vecType< T, P > const &p)
 
template<typename T , precision P, template< typename, precision > class vecType>
perlin (vecType< T, P > const &p, vecType< T, P > const &rep)
 
template<typename T , precision P, template< typename, precision > class vecType>
simplex (vecType< T, P > const &p)
 

+Typedefs

+typedef f32 f32mat1
 
+typedef f32 f32mat1x1
 
+typedef f32 f32vec1
 
+typedef f64 f64mat1
 
+typedef f64 f64mat1x1
 
+typedef f64 f64vec1
 
+typedef u16 u16vec1
 
+typedef u32 u32vec1
 
+typedef u64 u64vec1
 
+typedef u8 u8vec1
 

Detailed Description

OpenGL Mathematics (glm.g-truc.net)

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTC_noise

-
Date
2011-04-21 / 2011-09-27
+

GLM_GTX_number_precision

+
Date
2007-05-10 / 2011-06-07
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
+
See also
GLM Core (dependence)
+
+GLM_GTC_type_precision (dependence)
+
+GLM_GTC_quaternion (dependence)
-

Definition in file gtc/noise.hpp.

+

Definition in file number_precision.hpp.

diff --git a/doc/api/a00083_source.html b/doc/api/a00083_source.html index d819247f..d19823c5 100644 --- a/doc/api/a00083_source.html +++ b/doc/api/a00083_source.html @@ -3,8 +3,8 @@ - -GLM: noise.hpp Source File + +0.9.6: number_precision.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,55 +41,75 @@
-
gtc/noise.hpp
+
number_precision.hpp
Go to the documentation of this file.
1 
-
41 #ifndef GLM_GTC_noise
-
42 #define GLM_GTC_noise
-
43 
-
44 // Dependencies
-
45 #include "../detail/setup.hpp"
-
46 #include "../detail/precision.hpp"
-
47 
-
48 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
49 # pragma message("GLM: GLM_GTC_noise extension included")
-
50 #endif
-
51 
-
52 namespace glm
-
53 {
-
56 
-
59  template <typename T, precision P, template<typename, precision> class vecType>
-
60  T perlin(
-
61  vecType<T, P> const & p);
-
62 
-
65  template <typename T, precision P, template<typename, precision> class vecType>
-
66  T perlin(
-
67  vecType<T, P> const & p,
-
68  vecType<T, P> const & rep);
-
69 
-
72  template <typename T, precision P, template<typename, precision> class vecType>
-
73  T simplex(
-
74  vecType<T, P> const & p);
-
75 
-
77 }//namespace glm
-
78 
-
79 #include "noise.inl"
-
80 
-
81 #endif//GLM_GTC_noise
-
T simplex(vecType< T, P > const &p)
Simplex noise.
-
T perlin(vecType< T, P > const &p)
Classic perlin noise.
+
44 #pragma once
+
45 
+
46 // Dependency:
+
47 #include "../glm.hpp"
+
48 #include "../gtc/type_precision.hpp"
+
49 
+
50 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+
51 # pragma message("GLM: GLM_GTX_number_precision extension included")
+
52 #endif
+
53 
+
54 namespace glm{
+
55 namespace gtx
+
56 {
+
58  // Unsigned int vector types
+
59 
+
62 
+
63  typedef u8 u8vec1;
+
64  typedef u16 u16vec1;
+
65  typedef u32 u32vec1;
+
66  typedef u64 u64vec1;
+
67 
+
69  // Float vector types
+
70 
+
71  typedef f32 f32vec1;
+
72  typedef f64 f64vec1;
+
73 
+
75  // Float matrix types
+
76 
+
77  typedef f32 f32mat1;
+
78  typedef f32 f32mat1x1;
+
79  typedef f64 f64mat1;
+
80  typedef f64 f64mat1x1;
+
81 
+
83 }//namespace gtx
+
84 }//namespace glm
+
85 
+
86 #include "number_precision.inl"
+
f64 f64mat1
Double-precision floating-point scalar. (from GLM_GTX_number_precision extension) ...
+
detail::uint8 u8
8 bit unsigned integer type.
Definition: fwd.hpp:926
+
u64 u64vec1
64bit unsigned integer scalar. (from GLM_GTX_number_precision extension)
+
u32 u32vec1
32bit unsigned integer scalar. (from GLM_GTX_number_precision extension)
+
detail::uint64 u64
64 bit unsigned integer type.
Definition: fwd.hpp:938
+
detail::uint16 u16
16 bit unsigned integer type.
Definition: fwd.hpp:930
+
detail::uint32 u32
32 bit unsigned integer type.
Definition: fwd.hpp:934
+
f32 f32mat1x1
Single-precision floating-point scalar. (from GLM_GTX_number_precision extension) ...
+
highp_float64_t f64
Default 64 bit double-precision floating-point scalar.
Definition: fwd.hpp:1541
+
highp_float32_t f32
Default 32 bit single-precision floating-point scalar.
Definition: fwd.hpp:1537
+
f32 f32mat1
Single-precision floating-point scalar. (from GLM_GTX_number_precision extension) ...
+
f32 f32vec1
Single-precision floating-point scalar. (from GLM_GTX_number_precision extension) ...
+
Definition: _noise.hpp:39
+
u8 u8vec1
8bit unsigned integer scalar. (from GLM_GTX_number_precision extension)
+
f64 f64vec1
Single-precision floating-point scalar. (from GLM_GTX_number_precision extension) ...
+
f64 f64mat1x1
Double-precision floating-point scalar. (from GLM_GTX_number_precision extension) ...
+
u16 u16vec1
16bit unsigned integer scalar. (from GLM_GTX_number_precision extension)
diff --git a/doc/api/a00084.html b/doc/api/a00084.html new file mode 100644 index 00000000..4b1086e1 --- /dev/null +++ b/doc/api/a00084.html @@ -0,0 +1,89 @@ + + + + + + +0.9.6: optimum_pow.hpp File Reference + + + + + + +
+
+ + + + + + + +
+
0.9.6 +
+
+
+ + + + + +
+
+
+Functions
+
+
optimum_pow.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + + + + +

+Functions

template<typename genType >
GLM_FUNC_DECL genType pow2 (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType pow3 (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType pow4 (genType const &x)
 
+

Detailed Description

+

OpenGL Mathematics (glm.g-truc.net)

+

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+

GLM_GTX_optimum_pow

+
Date
2005-12-21 / 2011-06-07
+
Author
Christophe Riccio
+
See also
GLM Core (dependence)
+ +

Definition in file optimum_pow.hpp.

+
+ + + + diff --git a/doc/api/a00084_source.html b/doc/api/a00084_source.html index df2858f0..33883627 100644 --- a/doc/api/a00084_source.html +++ b/doc/api/a00084_source.html @@ -3,8 +3,8 @@ - -GLM: noise.hpp Source File + +0.9.6: optimum_pow.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,27 +41,51 @@
-
gtx/noise.hpp
+
optimum_pow.hpp
-
1 
-
24 #if(defined(GLM_MESSAGES))
-
25 # pragma message("GLM: GLM_GTX_random extension is deprecated, include GLM_GTC_random (glm/gtc/noise.hpp) instead")
-
26 #endif
-
27 
-
28 // Promoted:
-
29 #include "../gtc/noise.hpp"
+Go to the documentation of this file.
1 
+
42 #pragma once
+
43 
+
44 // Dependency:
+
45 #include "../glm.hpp"
+
46 
+
47 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+
48 # pragma message("GLM: GLM_GTX_optimum_pow extension included")
+
49 #endif
+
50 
+
51 namespace glm{
+
52 namespace gtx
+
53 {
+
56 
+
60  template <typename genType>
+
61  GLM_FUNC_DECL genType pow2(genType const & x);
+
62 
+
66  template <typename genType>
+
67  GLM_FUNC_DECL genType pow3(genType const & x);
+
68 
+
72  template <typename genType>
+
73  GLM_FUNC_DECL genType pow4(genType const & x);
+
74 
+
76 }//namespace gtx
+
77 }//namespace glm
+
78 
+
79 #include "optimum_pow.inl"
+
GLM_FUNC_DECL genType pow3(genType const &x)
Returns x raised to the power of 3.
+
GLM_FUNC_DECL genType pow4(genType const &x)
Returns x raised to the power of 4.
+
GLM_FUNC_DECL genType pow2(genType const &x)
Returns x raised to the power of 2.
+
Definition: _noise.hpp:39
diff --git a/doc/api/a00085.html b/doc/api/a00085.html index b0938931..b81f8aef 100644 --- a/doc/api/a00085.html +++ b/doc/api/a00085.html @@ -3,8 +3,8 @@ - -GLM: norm.hpp File Reference + +0.9.6: orthonormalize.hpp File Reference @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,77 +41,48 @@
-Namespaces | Functions
-
norm.hpp File Reference
+
orthonormalize.hpp File Reference

Go to the source code of this file.

- - - -

-Namespaces

 glm
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + +

Functions

template<typename T >
distance2 (T const &p0, T const &p1)
 
template<typename genType >
genType::value_type distance2 (genType const &p0, genType const &p1)
 
template<typename T , precision P>
l1Norm (detail::tvec3< T, P > const &x, detail::tvec3< T, P > const &y)
 
template<typename T , precision P>
l1Norm (detail::tvec3< T, P > const &v)
 
template<typename T , precision P>
l2Norm (detail::tvec3< T, P > const &x, detail::tvec3< T, P > const &y)
 
template<typename T , precision P>
l2Norm (detail::tvec3< T, P > const &x)
 
template<typename T >
length2 (T const &x)
 
template<typename genType >
genType::value_type length2 (genType const &x)
 
template<typename T , precision P>
lxNorm (detail::tvec3< T, P > const &x, detail::tvec3< T, P > const &y, unsigned int Depth)
 
template<typename T , precision P>
lxNorm (detail::tvec3< T, P > const &x, unsigned int Depth)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat3x3< T, P > orthonormalize (tmat3x3< T, P > const &m)
 
template<typename T , precision P>
GLM_FUNC_DECL tvec3< T, P > orthonormalize (tvec3< T, P > const &x, tvec3< T, P > const &y)
 

Detailed Description

OpenGL Mathematics (glm.g-truc.net)

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_norm

+

GLM_GTX_orthonormalize

Date
2005-12-21 / 2011-06-07
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
+
See also
GLM Core (dependence)
-GLM_GTX_quaternion (dependence)
+GLM_GTX_extented_min_max (dependence)
-

Definition in file norm.hpp.

+

Definition in file orthonormalize.hpp.

diff --git a/doc/api/a00085_source.html b/doc/api/a00085_source.html index d339c0c7..3623d086 100644 --- a/doc/api/a00085_source.html +++ b/doc/api/a00085_source.html @@ -3,8 +3,8 @@ - -GLM: norm.hpp Source File + +0.9.6: orthonormalize.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,92 +41,46 @@
-
norm.hpp
+
orthonormalize.hpp
Go to the documentation of this file.
1 
-
39 #ifndef GLM_GTX_norm
-
40 #define GLM_GTX_norm
-
41 
-
42 // Dependency:
-
43 #include "../glm.hpp"
-
44 #include "../gtx/quaternion.hpp"
-
45 
-
46 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
47 # pragma message("GLM: GLM_GTX_norm extension included")
-
48 #endif
-
49 
-
50 namespace glm
-
51 {
-
54 
-
57  template <typename T>
-
58  T length2(
-
59  T const & x);
-
60 
-
63  template <typename genType>
-
64  typename genType::value_type length2(
-
65  genType const & x);
-
66 
-
69  template <typename T>
-
70  T distance2(
-
71  T const & p0,
-
72  T const & p1);
-
73 
-
76  template <typename genType>
-
77  typename genType::value_type distance2(
-
78  genType const & p0,
-
79  genType const & p1);
-
80 
-
83  template <typename T, precision P>
-
84  T l1Norm(
-
85  detail::tvec3<T, P> const & x,
-
86  detail::tvec3<T, P> const & y);
-
87 
-
90  template <typename T, precision P>
-
91  T l1Norm(
-
92  detail::tvec3<T, P> const & v);
-
93 
-
96  template <typename T, precision P>
-
97  T l2Norm(
-
98  detail::tvec3<T, P> const & x,
-
99  detail::tvec3<T, P> const & y);
-
100 
-
103  template <typename T, precision P>
-
104  T l2Norm(
-
105  detail::tvec3<T, P> const & x);
-
106 
-
109  template <typename T, precision P>
-
110  T lxNorm(
-
111  detail::tvec3<T, P> const & x,
-
112  detail::tvec3<T, P> const & y,
-
113  unsigned int Depth);
-
114 
-
117  template <typename T, precision P>
-
118  T lxNorm(
-
119  detail::tvec3<T, P> const & x,
-
120  unsigned int Depth);
-
121 
-
123 }//namespace glm
-
124 
-
125 #include "norm.inl"
-
126 
-
127 #endif//GLM_GTX_norm
-
T distance2(T const &p0, T const &p1)
Returns the squared distance between p0 and p1, i.e., length(p0 - p1).
-
T l1Norm(detail::tvec3< T, P > const &x, detail::tvec3< T, P > const &y)
Returns the L1 norm between x and y.
-
T l2Norm(detail::tvec3< T, P > const &x, detail::tvec3< T, P > const &y)
Returns the L2 norm between x and y.
-
T length2(T const &x)
Returns the squared length of x.
-
T lxNorm(detail::tvec3< T, P > const &x, detail::tvec3< T, P > const &y, unsigned int Depth)
Returns the L norm between x and y.
+
43 #pragma once
+
44 
+
45 // Dependency:
+
46 #include "../vec3.hpp"
+
47 #include "../mat3x3.hpp"
+
48 #include "../geometric.hpp"
+
49 
+
50 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+
51 # pragma message("GLM: GLM_GTX_orthonormalize extension included")
+
52 #endif
+
53 
+
54 namespace glm
+
55 {
+
58 
+
62  template <typename T, precision P>
+
63  GLM_FUNC_DECL tmat3x3<T, P> orthonormalize(tmat3x3<T, P> const & m);
+
64 
+
68  template <typename T, precision P>
+
69  GLM_FUNC_DECL tvec3<T, P> orthonormalize(tvec3<T, P> const & x, tvec3<T, P> const & y);
+
70 
+
72 }//namespace glm
+
73 
+
74 #include "orthonormalize.inl"
+
GLM_FUNC_DECL tvec3< T, P > orthonormalize(tvec3< T, P > const &x, tvec3< T, P > const &y)
Orthonormalizes x according y.
+
Definition: _noise.hpp:39
diff --git a/doc/api/a00086.html b/doc/api/a00086.html index 7c149730..c9070958 100644 --- a/doc/api/a00086.html +++ b/doc/api/a00086.html @@ -3,8 +3,8 @@ - -GLM: normal.hpp File Reference + +0.9.6: packing.hpp File Reference @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,50 +41,100 @@
-Namespaces | Functions
-
normal.hpp File Reference
+
gtc/packing.hpp File Reference

Go to the source code of this file.

- - - -

-Namespaces

 glm
 
- - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Functions

template<typename T , precision P>
detail::tvec3< T, P > triangleNormal (detail::tvec3< T, P > const &p1, detail::tvec3< T, P > const &p2, detail::tvec3< T, P > const &p3)
 
GLM_FUNC_DECL uint32 packF2x11_1x10 (vec3 const &v)
 
GLM_FUNC_DECL uint16 packHalf1x16 (float v)
 
GLM_FUNC_DECL uint64 packHalf4x16 (vec4 const &v)
 
GLM_FUNC_DECL uint32 packI3x10_1x2 (ivec4 const &v)
 
GLM_FUNC_DECL uint16 packSnorm1x16 (float v)
 
GLM_FUNC_DECL uint8 packSnorm1x8 (float s)
 
GLM_FUNC_DECL uint16 packSnorm2x8 (vec2 const &v)
 
GLM_FUNC_DECL uint32 packSnorm3x10_1x2 (vec4 const &v)
 
GLM_FUNC_DECL uint64 packSnorm4x16 (vec4 const &v)
 
GLM_FUNC_DECL uint32 packU3x10_1x2 (uvec4 const &v)
 
GLM_FUNC_DECL uint16 packUnorm1x16 (float v)
 
GLM_FUNC_DECL uint8 packUnorm1x8 (float v)
 
GLM_FUNC_DECL uint16 packUnorm2x8 (vec2 const &v)
 
GLM_FUNC_DECL uint32 packUnorm3x10_1x2 (vec4 const &v)
 
GLM_FUNC_DECL uint64 packUnorm4x16 (vec4 const &v)
 
GLM_FUNC_DECL vec3 unpackF2x11_1x10 (uint32 p)
 
GLM_FUNC_DECL float unpackHalf1x16 (uint16 v)
 
GLM_FUNC_DECL vec4 unpackHalf4x16 (uint64 p)
 
GLM_FUNC_DECL ivec4 unpackI3x10_1x2 (uint32 p)
 
GLM_FUNC_DECL float unpackSnorm1x16 (uint16 p)
 
GLM_FUNC_DECL float unpackSnorm1x8 (uint8 p)
 
GLM_FUNC_DECL vec2 unpackSnorm2x8 (uint16 p)
 
GLM_FUNC_DECL vec4 unpackSnorm3x10_1x2 (uint32 p)
 
GLM_FUNC_DECL vec4 unpackSnorm4x16 (uint64 const &p)
 
GLM_FUNC_DECL uvec4 unpackU3x10_1x2 (uint32 p)
 
GLM_FUNC_DECL float unpackUnorm1x16 (uint16 p)
 
GLM_FUNC_DECL float unpackUnorm1x8 (uint8 p)
 
GLM_FUNC_DECL vec2 unpackUnorm2x8 (uint16 p)
 
GLM_FUNC_DECL vec4 unpackUnorm3x10_1x2 (uint32 p)
 
GLM_FUNC_DECL vec4 unpackUnorm4x16 (uint64 p)
 

Detailed Description

OpenGL Mathematics (glm.g-truc.net)

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_normal

-
Date
2005-12-21 / 2011-06-07
+

GLM_GTC_packing

+
Date
2013-08-08 / 2013-08-08
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
-
-GLM_GTX_extented_min_max (dependence)
+
See also
GLM Core (dependence)
-

Definition in file normal.hpp.

+

Definition in file gtc/packing.hpp.

diff --git a/doc/api/a00086_source.html b/doc/api/a00086_source.html index 7d39e47b..4f4b3e6f 100644 --- a/doc/api/a00086_source.html +++ b/doc/api/a00086_source.html @@ -3,8 +3,8 @@ - -GLM: normal.hpp Source File + +0.9.6: packing.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,46 +41,133 @@
-
normal.hpp
+
gtc/packing.hpp
Go to the documentation of this file.
1 
-
39 #ifndef GLM_GTX_normal
-
40 #define GLM_GTX_normal
-
41 
-
42 // Dependency:
-
43 #include "../glm.hpp"
+
43 #pragma once
44 
-
45 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
46 # pragma message("GLM: GLM_GTX_normal extension included")
-
47 #endif
-
48 
-
49 namespace glm
-
50 {
-
53 
-
56  template <typename T, precision P>
-
57  detail::tvec3<T, P> triangleNormal(
-
58  detail::tvec3<T, P> const & p1,
-
59  detail::tvec3<T, P> const & p2,
-
60  detail::tvec3<T, P> const & p3);
-
61 
-
63 }//namespace glm
-
64 
-
65 #include "normal.inl"
-
66 
-
67 #endif//GLM_GTX_normal
-
detail::tvec3< T, P > triangleNormal(detail::tvec3< T, P > const &p1, detail::tvec3< T, P > const &p2, detail::tvec3< T, P > const &p3)
Computes triangle normal from triangle points.
+
45 // Dependency:
+
46 #include "type_precision.hpp"
+
47 
+
48 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+
49 # pragma message("GLM: GLM_GTC_packing extension included")
+
50 #endif
+
51 
+
52 namespace glm
+
53 {
+
56 
+
68  GLM_FUNC_DECL uint8 packUnorm1x8(float v);
+
69 
+
80  GLM_FUNC_DECL float unpackUnorm1x8(uint8 p);
+
81 
+
96  GLM_FUNC_DECL uint16 packUnorm2x8(vec2 const & v);
+
97 
+
112  GLM_FUNC_DECL vec2 unpackUnorm2x8(uint16 p);
+
113 
+
125  GLM_FUNC_DECL uint8 packSnorm1x8(float s);
+
126 
+
138  GLM_FUNC_DECL float unpackSnorm1x8(uint8 p);
+
139 
+
154  GLM_FUNC_DECL uint16 packSnorm2x8(vec2 const & v);
+
155 
+
170  GLM_FUNC_DECL vec2 unpackSnorm2x8(uint16 p);
+
171 
+
183  GLM_FUNC_DECL uint16 packUnorm1x16(float v);
+
184 
+
196  GLM_FUNC_DECL float unpackUnorm1x16(uint16 p);
+
197 
+
212  GLM_FUNC_DECL uint64 packUnorm4x16(vec4 const & v);
+
213 
+
228  GLM_FUNC_DECL vec4 unpackUnorm4x16(uint64 p);
+
229 
+
241  GLM_FUNC_DECL uint16 packSnorm1x16(float v);
+
242 
+
254  GLM_FUNC_DECL float unpackSnorm1x16(uint16 p);
+
255 
+
270  GLM_FUNC_DECL uint64 packSnorm4x16(vec4 const & v);
+
271 
+
286  GLM_FUNC_DECL vec4 unpackSnorm4x16(uint64 const & p);
+
287 
+
297  GLM_FUNC_DECL uint16 packHalf1x16(float v);
+
298 
+
308  GLM_FUNC_DECL float unpackHalf1x16(uint16 v);
+
309 
+
321  GLM_FUNC_DECL uint64 packHalf4x16(vec4 const & v);
+
322 
+
334  GLM_FUNC_DECL vec4 unpackHalf4x16(uint64 p);
+
335 
+
347  GLM_FUNC_DECL uint32 packI3x10_1x2(ivec4 const & v);
+
348 
+
358  GLM_FUNC_DECL ivec4 unpackI3x10_1x2(uint32 p);
+
359 
+
371  GLM_FUNC_DECL uint32 packU3x10_1x2(uvec4 const & v);
+
372 
+
382  GLM_FUNC_DECL uvec4 unpackU3x10_1x2(uint32 p);
+
383 
+
400  GLM_FUNC_DECL uint32 packSnorm3x10_1x2(vec4 const & v);
+
401 
+
417  GLM_FUNC_DECL vec4 unpackSnorm3x10_1x2(uint32 p);
+
418 
+
435  GLM_FUNC_DECL uint32 packUnorm3x10_1x2(vec4 const & v);
+
436 
+
452  GLM_FUNC_DECL vec4 unpackUnorm3x10_1x2(uint32 p);
+
453 
+
463  GLM_FUNC_DECL uint32 packF2x11_1x10(vec3 const & v);
+
464 
+
473  GLM_FUNC_DECL vec3 unpackF2x11_1x10(uint32 p);
+
474 
+
476 }// namespace glm
+
477 
+
478 #include "packing.inl"
+
GLM_FUNC_DECL uint8 packSnorm1x8(float s)
First, converts the normalized floating-point value v into 8-bit integer value.
+
GLM_FUNC_DECL vec4 unpackSnorm3x10_1x2(uint32 p)
First, unpacks a single 32-bit unsigned integer p into four 16-bit signed integers.
+
GLM_FUNC_DECL vec4 unpackSnorm4x16(uint64 const &p)
First, unpacks a single 64-bit unsigned integer p into four 16-bit signed integers.
+
GLM_FUNC_DECL uint32 packU3x10_1x2(uvec4 const &v)
Returns an unsigned integer obtained by converting the components of a four-component unsigned intege...
+
GLM_FUNC_DECL uint64 packHalf4x16(vec4 const &v)
Returns an unsigned integer obtained by converting the components of a four-component floating-point ...
+
highp_vec4 vec4
4 components vector of floating-point numbers.
Definition: type_vec.hpp:402
+
GLM_FUNC_DECL uvec4 unpackU3x10_1x2(uint32 p)
Unpacks a single 32-bit unsigned integer p into three 10-bit and one 2-bit unsigned integers...
+
GLM_FUNC_DECL uint8 packUnorm1x8(float v)
First, converts the normalized floating-point value v into a 8-bit integer value. ...
+
highp_ivec4 ivec4
4 components vector of signed integer numbers.
Definition: type_vec.hpp:458
+
GLM_FUNC_DECL float unpackSnorm1x16(uint16 p)
First, unpacks a single 16-bit unsigned integer p into a single 16-bit signed integers.
+
GLM_FUNC_DECL vec4 unpackUnorm3x10_1x2(uint32 p)
First, unpacks a single 32-bit unsigned integer p into four 16-bit signed integers.
+
GLM_FUNC_DECL vec2 unpackSnorm2x8(uint16 p)
First, unpacks a single 16-bit unsigned integer p into a pair of 8-bit signed integers.
+
GLM_FUNC_DECL uint16 packHalf1x16(float v)
Returns an unsigned integer obtained by converting the components of a floating-point scalar to the 1...
+
GLM_FUNC_DECL float unpackSnorm1x8(uint8 p)
First, unpacks a single 8-bit unsigned integer p into a single 8-bit signed integers.
+
GLM_FUNC_DECL uint32 packF2x11_1x10(vec3 const &v)
First, converts the first two components of the normalized floating-point value v into 11-bit signles...
+
GLM_FUNC_DECL uint16 packUnorm1x16(float v)
First, converts the normalized floating-point value v into a 16-bit integer value.
+
OpenGL Mathematics (glm.g-truc.net)
+
GLM_FUNC_DECL float unpackUnorm1x16(uint16 p)
First, unpacks a single 16-bit unsigned integer p into a of 16-bit unsigned integers.
+
GLM_FUNC_DECL uint64 packUnorm4x16(vec4 const &v)
First, converts each component of the normalized floating-point value v into 16-bit integer values...
+
GLM_FUNC_DECL ivec4 unpackI3x10_1x2(uint32 p)
Unpacks a single 32-bit unsigned integer p into three 10-bit and one 2-bit signed integers...
+
GLM_FUNC_DECL uint16 packSnorm1x16(float v)
First, converts the normalized floating-point value v into 16-bit integer value.
+
GLM_FUNC_DECL float unpackHalf1x16(uint16 v)
Returns a floating-point scalar with components obtained by unpacking a 16-bit unsigned integer into ...
+
GLM_FUNC_DECL uint32 packUnorm3x10_1x2(vec4 const &v)
First, converts the first three components of the normalized floating-point value v into 10-bit unsig...
+
GLM_FUNC_DECL vec3 unpackF2x11_1x10(uint32 p)
First, unpacks a single 32-bit unsigned integer p into two 11-bit signless floating-point values and ...
+
GLM_FUNC_DECL uint64 packSnorm4x16(vec4 const &v)
First, converts each component of the normalized floating-point value v into 16-bit integer values...
+
GLM_FUNC_DECL vec4 unpackHalf4x16(uint64 p)
Returns a four-component floating-point vector with components obtained by unpacking a 64-bit unsigne...
+
GLM_FUNC_DECL vec2 unpackUnorm2x8(uint16 p)
First, unpacks a single 16-bit unsigned integer p into a pair of 8-bit unsigned integers.
+
Definition: _noise.hpp:39
+
GLM_FUNC_DECL uint16 packUnorm2x8(vec2 const &v)
First, converts each component of the normalized floating-point value v into 8-bit integer values...
+
highp_vec3 vec3
3 components vector of floating-point numbers.
Definition: type_vec.hpp:397
+
highp_vec2 vec2
2 components vector of floating-point numbers.
Definition: type_vec.hpp:392
+
GLM_FUNC_DECL uint32 packI3x10_1x2(ivec4 const &v)
Returns an unsigned integer obtained by converting the components of a four-component signed integer ...
+
highp_uvec4 uvec4
4 components vector of unsigned integer numbers.
Definition: type_vec.hpp:486
+
GLM_FUNC_DECL float unpackUnorm1x8(uint8 p)
Convert a single 8-bit integer to a normalized floating-point value.
+
GLM_FUNC_DECL uint32 packSnorm3x10_1x2(vec4 const &v)
First, converts the first three components of the normalized floating-point value v into 10-bit signe...
+
GLM_FUNC_DECL vec4 unpackUnorm4x16(uint64 p)
First, unpacks a single 64-bit unsigned integer p into four 16-bit unsigned integers.
+
GLM_FUNC_DECL uint16 packSnorm2x8(vec2 const &v)
First, converts each component of the normalized floating-point value v into 8-bit integer values...
diff --git a/doc/api/a00087.html b/doc/api/a00087.html index b9030f1f..6027b8b4 100644 --- a/doc/api/a00087.html +++ b/doc/api/a00087.html @@ -3,8 +3,8 @@ - -GLM: normalize_dot.hpp File Reference + +0.9.6: packing.hpp File Reference @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,53 +41,33 @@
-
-Namespaces | -Functions
-
normalize_dot.hpp File Reference
+
packing.hpp File Reference

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
- - - - - - - -

-Functions

template<typename genType >
genType::value_type fastNormalizeDot (genType const &x, genType const &y)
 
template<typename genType >
genType::value_type normalizeDot (genType const &x, genType const &y)
 

Detailed Description

OpenGL Mathematics (glm.g-truc.net)

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_normalize_dot

-
Date
2007-09-28 / 2011-06-07
-
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
-
-GLM_GTX_fast_square_root (dependence)
+

GLM Core

+
Date
2013-12-24 / 2013-12-24
+
Author
Christophe Riccio
-

Definition in file normalize_dot.hpp.

+

Definition in file packing.hpp.

diff --git a/doc/api/a00087_source.html b/doc/api/a00087_source.html index cad118a4..48776ab9 100644 --- a/doc/api/a00087_source.html +++ b/doc/api/a00087_source.html @@ -3,8 +3,8 @@ - -GLM: normalize_dot.hpp Source File + +0.9.6: packing.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,52 +41,25 @@
-
normalize_dot.hpp
+
packing.hpp
Go to the documentation of this file.
1 
-
39 #ifndef GLM_GTX_normalize_dot
-
40 #define GLM_GTX_normalize_dot
-
41 
-
42 // Dependency:
-
43 #include "../glm.hpp"
-
44 #include "../gtx/fast_square_root.hpp"
-
45 
-
46 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
47 # pragma message("GLM: GLM_GTX_normalize_dot extension included")
-
48 #endif
-
49 
-
50 namespace glm
-
51 {
-
54 
-
58  template <typename genType>
-
59  typename genType::value_type normalizeDot(
-
60  genType const & x,
-
61  genType const & y);
-
62 
-
66  template <typename genType>
-
67  typename genType::value_type fastNormalizeDot(
-
68  genType const & x,
-
69  genType const & y);
-
70 
-
72 }//namespace glm
-
73 
-
74 #include "normalize_dot.inl"
-
75 
-
76 #endif//GLM_GTX_normalize_dot
-
genType::value_type fastNormalizeDot(genType const &x, genType const &y)
Normalize parameters and returns the dot product of x and y.
-
genType::value_type normalizeDot(genType const &x, genType const &y)
Normalize parameters and returns the dot product of x and y.
+
33 #pragma once
+
34 
+
35 #include "detail/func_packing.hpp"
+
OpenGL Mathematics (glm.g-truc.net)
diff --git a/doc/api/a00088.html b/doc/api/a00088.html deleted file mode 100644 index 92cb8634..00000000 --- a/doc/api/a00088.html +++ /dev/null @@ -1,121 +0,0 @@ - - - - - - -GLM: number_precision.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-Namespaces | -Typedefs
-
-
number_precision.hpp File Reference
-
-
- -

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
- - - - - - - - - - - - - - - - - - - - - -

-Typedefs

-typedef f32 f32mat1
 
-typedef f32 f32mat1x1
 
-typedef f32 f32vec1
 
-typedef f64 f64mat1
 
-typedef f64 f64mat1x1
 
-typedef f64 f64vec1
 
-typedef u16 u16vec1
 
-typedef u32 u32vec1
 
-typedef u64 u64vec1
 
-typedef u8 u8vec1
 
-

Detailed Description

-

OpenGL Mathematics (glm.g-truc.net)

-

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_number_precision

-
Date
2007-05-10 / 2011-06-07
-
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
-
-GLM_GTC_type_precision (dependence)
-
-GLM_GTC_quaternion (dependence)
- -

Definition in file number_precision.hpp.

-
- - - - diff --git a/doc/api/a00088_source.html b/doc/api/a00088_source.html index 0d344c67..1a7ece45 100644 --- a/doc/api/a00088_source.html +++ b/doc/api/a00088_source.html @@ -3,8 +3,8 @@ - -GLM: number_precision.hpp Source File + +0.9.6: pages.doxy Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,77 +41,21 @@
-
number_precision.hpp
+
pages.doxy
-Go to the documentation of this file.
1 
-
40 #ifndef GLM_GTX_number_precision
-
41 #define GLM_GTX_number_precision
-
42 
-
43 // Dependency:
-
44 #include "../glm.hpp"
-
45 #include "../gtc/type_precision.hpp"
-
46 
-
47 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
48 # pragma message("GLM: GLM_GTX_number_precision extension included")
-
49 #endif
-
50 
-
51 namespace glm{
-
52 namespace gtx
-
53 {
-
55  // Unsigned int vector types
-
56 
-
59 
-
60  typedef u8 u8vec1;
-
61  typedef u16 u16vec1;
-
62  typedef u32 u32vec1;
-
63  typedef u64 u64vec1;
-
64 
-
66  // Float vector types
-
67 
-
68  typedef f32 f32vec1;
-
69  typedef f64 f64vec1;
-
70 
-
72  // Float matrix types
-
73 
-
74  typedef f32 f32mat1;
-
75  typedef f32 f32mat1x1;
-
76  typedef f64 f64mat1;
-
77  typedef f64 f64mat1x1;
-
78 
-
80 }//namespace gtx
-
81 }//namespace glm
-
82 
-
83 #include "number_precision.inl"
-
84 
-
85 #endif//GLM_GTX_number_precision
-
highp_u16vec1 u16vec1
Default precision 16 bit unsigned integer scalar type.
Definition: fwd.hpp:1071
-
highp_u64vec1 u64vec1
Default precision 64 bit unsigned integer scalar type.
Definition: fwd.hpp:1309
-
highp_float32_t f32
Default 32 bit single-precision floating-point scalar.
Definition: fwd.hpp:1523
-
detail::uint8 u8
8 bit unsigned integer type.
Definition: fwd.hpp:911
-
f32 f32mat1
Single-precision floating-point scalar. (from GLM_GTX_number_precision extension) ...
-
highp_f64vec1 f64vec1
Default double-precision floating-point vector of 1 components.
Definition: fwd.hpp:2530
-
f64 f64mat1x1
Double-precision floating-point scalar. (from GLM_GTX_number_precision extension) ...
-
f64 f64mat1
Double-precision floating-point scalar. (from GLM_GTX_number_precision extension) ...
-
detail::uint64 u64
64 bit unsigned integer type.
Definition: fwd.hpp:923
-
detail::uint32 u32
32 bit unsigned integer type.
Definition: fwd.hpp:919
-
highp_f32vec1 f32vec1
Default single-precision floating-point vector of 1 components.
Definition: fwd.hpp:2423
-
highp_u8vec1 u8vec1
Default precision 8 bit unsigned integer scalar type.
Definition: fwd.hpp:991
-
highp_float64_t f64
Default 64 bit double-precision floating-point scalar.
Definition: fwd.hpp:1527
-
highp_u32vec1 u32vec1
Default precision 32 bit unsigned integer scalar type.
Definition: fwd.hpp:1150
-
detail::uint16 u16
16 bit unsigned integer type.
Definition: fwd.hpp:915
-
f32 f32mat1x1
Single-precision floating-point scalar. (from GLM_GTX_number_precision extension) ...
+
1 
diff --git a/doc/api/a00089.html b/doc/api/a00089.html index 041f67bd..0ea5ddd1 100644 --- a/doc/api/a00089.html +++ b/doc/api/a00089.html @@ -3,8 +3,8 @@ - -GLM: optimum_pow.hpp File Reference + +0.9.6: perpendicular.hpp File Reference @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,65 +41,45 @@
-Namespaces | Functions
-
optimum_pow.hpp File Reference
+
perpendicular.hpp File Reference

Go to the source code of this file.

- - - -

-Namespaces

 glm
 
- - - - - - - - - - - - - - - - - - - - + + +

Functions

template<typename genType >
genType pow2 (const genType &x)
 
template<typename genType >
genType pow3 (const genType &x)
 
template<typename genType >
genType pow4 (const genType &x)
 
bool powOfTwo (int num)
 
template<precision P>
detail::tvec2< bool, P > powOfTwo (detail::tvec2< int, P > const &x)
 
template<precision P>
detail::tvec3< bool, P > powOfTwo (detail::tvec3< int, P > const &x)
 
template<precision P>
detail::tvec4< bool, P > powOfTwo (detail::tvec4< int, P > const &x)
 
template<typename vecType >
GLM_FUNC_DECL vecType perp (vecType const &x, vecType const &Normal)
 

Detailed Description

OpenGL Mathematics (glm.g-truc.net)

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_optimum_pow

+

GLM_GTX_perpendicular

Date
2005-12-21 / 2011-06-07
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
+
See also
GLM Core (dependence)
+
+GLM_GTX_projection (dependence)
-

Definition in file optimum_pow.hpp.

+

Definition in file perpendicular.hpp.

diff --git a/doc/api/a00089_source.html b/doc/api/a00089_source.html index 05129d81..728336ca 100644 --- a/doc/api/a00089_source.html +++ b/doc/api/a00089_source.html @@ -3,8 +3,8 @@ - -GLM: optimum_pow.hpp Source File + +0.9.6: perpendicular.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,65 +41,44 @@
-
optimum_pow.hpp
+
perpendicular.hpp
Go to the documentation of this file.
1 
-
38 #ifndef GLM_GTX_optimum_pow
-
39 #define GLM_GTX_optimum_pow
-
40 
-
41 // Dependency:
-
42 #include "../glm.hpp"
-
43 
-
44 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
45 # pragma message("GLM: GLM_GTX_optimum_pow extension included")
-
46 #endif
-
47 
-
48 namespace glm{
-
49 namespace gtx
-
50 {
-
53 
-
56  template <typename genType>
-
57  genType pow2(const genType& x);
-
58 
-
61  template <typename genType>
-
62  genType pow3(const genType& x);
-
63 
-
66  template <typename genType>
-
67  genType pow4(const genType& x);
-
68 
-
71  bool powOfTwo(int num);
-
72 
-
75  template <precision P>
-
76  detail::tvec2<bool, P> powOfTwo(detail::tvec2<int, P> const & x);
-
77 
-
80  template <precision P>
-
81  detail::tvec3<bool, P> powOfTwo(detail::tvec3<int, P> const & x);
-
82 
-
85  template <precision P>
-
86  detail::tvec4<bool, P> powOfTwo(detail::tvec4<int, P> const & x);
-
87 
-
89 }//namespace gtx
-
90 }//namespace glm
-
91 
-
92 #include "optimum_pow.inl"
-
93 
-
94 #endif//GLM_GTX_optimum_pow
-
genType pow3(const genType &x)
Returns x raised to the power of 3.
-
genType pow4(const genType &x)
Returns x raised to the power of 4.
-
genType pow2(const genType &x)
Returns x raised to the power of 2.
-
bool powOfTwo(int num)
Checks if the parameter is a power of 2 number.
+
43 #pragma once
+
44 
+
45 // Dependency:
+
46 #include "../glm.hpp"
+
47 #include "../gtx/projection.hpp"
+
48 
+
49 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+
50 # pragma message("GLM: GLM_GTX_perpendicular extension included")
+
51 #endif
+
52 
+
53 namespace glm
+
54 {
+
57 
+
60  template <typename vecType>
+
61  GLM_FUNC_DECL vecType perp(
+
62  vecType const & x,
+
63  vecType const & Normal);
+
64 
+
66 }//namespace glm
+
67 
+
68 #include "perpendicular.inl"
+
GLM_FUNC_DECL vecType perp(vecType const &x, vecType const &Normal)
Projects x a perpendicular axis of Normal.
+
Definition: _noise.hpp:39
diff --git a/doc/api/a00090.html b/doc/api/a00090.html index a0b9b8aa..05d3483d 100644 --- a/doc/api/a00090.html +++ b/doc/api/a00090.html @@ -3,8 +3,8 @@ - -GLM: orthonormalize.hpp File Reference + +0.9.6: polar_coordinates.hpp File Reference @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,53 +41,46 @@
-Namespaces | Functions
-
orthonormalize.hpp File Reference
+
polar_coordinates.hpp File Reference

Go to the source code of this file.

- - - -

-Namespaces

 glm
 
- - - - - - + + + + + +

Functions

template<typename T , precision P>
detail::tmat3x3< T, P > orthonormalize (const detail::tmat3x3< T, P > &m)
 
template<typename T , precision P>
detail::tvec3< T, P > orthonormalize (const detail::tvec3< T, P > &x, const detail::tvec3< T, P > &y)
 
template<typename T , precision P>
GLM_FUNC_DECL tvec3< T, P > euclidean (tvec2< T, P > const &polar)
 
template<typename T , precision P>
GLM_FUNC_DECL tvec3< T, P > polar (tvec3< T, P > const &euclidean)
 

Detailed Description

OpenGL Mathematics (glm.g-truc.net)

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_orthonormalize

-
Date
2005-12-21 / 2011-06-07
+

GLM_GTX_polar_coordinates

+
Date
2007-03-06 / 2011-06-07
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
-
-GLM_GTX_extented_min_max (dependence)
+
See also
GLM Core (dependence)
-

Definition in file orthonormalize.hpp.

+

Definition in file polar_coordinates.hpp.

diff --git a/doc/api/a00090_source.html b/doc/api/a00090_source.html index 9e016ecf..441b5e20 100644 --- a/doc/api/a00090_source.html +++ b/doc/api/a00090_source.html @@ -3,8 +3,8 @@ - -GLM: orthonormalize.hpp Source File + +0.9.6: polar_coordinates.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,49 +41,47 @@
-
orthonormalize.hpp
+
polar_coordinates.hpp
Go to the documentation of this file.
1 
-
39 #ifndef GLM_GTX_orthonormalize
-
40 #define GLM_GTX_orthonormalize
-
41 
-
42 // Dependency:
-
43 #include "../glm.hpp"
-
44 
-
45 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
46 # pragma message("GLM: GLM_GTX_orthonormalize extension included")
-
47 #endif
-
48 
-
49 namespace glm
-
50 {
-
53 
-
56  template <typename T, precision P>
-
57  detail::tmat3x3<T, P> orthonormalize(
-
58  const detail::tmat3x3<T, P>& m);
-
59 
-
62  template <typename T, precision P>
-
63  detail::tvec3<T, P> orthonormalize(
-
64  const detail::tvec3<T, P>& x,
-
65  const detail::tvec3<T, P>& y);
-
66 
-
68 }//namespace glm
+
42 #pragma once
+
43 
+
44 // Dependency:
+
45 #include "../glm.hpp"
+
46 
+
47 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+
48 # pragma message("GLM: GLM_GTX_polar_coordinates extension included")
+
49 #endif
+
50 
+
51 namespace glm
+
52 {
+
55 
+
59  template <typename T, precision P>
+
60  GLM_FUNC_DECL tvec3<T, P> polar(
+
61  tvec3<T, P> const & euclidean);
+
62 
+
66  template <typename T, precision P>
+
67  GLM_FUNC_DECL tvec3<T, P> euclidean(
+
68  tvec2<T, P> const & polar);
69 
-
70 #include "orthonormalize.inl"
-
71 
-
72 #endif//GLM_GTX_orthonormalize
-
detail::tmat3x3< T, P > orthonormalize(const detail::tmat3x3< T, P > &m)
Returns the orthonormalized matrix of m.
+
71 }//namespace glm
+
72 
+
73 #include "polar_coordinates.inl"
+
GLM_FUNC_DECL tvec3< T, P > euclidean(tvec2< T, P > const &polar)
Convert Polar to Euclidean coordinates.
+
Definition: _noise.hpp:39
+
GLM_FUNC_DECL tvec3< T, P > polar(tvec3< T, P > const &euclidean)
Convert Euclidean to Polar coordinates, x is the xz distance, y, the latitude and z the longitude...
diff --git a/doc/api/a00091.html b/doc/api/a00091.html index 60e765f3..6facb999 100644 --- a/doc/api/a00091.html +++ b/doc/api/a00091.html @@ -3,8 +3,8 @@ - -GLM: packing.hpp File Reference + +0.9.6: precision.hpp File Reference @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,105 +41,33 @@
-
-Namespaces | -Functions
-
gtc/packing.hpp File Reference
+
precision.hpp File Reference

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

GLM_FUNC_DECL uint32 packF2x11_1x10 (vec3 const &v)
 
GLM_FUNC_DECL uint16 packHalf1x16 (float const &v)
 
GLM_FUNC_DECL uint64 packHalf4x16 (vec4 const &v)
 
GLM_FUNC_DECL uint32 packI3x10_1x2 (ivec4 const &v)
 
GLM_FUNC_DECL uint16 packSnorm1x16 (float const &v)
 
GLM_FUNC_DECL uint8 packSnorm1x8 (float const &s)
 
GLM_FUNC_DECL uint16 packSnorm2x8 (vec2 const &v)
 
GLM_FUNC_DECL uint32 packSnorm3x10_1x2 (vec4 const &v)
 
GLM_FUNC_DECL uint64 packSnorm4x16 (vec4 const &v)
 
GLM_FUNC_DECL uint32 packU3x10_1x2 (uvec4 const &v)
 
GLM_FUNC_DECL uint16 packUnorm1x16 (float const &v)
 
GLM_FUNC_DECL uint8 packUnorm1x8 (float const &v)
 
GLM_FUNC_DECL uint16 packUnorm2x8 (vec2 const &v)
 
GLM_FUNC_DECL uint32 packUnorm3x10_1x2 (vec4 const &v)
 
GLM_FUNC_DECL uint64 packUnorm4x16 (vec4 const &v)
 
GLM_FUNC_DECL vec3 unpackF2x11_1x10 (uint32 const &p)
 
GLM_FUNC_DECL float unpackHalf1x16 (uint16 const &v)
 
GLM_FUNC_DECL vec4 unpackHalf4x16 (uint64 const &p)
 
GLM_FUNC_DECL ivec4 unpackI3x10_1x2 (uint32 const &p)
 
GLM_FUNC_DECL float unpackSnorm1x16 (uint16 const &p)
 
GLM_FUNC_DECL float unpackSnorm1x8 (uint8 const &p)
 
GLM_FUNC_DECL vec2 unpackSnorm2x8 (uint16 const &p)
 
GLM_FUNC_DECL vec4 unpackSnorm3x10_1x2 (uint32 const &p)
 
GLM_FUNC_DECL vec4 unpackSnorm4x16 (uint64 const &p)
 
GLM_FUNC_DECL uvec4 unpackU3x10_1x2 (uint32 const &p)
 
GLM_FUNC_DECL float unpackUnorm1x16 (uint16 const &p)
 
GLM_FUNC_DECL float unpackUnorm1x8 (uint8 const &p)
 
GLM_FUNC_DECL vec2 unpackUnorm2x8 (uint16 const &p)
 
GLM_FUNC_DECL vec4 unpackUnorm3x10_1x2 (uint32 const &p)
 
GLM_FUNC_DECL vec4 unpackUnorm4x16 (uint64 const &p)
 

Detailed Description

OpenGL Mathematics (glm.g-truc.net)

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTC_packing

-
Date
2013-08-08 / 2013-08-08
-
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
+

GLM Core

+
Date
2013-04-01 / 2013-04-01
+
Author
Christophe Riccio
-

Definition in file gtc/packing.hpp.

+

Definition in file precision.hpp.

diff --git a/doc/api/a00091_source.html b/doc/api/a00091_source.html index b2a39f44..86e52d70 100644 --- a/doc/api/a00091_source.html +++ b/doc/api/a00091_source.html @@ -3,8 +3,8 @@ - -GLM: packing.hpp Source File + +0.9.6: precision.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,140 +41,34 @@
-
gtc/packing.hpp
+
precision.hpp
Go to the documentation of this file.
1 
-
39 #ifndef GLM_GTC_packing
-
40 #define GLM_GTC_packing
-
41 
-
42 // Dependency:
-
43 #include "type_precision.hpp"
-
44 
-
45 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
46 # pragma message("GLM: GLM_GTC_packing extension included")
-
47 #endif
-
48 
-
49 namespace glm
-
50 {
-
53 
-
65  GLM_FUNC_DECL uint8 packUnorm1x8(float const & v);
-
66 
-
77  GLM_FUNC_DECL float unpackUnorm1x8(uint8 const & p);
-
78 
-
93  GLM_FUNC_DECL uint16 packUnorm2x8(vec2 const & v);
-
94 
-
109  GLM_FUNC_DECL vec2 unpackUnorm2x8(uint16 const & p);
-
110 
-
122  GLM_FUNC_DECL uint8 packSnorm1x8(float const & s);
-
123 
-
135  GLM_FUNC_DECL float unpackSnorm1x8(uint8 const & p);
-
136 
-
151  GLM_FUNC_DECL uint16 packSnorm2x8(vec2 const & v);
-
152 
-
167  GLM_FUNC_DECL vec2 unpackSnorm2x8(uint16 const & p);
-
168 
-
180  GLM_FUNC_DECL uint16 packUnorm1x16(float const & v);
-
181 
-
193  GLM_FUNC_DECL float unpackUnorm1x16(uint16 const & p);
-
194 
-
209  GLM_FUNC_DECL uint64 packUnorm4x16(vec4 const & v);
-
210 
-
225  GLM_FUNC_DECL vec4 unpackUnorm4x16(uint64 const & p);
-
226 
-
238  GLM_FUNC_DECL uint16 packSnorm1x16(float const & v);
-
239 
-
251  GLM_FUNC_DECL float unpackSnorm1x16(uint16 const & p);
-
252 
-
267  GLM_FUNC_DECL uint64 packSnorm4x16(vec4 const & v);
-
268 
-
283  GLM_FUNC_DECL vec4 unpackSnorm4x16(uint64 const & p);
-
284 
-
294  GLM_FUNC_DECL uint16 packHalf1x16(float const & v);
-
295 
-
305  GLM_FUNC_DECL float unpackHalf1x16(uint16 const & v);
-
306 
-
318  GLM_FUNC_DECL uint64 packHalf4x16(vec4 const & v);
-
319 
-
331  GLM_FUNC_DECL vec4 unpackHalf4x16(uint64 const & p);
-
332 
-
344  GLM_FUNC_DECL uint32 packI3x10_1x2(ivec4 const & v);
-
345 
-
355  GLM_FUNC_DECL ivec4 unpackI3x10_1x2(uint32 const & p);
-
356 
-
368  GLM_FUNC_DECL uint32 packU3x10_1x2(uvec4 const & v);
-
369 
-
379  GLM_FUNC_DECL uvec4 unpackU3x10_1x2(uint32 const & p);
-
380 
-
397  GLM_FUNC_DECL uint32 packSnorm3x10_1x2(vec4 const & v);
-
398 
-
414  GLM_FUNC_DECL vec4 unpackSnorm3x10_1x2(uint32 const & p);
-
415 
-
432  GLM_FUNC_DECL uint32 packUnorm3x10_1x2(vec4 const & v);
-
433 
-
449  GLM_FUNC_DECL vec4 unpackUnorm3x10_1x2(uint32 const & p);
-
450 
-
460  GLM_FUNC_DECL uint32 packF2x11_1x10(vec3 const & v);
-
461 
-
470  GLM_FUNC_DECL vec3 unpackF2x11_1x10(uint32 const & p);
-
471 
-
473 }// namespace glm
-
474 
-
475 #include "packing.inl"
-
476 
-
477 #endif//GLM_GTC_packing
-
478 
-
highp_ivec4 ivec4
4 components vector of signed integer numbers.
Definition: type_vec.hpp:454
-
highp_vec3 vec3
3 components vector of floating-point numbers.
Definition: type_vec.hpp:393
-
detail::uint32 uint32
32 bit unsigned integer type.
Definition: type_int.hpp:96
-
GLM_FUNC_DECL float unpackUnorm1x16(uint16 const &p)
First, unpacks a single 16-bit unsigned integer p into a of 16-bit unsigned integers.
-
GLM_FUNC_DECL uint16 packUnorm2x8(vec2 const &v)
First, converts each component of the normalized floating-point value v into 8-bit integer values...
-
GLM_FUNC_DECL uint16 packSnorm1x16(float const &v)
First, converts the normalized floating-point value v into 16-bit integer value.
-
highp_vec4 vec4
4 components vector of floating-point numbers.
Definition: type_vec.hpp:398
-
GLM_FUNC_DECL uint8 packSnorm1x8(float const &s)
First, converts the normalized floating-point value v into 8-bit integer value.
-
GLM_FUNC_DECL float unpackUnorm1x8(uint8 const &p)
Convert a single 8-bit integer to a normalized floating-point value.
-
GLM_FUNC_DECL uint32 packUnorm3x10_1x2(vec4 const &v)
First, converts the first three components of the normalized floating-point value v into 10-bit unsig...
-
GLM_FUNC_DECL uint64 packSnorm4x16(vec4 const &v)
First, converts each component of the normalized floating-point value v into 16-bit integer values...
-
GLM_FUNC_DECL float unpackSnorm1x16(uint16 const &p)
First, unpacks a single 16-bit unsigned integer p into a single 16-bit signed integers.
-
GLM_FUNC_DECL uint32 packI3x10_1x2(ivec4 const &v)
Returns an unsigned integer obtained by converting the components of a four-component signed integer ...
-
detail::uint64 uint64
64 bit unsigned integer type.
Definition: type_int.hpp:97
-
GLM_FUNC_DECL vec4 unpackUnorm4x16(uint64 const &p)
First, unpacks a single 64-bit unsigned integer p into four 16-bit unsigned integers.
-
GLM_FUNC_DECL vec4 unpackUnorm3x10_1x2(uint32 const &p)
First, unpacks a single 32-bit unsigned integer p into four 16-bit signed integers.
-
GLM_FUNC_DECL uint32 packSnorm3x10_1x2(vec4 const &v)
First, converts the first three components of the normalized floating-point value v into 10-bit signe...
-
GLM_FUNC_DECL vec3 unpackF2x11_1x10(uint32 const &p)
First, unpacks a single 32-bit unsigned integer p into two 11-bit signless floating-point values and ...
-
GLM_FUNC_DECL uint32 packU3x10_1x2(uvec4 const &v)
Returns an unsigned integer obtained by converting the components of a four-component unsigned intege...
-
OpenGL Mathematics (glm.g-truc.net)
-
GLM_FUNC_DECL float unpackSnorm1x8(uint8 const &p)
First, unpacks a single 8-bit unsigned integer p into a single 8-bit signed integers.
-
GLM_FUNC_DECL uint16 packHalf1x16(float const &v)
Returns an unsigned integer obtained by converting the components of a floating-point scalar to the 1...
-
GLM_FUNC_DECL uint16 packUnorm1x16(float const &v)
First, converts the normalized floating-point value v into a 16-bit integer value.
-
detail::uint8 uint8
8 bit unsigned integer type.
Definition: type_int.hpp:94
-
GLM_FUNC_DECL uint16 packSnorm2x8(vec2 const &v)
First, converts each component of the normalized floating-point value v into 8-bit integer values...
-
GLM_FUNC_DECL ivec4 unpackI3x10_1x2(uint32 const &p)
Unpacks a single 32-bit unsigned integer p into three 10-bit and one 2-bit signed integers...
-
GLM_FUNC_DECL vec4 unpackSnorm4x16(uint64 const &p)
First, unpacks a single 64-bit unsigned integer p into four 16-bit signed integers.
-
GLM_FUNC_DECL vec4 unpackSnorm3x10_1x2(uint32 const &p)
First, unpacks a single 32-bit unsigned integer p into four 16-bit signed integers.
-
GLM_FUNC_DECL uint64 packHalf4x16(vec4 const &v)
Returns an unsigned integer obtained by converting the components of a four-component floating-point ...
-
GLM_FUNC_DECL uvec4 unpackU3x10_1x2(uint32 const &p)
Unpacks a single 32-bit unsigned integer p into three 10-bit and one 2-bit unsigned integers...
-
GLM_FUNC_DECL vec2 unpackUnorm2x8(uint16 const &p)
First, unpacks a single 16-bit unsigned integer p into a pair of 8-bit unsigned integers.
-
highp_uvec4 uvec4
4 components vector of unsigned integer numbers.
Definition: type_vec.hpp:482
-
GLM_FUNC_DECL float unpackHalf1x16(uint16 const &v)
Returns a floating-point scalar with components obtained by unpacking a 16-bit unsigned integer into ...
-
GLM_FUNC_DECL uint8 packUnorm1x8(float const &v)
First, converts the normalized floating-point value v into a 8-bit integer value. ...
-
detail::uint16 uint16
16 bit unsigned integer type.
Definition: type_int.hpp:95
-
GLM_FUNC_DECL vec2 unpackSnorm2x8(uint16 const &p)
First, unpacks a single 16-bit unsigned integer p into a pair of 8-bit signed integers.
-
GLM_FUNC_DECL uint64 packUnorm4x16(vec4 const &v)
First, converts each component of the normalized floating-point value v into 16-bit integer values...
-
highp_vec2 vec2
2 components vector of floating-point numbers.
Definition: type_vec.hpp:388
-
GLM_FUNC_DECL vec4 unpackHalf4x16(uint64 const &p)
Returns a four-component floating-point vector with components obtained by unpacking a 64-bit unsigne...
-
GLM_FUNC_DECL uint32 packF2x11_1x10(vec3 const &v)
First, converts the first two components of the normalized floating-point value v into 11-bit signles...
+
33 #pragma once
+
34 
+
35 namespace glm
+
36 {
+
37  enum precision
+
38  {
+
39  highp,
+
40  mediump,
+
41  lowp,
+
42  defaultp = highp
+
43  };
+
44 }//namespace glm
+
Definition: _noise.hpp:39
diff --git a/doc/api/a00092.html b/doc/api/a00092.html index 25ea59da..45dd5ddf 100644 --- a/doc/api/a00092.html +++ b/doc/api/a00092.html @@ -3,8 +3,8 @@ - -GLM: packing.hpp File Reference + +0.9.6: projection.hpp File Reference @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,32 +41,43 @@
+
+Functions
-
packing.hpp File Reference
+
projection.hpp File Reference

Go to the source code of this file.

+ + + + + +

+Functions

template<typename vecType >
GLM_FUNC_DECL vecType proj (vecType const &x, vecType const &Normal)
 

Detailed Description

OpenGL Mathematics (glm.g-truc.net)

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM Core

-
Date
2013-12-24 / 2013-12-24
-
Author
Christophe Riccio
+

GLM_GTX_projection

+
Date
2005-12-21 / 2011-06-07
+
Author
Christophe Riccio
+
See also
GLM Core (dependence)
-

Definition in file packing.hpp.

+

Definition in file projection.hpp.

diff --git a/doc/api/a00092_source.html b/doc/api/a00092_source.html index f66ce4f9..c106f497 100644 --- a/doc/api/a00092_source.html +++ b/doc/api/a00092_source.html @@ -3,8 +3,8 @@ - -GLM: packing.hpp Source File + +0.9.6: projection.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,27 +41,41 @@
-
packing.hpp
+
projection.hpp
Go to the documentation of this file.
1 
-
29 #ifndef GLM_PACKING_INCLUDED
-
30 #define GLM_PACKING_INCLUDED
-
31 
-
32 #include "detail/func_packing.hpp"
-
33 
-
34 #endif//GLM_PACKING_INCLUDED
+
42 #pragma once
+
43 
+
44 // Dependency:
+
45 #include "../geometric.hpp"
+
46 
+
47 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+
48 # pragma message("GLM: GLM_GTX_projection extension included")
+
49 #endif
+
50 
+
51 namespace glm
+
52 {
+
55 
+
59  template <typename vecType>
+
60  GLM_FUNC_DECL vecType proj(vecType const & x, vecType const & Normal);
+
61 
+
63 }//namespace glm
+
64 
+
65 #include "projection.inl"
+
GLM_FUNC_DECL vecType proj(vecType const &x, vecType const &Normal)
Projects x on Normal.
+
Definition: _noise.hpp:39
diff --git a/doc/api/a00093.html b/doc/api/a00093.html new file mode 100644 index 00000000..621ce97c --- /dev/null +++ b/doc/api/a00093.html @@ -0,0 +1,162 @@ + + + + + + +0.9.6: quaternion.hpp File Reference + + + + + + +
+
+ + + + + + + +
+
0.9.6 +
+
+
+ + + + + +
+
+
+Functions
+
+
gtc/quaternion.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename T , precision P>
GLM_FUNC_DECL T angle (tquat< T, P > const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL tquat< T, P > angleAxis (T const &angle, tvec3< T, P > const &axis)
 
template<typename T , precision P>
GLM_FUNC_DECL tvec3< T, P > axis (tquat< T, P > const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL tquat< T, P > conjugate (tquat< T, P > const &q)
 
template<typename T , precision P, template< typename, precision > class quatType>
GLM_FUNC_DECL T dot (quatType< T, P > const &x, quatType< T, P > const &y)
 
template<typename T , precision P>
GLM_FUNC_DECL tvec4< bool, P > equal (tquat< T, P > const &x, tquat< T, P > const &y)
 
template<typename T , precision P>
GLM_FUNC_DECL tvec3< T, P > eulerAngles (tquat< T, P > const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL tvec4< bool, P > greaterThan (tquat< T, P > const &x, tquat< T, P > const &y)
 
template<typename T , precision P>
GLM_FUNC_DECL tvec4< bool, P > greaterThanEqual (tquat< T, P > const &x, tquat< T, P > const &y)
 
template<typename T , precision P>
GLM_FUNC_DECL tquat< T, P > inverse (tquat< T, P > const &q)
 
template<typename T , precision P>
GLM_FUNC_DECL T length (tquat< T, P > const &q)
 
template<typename T , precision P>
GLM_FUNC_DECL tquat< T, P > lerp (tquat< T, P > const &x, tquat< T, P > const &y, T const &a)
 
template<typename T , precision P>
GLM_FUNC_DECL tvec4< bool, P > lessThan (tquat< T, P > const &x, tquat< T, P > const &y)
 
template<typename T , precision P>
GLM_FUNC_DECL tvec4< bool, P > lessThanEqual (tquat< T, P > const &x, tquat< T, P > const &y)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat3x3< T, P > mat3_cast (tquat< T, P > const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat4x4< T, P > mat4_cast (tquat< T, P > const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL tquat< T, P > mix (tquat< T, P > const &x, tquat< T, P > const &y, T const &a)
 
template<typename T , precision P>
GLM_FUNC_DECL tquat< T, P > normalize (tquat< T, P > const &q)
 
template<typename T , precision P>
GLM_FUNC_DECL tvec4< bool, P > notEqual (tquat< T, P > const &x, tquat< T, P > const &y)
 
template<typename T , precision P>
GLM_FUNC_DECL T pitch (tquat< T, P > const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL tquat< T, P > quat_cast (tmat3x3< T, P > const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL tquat< T, P > quat_cast (tmat4x4< T, P > const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL T roll (tquat< T, P > const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL tquat< T, P > rotate (tquat< T, P > const &q, T const &angle, tvec3< T, P > const &axis)
 
template<typename T , precision P>
GLM_FUNC_DECL tquat< T, P > slerp (tquat< T, P > const &x, tquat< T, P > const &y, T const &a)
 
template<typename T , precision P>
GLM_FUNC_DECL T yaw (tquat< T, P > const &x)
 
+

Detailed Description

+

OpenGL Mathematics (glm.g-truc.net)

+

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+

GLM_GTC_quaternion

+
Date
2009-05-21 / 2012-12-20
+
Author
Christophe Riccio
+
See also
GLM Core (dependence)
+
+gtc_half_float (dependence)
+
+GLM_GTC_constants (dependence)
+ +

Definition in file gtc/quaternion.hpp.

+
+ + + + diff --git a/doc/api/a00093_source.html b/doc/api/a00093_source.html index 5c60406f..0448c1e4 100644 --- a/doc/api/a00093_source.html +++ b/doc/api/a00093_source.html @@ -3,8 +3,8 @@ - -GLM: pages.doxy Source File + +0.9.6: quaternion.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,21 +41,237 @@
-
pages.doxy
+
gtc/quaternion.hpp
-
1 
+Go to the documentation of this file.
1 
+
44 #pragma once
+
45 
+
46 // Dependency:
+
47 #include "../mat3x3.hpp"
+
48 #include "../mat4x4.hpp"
+
49 #include "../vec3.hpp"
+
50 #include "../vec4.hpp"
+
51 #include "../gtc/constants.hpp"
+
52 
+
53 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+
54 # pragma message("GLM: GLM_GTC_quaternion extension included")
+
55 #endif
+
56 
+
57 namespace glm
+
58 {
+
61 
+
62  template <typename T, precision P>
+
63  struct tquat
+
64  {
+
65  typedef tquat<T, P> type;
+
66  typedef T value_type;
+
67 
+
68  public:
+
69  T x, y, z, w;
+
70 
+
72  // Component accesses
+
73 
+
74 # ifdef GLM_FORCE_SIZE_FUNC
+
75  typedef size_t size_type;
+
77  GLM_FUNC_DECL GLM_CONSTEXPR size_type size() const;
+
78 
+
79  GLM_FUNC_DECL T & operator[](size_type i);
+
80  GLM_FUNC_DECL T const & operator[](size_type i) const;
+
81 # else
+
82  typedef length_t length_type;
+
84  GLM_FUNC_DECL GLM_CONSTEXPR length_type length() const;
+
85 
+
86  GLM_FUNC_DECL T & operator[](length_type i);
+
87  GLM_FUNC_DECL T const & operator[](length_type i) const;
+
88 # endif//GLM_FORCE_SIZE_FUNC
+
89 
+
91  // Implicit basic constructors
+
92 
+
93  GLM_FUNC_DECL tquat();
+
94  template <precision Q>
+
95  GLM_FUNC_DECL tquat(tquat<T, Q> const & q);
+
96 
+
98  // Explicit basic constructors
+
99 
+
100  GLM_FUNC_DECL explicit tquat(ctor);
+
101  GLM_FUNC_DECL explicit tquat(T const & s, tvec3<T, P> const & v);
+
102  GLM_FUNC_DECL tquat(T const & w, T const & x, T const & y, T const & z);
+
103 
+
105  // Convertions
+
106 
+
107 # ifdef GLM_FORCE_EXPLICIT_CTOR
+
108  template <typename U, precision Q>
+
109  GLM_FUNC_DECL explicit tquat(tquat<U, Q> const & q);
+
110 # else
+
111  template <typename U, precision Q>
+
112  GLM_FUNC_DECL tquat(tquat<U, Q> const & q);
+
113 # endif
+
114 
+
115  // explicit conversion operators
+
116  GLM_FUNC_DECL explicit operator tmat3x3<T, P>();
+
117  GLM_FUNC_DECL explicit operator tmat4x4<T, P>();
+
118 
+
125  GLM_FUNC_DECL explicit tquat(tvec3<T, P> const & u, tvec3<T, P> const & v);
+
126 
+
128  GLM_FUNC_DECL explicit tquat(tvec3<T, P> const & eulerAngles);
+
129  GLM_FUNC_DECL explicit tquat(tmat3x3<T, P> const & m);
+
130  GLM_FUNC_DECL explicit tquat(tmat4x4<T, P> const & m);
+
131 
+
133  // Operators
+
134  GLM_FUNC_DECL tquat<T, P> & operator+=(tquat<T, P> const & q);
+
135  GLM_FUNC_DECL tquat<T, P> & operator*=(tquat<T, P> const & q);
+
136  GLM_FUNC_DECL tquat<T, P> & operator*=(T const & s);
+
137  GLM_FUNC_DECL tquat<T, P> & operator/=(T const & s);
+
138  };
+
139 
+
140  template <typename T, precision P>
+
141  GLM_FUNC_DECL tquat<T, P> operator-(tquat<T, P> const & q);
+
142 
+
143  template <typename T, precision P>
+
144  GLM_FUNC_DECL tquat<T, P> operator+(tquat<T, P> const & q, tquat<T, P> const & p);
+
145 
+
146  template <typename T, precision P>
+
147  GLM_FUNC_DECL tquat<T, P> operator*(tquat<T, P> const & q, tquat<T, P> const & p);
+
148 
+
149  template <typename T, precision P>
+
150  GLM_FUNC_DECL tvec3<T, P> operator*(tquat<T, P> const & q, tvec3<T, P> const & v);
+
151 
+
152  template <typename T, precision P>
+
153  GLM_FUNC_DECL tvec3<T, P> operator*(tvec3<T, P> const & v, tquat<T, P> const & q);
+
154 
+
155  template <typename T, precision P>
+
156  GLM_FUNC_DECL tvec4<T, P> operator*(tquat<T, P> const & q, tvec4<T, P> const & v);
+
157 
+
158  template <typename T, precision P>
+
159  GLM_FUNC_DECL tvec4<T, P> operator*(tvec4<T, P> const & v, tquat<T, P> const & q);
+
160 
+
161  template <typename T, precision P>
+
162  GLM_FUNC_DECL tquat<T, P> operator*(tquat<T, P> const & q, T const & s);
+
163 
+
164  template <typename T, precision P>
+
165  GLM_FUNC_DECL tquat<T, P> operator*(T const & s, tquat<T, P> const & q);
+
166 
+
167  template <typename T, precision P>
+
168  GLM_FUNC_DECL tquat<T, P> operator/(tquat<T, P> const & q, T const & s);
+
169 
+
173  template <typename T, precision P>
+
174  GLM_FUNC_DECL T length(tquat<T, P> const & q);
+
175 
+
179  template <typename T, precision P>
+
180  GLM_FUNC_DECL tquat<T, P> normalize(tquat<T, P> const & q);
+
181 
+
185  template <typename T, precision P, template <typename, precision> class quatType>
+
186  GLM_FUNC_DECL T dot(quatType<T, P> const & x, quatType<T, P> const & y);
+
187 
+
198  template <typename T, precision P>
+
199  GLM_FUNC_DECL tquat<T, P> mix(tquat<T, P> const & x, tquat<T, P> const & y, T const & a);
+
200 
+
209  template <typename T, precision P>
+
210  GLM_FUNC_DECL tquat<T, P> lerp(tquat<T, P> const & x, tquat<T, P> const & y, T const & a);
+
211 
+
220  template <typename T, precision P>
+
221  GLM_FUNC_DECL tquat<T, P> slerp(tquat<T, P> const & x, tquat<T, P> const & y, T const & a);
+
222 
+
226  template <typename T, precision P>
+
227  GLM_FUNC_DECL tquat<T, P> conjugate(tquat<T, P> const & q);
+
228 
+
232  template <typename T, precision P>
+
233  GLM_FUNC_DECL tquat<T, P> inverse(tquat<T, P> const & q);
+
234 
+
242  template <typename T, precision P>
+
243  GLM_FUNC_DECL tquat<T, P> rotate(tquat<T, P> const & q, T const & angle, tvec3<T, P> const & axis);
+
244 
+
249  template <typename T, precision P>
+
250  GLM_FUNC_DECL tvec3<T, P> eulerAngles(tquat<T, P> const & x);
+
251 
+
255  template <typename T, precision P>
+
256  GLM_FUNC_DECL T roll(tquat<T, P> const & x);
+
257 
+
261  template <typename T, precision P>
+
262  GLM_FUNC_DECL T pitch(tquat<T, P> const & x);
+
263 
+
267  template <typename T, precision P>
+
268  GLM_FUNC_DECL T yaw(tquat<T, P> const & x);
+
269 
+
273  template <typename T, precision P>
+
274  GLM_FUNC_DECL tmat3x3<T, P> mat3_cast(tquat<T, P> const & x);
+
275 
+
279  template <typename T, precision P>
+
280  GLM_FUNC_DECL tmat4x4<T, P> mat4_cast(tquat<T, P> const & x);
+
281 
+
285  template <typename T, precision P>
+
286  GLM_FUNC_DECL tquat<T, P> quat_cast(tmat3x3<T, P> const & x);
+
287 
+
291  template <typename T, precision P>
+
292  GLM_FUNC_DECL tquat<T, P> quat_cast(tmat4x4<T, P> const & x);
+
293 
+
297  template <typename T, precision P>
+
298  GLM_FUNC_DECL T angle(tquat<T, P> const & x);
+
299 
+
303  template <typename T, precision P>
+
304  GLM_FUNC_DECL tvec3<T, P> axis(tquat<T, P> const & x);
+
305 
+
312  template <typename T, precision P>
+
313  GLM_FUNC_DECL tquat<T, P> angleAxis(T const & angle, tvec3<T, P> const & axis);
+
314 
+
320  template <typename T, precision P>
+
321  GLM_FUNC_DECL tvec4<bool, P> lessThan(tquat<T, P> const & x, tquat<T, P> const & y);
+
322 
+
328  template <typename T, precision P>
+
329  GLM_FUNC_DECL tvec4<bool, P> lessThanEqual(tquat<T, P> const & x, tquat<T, P> const & y);
+
330 
+
336  template <typename T, precision P>
+
337  GLM_FUNC_DECL tvec4<bool, P> greaterThan(tquat<T, P> const & x, tquat<T, P> const & y);
+
338 
+
344  template <typename T, precision P>
+
345  GLM_FUNC_DECL tvec4<bool, P> greaterThanEqual(tquat<T, P> const & x, tquat<T, P> const & y);
+
346 
+
352  template <typename T, precision P>
+
353  GLM_FUNC_DECL tvec4<bool, P> equal(tquat<T, P> const & x, tquat<T, P> const & y);
+
354 
+
360  template <typename T, precision P>
+
361  GLM_FUNC_DECL tvec4<bool, P> notEqual(tquat<T, P> const & x, tquat<T, P> const & y);
+
363 } //namespace glm
+
364 
+
365 #include "quaternion.inl"
+
GLM_FUNC_DECL tquat< T, P > quat_cast(tmat4x4< T, P > const &x)
Converts a 4 * 4 matrix to a quaternion.
+
GLM_FUNC_DECL tquat< T, P > rotate(tquat< T, P > const &q, T const &angle, tvec3< T, P > const &axis)
Rotates a quaternion from a vector of 3 components axis and an angle.
+
GLM_FUNC_DECL tvec4< bool, P > lessThanEqual(tquat< T, P > const &x, tquat< T, P > const &y)
Returns the component-wise comparison of result x <= y.
+
GLM_FUNC_DECL tvec4< bool, P > lessThan(tquat< T, P > const &x, tquat< T, P > const &y)
Returns the component-wise comparison result of x < y.
+
GLM_FUNC_DECL tvec4< bool, P > notEqual(tquat< T, P > const &x, tquat< T, P > const &y)
Returns the component-wise comparison of result x != y.
+
GLM_FUNC_DECL tquat< T, P > inverse(tquat< T, P > const &q)
Returns the q inverse.
+
GLM_FUNC_DECL T length(tquat< T, P > const &q)
Returns the length of the quaternion.
+
GLM_FUNC_DECL tvec3< T, P > axis(tquat< T, P > const &x)
Returns the q rotation axis.
+
GLM_FUNC_DECL tquat< T, P > slerp(tquat< T, P > const &x, tquat< T, P > const &y, T const &a)
Spherical linear interpolation of two quaternions.
+
GLM_FUNC_DECL tmat3x3< T, P > mat3_cast(tquat< T, P > const &x)
Converts a quaternion to a 3 * 3 matrix.
+
GLM_FUNC_DECL T dot(quatType< T, P > const &x, quatType< T, P > const &y)
Returns dot product of q1 and q2, i.e., q1[0] * q2[0] + q1[1] * q2[1] + ...
+
GLM_FUNC_DECL T angle(tquat< T, P > const &x)
Returns the quaternion rotation angle.
+
GLM_FUNC_DECL tvec3< T, P > eulerAngles(tquat< T, P > const &x)
Returns euler angles, yitch as x, yaw as y, roll as z.
+
GLM_FUNC_DECL tvec4< bool, P > greaterThan(tquat< T, P > const &x, tquat< T, P > const &y)
Returns the component-wise comparison of result x > y.
+
GLM_FUNC_DECL tquat< T, P > mix(tquat< T, P > const &x, tquat< T, P > const &y, T const &a)
Spherical linear interpolation of two quaternions.
+
GLM_FUNC_DECL tquat< T, P > normalize(tquat< T, P > const &q)
Returns the normalized quaternion.
+
GLM_FUNC_DECL tvec4< bool, P > equal(tquat< T, P > const &x, tquat< T, P > const &y)
Returns the component-wise comparison of result x == y.
+
GLM_FUNC_DECL T pitch(tquat< T, P > const &x)
Returns pitch value of euler angles expressed in radians.
+
GLM_FUNC_DECL tvec4< bool, P > greaterThanEqual(tquat< T, P > const &x, tquat< T, P > const &y)
Returns the component-wise comparison of result x >= y.
+
GLM_FUNC_DECL T roll(tquat< T, P > const &x)
Returns roll value of euler angles expressed in radians.
+
Definition: _noise.hpp:39
+
GLM_FUNC_DECL tquat< T, P > conjugate(tquat< T, P > const &q)
Returns the q conjugate.
+
GLM_FUNC_DECL tmat4x4< T, P > mat4_cast(tquat< T, P > const &x)
Converts a quaternion to a 4 * 4 matrix.
+
GLM_FUNC_DECL tquat< T, P > angleAxis(T const &angle, tvec3< T, P > const &axis)
Build a quaternion from an angle and a normalized axis.
+
GLM_FUNC_DECL T yaw(tquat< T, P > const &x)
Returns yaw value of euler angles expressed in radians.
+
GLM_FUNC_DECL tquat< T, P > lerp(tquat< T, P > const &x, tquat< T, P > const &y, T const &a)
Linear interpolation of two quaternions.
diff --git a/doc/api/a00094.html b/doc/api/a00094.html index 11fc0aa4..e16f6d6b 100644 --- a/doc/api/a00094.html +++ b/doc/api/a00094.html @@ -3,8 +3,8 @@ - -GLM: perpendicular.hpp File Reference + +0.9.6: quaternion.hpp File Reference @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,50 +41,96 @@
-Namespaces | Functions
-
perpendicular.hpp File Reference
+
gtx/quaternion.hpp File Reference

Go to the source code of this file.

- - - -

-Namespaces

 glm
 
- - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Functions

template<typename vecType >
vecType perp (vecType const &x, vecType const &Normal)
 
template<typename T , precision P>
GLM_FUNC_DECL tvec3< T, P > cross (tquat< T, P > const &q, tvec3< T, P > const &v)
 
template<typename T , precision P>
GLM_FUNC_DECL tvec3< T, P > cross (tvec3< T, P > const &v, tquat< T, P > const &q)
 
template<typename T , precision P>
GLM_FUNC_DECL tquat< T, P > exp (tquat< T, P > const &q)
 
template<typename T , precision P>
GLM_FUNC_DECL T extractRealComponent (tquat< T, P > const &q)
 
template<typename T , precision P>
GLM_FUNC_DECL tquat< T, P > fastMix (tquat< T, P > const &x, tquat< T, P > const &y, T const &a)
 
template<typename T , precision P>
GLM_FUNC_DECL tquat< T, P > intermediate (tquat< T, P > const &prev, tquat< T, P > const &curr, tquat< T, P > const &next)
 
template<typename T , precision P>
GLM_FUNC_DECL T length2 (tquat< T, P > const &q)
 
template<typename T , precision P>
GLM_FUNC_DECL tquat< T, P > log (tquat< T, P > const &q)
 
template<typename T , precision P>
GLM_FUNC_DECL tquat< T, P > pow (tquat< T, P > const &x, T const &y)
 
template<typename T , precision P>
GLM_FUNC_DECL tvec3< T, P > rotate (tquat< T, P > const &q, tvec3< T, P > const &v)
 
template<typename T , precision P>
GLM_FUNC_DECL tvec4< T, P > rotate (tquat< T, P > const &q, tvec4< T, P > const &v)
 
template<typename T , precision P>
GLM_FUNC_DECL tquat< T, P > rotation (tvec3< T, P > const &orig, tvec3< T, P > const &dest)
 
template<typename T , precision P>
GLM_FUNC_DECL tquat< T, P > shortMix (tquat< T, P > const &x, tquat< T, P > const &y, T const &a)
 
template<typename T , precision P>
GLM_FUNC_DECL tquat< T, P > squad (tquat< T, P > const &q1, tquat< T, P > const &q2, tquat< T, P > const &s1, tquat< T, P > const &s2, T const &h)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat3x3< T, P > toMat3 (tquat< T, P > const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat4x4< T, P > toMat4 (tquat< T, P > const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL tquat< T, P > toQuat (tmat3x3< T, P > const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL tquat< T, P > toQuat (tmat4x4< T, P > const &x)
 

Detailed Description

OpenGL Mathematics (glm.g-truc.net)

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_perpendicular

+

GLM_GTX_quaternion

Date
2005-12-21 / 2011-06-07
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
+
See also
GLM Core (dependence)
-GLM_GTX_projection (dependence)
+GLM_GTX_extented_min_max (dependence)
-

Definition in file perpendicular.hpp.

+

Definition in file gtx/quaternion.hpp.

diff --git a/doc/api/a00094_source.html b/doc/api/a00094_source.html index 5507394a..66bca731 100644 --- a/doc/api/a00094_source.html +++ b/doc/api/a00094_source.html @@ -3,8 +3,8 @@ - -GLM: perpendicular.hpp Source File + +0.9.6: quaternion.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,46 +41,149 @@
-
perpendicular.hpp
+
gtx/quaternion.hpp
Go to the documentation of this file.
1 
-
39 #ifndef GLM_GTX_perpendicular
-
40 #define GLM_GTX_perpendicular
-
41 
-
42 // Dependency:
-
43 #include "../glm.hpp"
-
44 #include "../gtx/projection.hpp"
-
45 
-
46 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
47 # pragma message("GLM: GLM_GTX_perpendicular extension included")
-
48 #endif
-
49 
-
50 namespace glm
-
51 {
+
43 #pragma once
+
44 
+
45 // Dependency:
+
46 #include "../glm.hpp"
+
47 #include "../gtc/constants.hpp"
+
48 #include "../gtc/quaternion.hpp"
+
49 #include "../gtx/norm.hpp"
+
50 
+
51 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+
52 # pragma message("GLM: GLM_GTX_quaternion extension included")
+
53 #endif
54 
-
57  template <typename vecType>
-
58  vecType perp(
-
59  vecType const & x,
-
60  vecType const & Normal);
-
61 
-
63 }//namespace glm
-
64 
-
65 #include "perpendicular.inl"
-
66 
-
67 #endif//GLM_GTX_perpendicular
-
vecType perp(vecType const &x, vecType const &Normal)
Projects x a perpendicular axis of Normal.
+
55 namespace glm
+
56 {
+
59 
+
63  template<typename T, precision P>
+
64  GLM_FUNC_DECL tvec3<T, P> cross(
+
65  tquat<T, P> const & q,
+
66  tvec3<T, P> const & v);
+
67 
+
71  template<typename T, precision P>
+
72  GLM_FUNC_DECL tvec3<T, P> cross(
+
73  tvec3<T, P> const & v,
+
74  tquat<T, P> const & q);
+
75 
+
80  template<typename T, precision P>
+
81  GLM_FUNC_DECL tquat<T, P> squad(
+
82  tquat<T, P> const & q1,
+
83  tquat<T, P> const & q2,
+
84  tquat<T, P> const & s1,
+
85  tquat<T, P> const & s2,
+
86  T const & h);
+
87 
+
91  template<typename T, precision P>
+
92  GLM_FUNC_DECL tquat<T, P> intermediate(
+
93  tquat<T, P> const & prev,
+
94  tquat<T, P> const & curr,
+
95  tquat<T, P> const & next);
+
96 
+
100  template<typename T, precision P>
+
101  GLM_FUNC_DECL tquat<T, P> exp(
+
102  tquat<T, P> const & q);
+
103 
+
107  template<typename T, precision P>
+
108  GLM_FUNC_DECL tquat<T, P> log(
+
109  tquat<T, P> const & q);
+
110 
+
114  template<typename T, precision P>
+
115  GLM_FUNC_DECL tquat<T, P> pow(
+
116  tquat<T, P> const & x,
+
117  T const & y);
+
118 
+
122  //template<typename T, precision P>
+
123  //tquat<T, P> sqrt(
+
124  // tquat<T, P> const & q);
+
125 
+
129  template<typename T, precision P>
+
130  GLM_FUNC_DECL tvec3<T, P> rotate(
+
131  tquat<T, P> const & q,
+
132  tvec3<T, P> const & v);
+
133 
+
137  template<typename T, precision P>
+
138  GLM_FUNC_DECL tvec4<T, P> rotate(
+
139  tquat<T, P> const & q,
+
140  tvec4<T, P> const & v);
+
141 
+
145  template<typename T, precision P>
+
146  GLM_FUNC_DECL T extractRealComponent(
+
147  tquat<T, P> const & q);
+
148 
+
152  template<typename T, precision P>
+
153  GLM_FUNC_DECL tmat3x3<T, P> toMat3(
+
154  tquat<T, P> const & x){return mat3_cast(x);}
+
155 
+
159  template<typename T, precision P>
+
160  GLM_FUNC_DECL tmat4x4<T, P> toMat4(
+
161  tquat<T, P> const & x){return mat4_cast(x);}
+
162 
+
166  template<typename T, precision P>
+
167  GLM_FUNC_DECL tquat<T, P> toQuat(
+
168  tmat3x3<T, P> const & x){return quat_cast(x);}
+
169 
+
173  template<typename T, precision P>
+
174  GLM_FUNC_DECL tquat<T, P> toQuat(
+
175  tmat4x4<T, P> const & x){return quat_cast(x);}
+
176 
+
180  template<typename T, precision P>
+
181  GLM_FUNC_DECL tquat<T, P> shortMix(
+
182  tquat<T, P> const & x,
+
183  tquat<T, P> const & y,
+
184  T const & a);
+
185 
+
189  template<typename T, precision P>
+
190  GLM_FUNC_DECL tquat<T, P> fastMix(
+
191  tquat<T, P> const & x,
+
192  tquat<T, P> const & y,
+
193  T const & a);
+
194 
+
200  template<typename T, precision P>
+
201  GLM_FUNC_DECL tquat<T, P> rotation(
+
202  tvec3<T, P> const & orig,
+
203  tvec3<T, P> const & dest);
+
204 
+
208  template<typename T, precision P>
+
209  GLM_FUNC_DECL T length2(tquat<T, P> const & q);
+
210 
+
212 }//namespace glm
+
213 
+
214 #include "quaternion.inl"
+
GLM_FUNC_DECL tquat< T, P > exp(tquat< T, P > const &q)
Returns a exp of a quaternion.
+
GLM_FUNC_DECL tquat< T, P > toQuat(tmat4x4< T, P > const &x)
Converts a 4 * 4 matrix to a quaternion.
+
GLM_FUNC_DECL tquat< T, P > quat_cast(tmat3x3< T, P > const &x)
Converts a 3 * 3 matrix to a quaternion.
+
GLM_FUNC_DECL tmat3x3< T, P > toMat3(tquat< T, P > const &x)
Converts a quaternion to a 3 * 3 matrix.
+
GLM_FUNC_DECL tmat4x4< T, P > toMat4(tquat< T, P > const &x)
Converts a quaternion to a 4 * 4 matrix.
+
GLM_FUNC_DECL tquat< T, P > shortMix(tquat< T, P > const &x, tquat< T, P > const &y, T const &a)
Quaternion interpolation using the rotation short path.
+
GLM_FUNC_DECL tquat< T, P > rotation(tvec3< T, P > const &orig, tvec3< T, P > const &dest)
Compute the rotation between two vectors.
+
GLM_FUNC_DECL tquat< T, P > squad(tquat< T, P > const &q1, tquat< T, P > const &q2, tquat< T, P > const &s1, tquat< T, P > const &s2, T const &h)
Compute a point on a path according squad equation.
+
GLM_FUNC_DECL T extractRealComponent(tquat< T, P > const &q)
Extract the real component of a quaternion.
+
GLM_FUNC_DECL tquat< T, P > intermediate(tquat< T, P > const &prev, tquat< T, P > const &curr, tquat< T, P > const &next)
Returns an intermediate control point for squad interpolation.
+
GLM_FUNC_DECL tmat3x3< T, P > mat3_cast(tquat< T, P > const &x)
Converts a quaternion to a 3 * 3 matrix.
+
GLM_FUNC_DECL tquat< T, P > log(tquat< T, P > const &q)
Returns a log of a quaternion.
+
GLM_FUNC_DECL T length2(tquat< T, P > const &q)
Returns the squared length of x.
+
GLM_FUNC_DECL tvec3< T, P > cross(tvec3< T, P > const &v, tquat< T, P > const &q)
Compute a cross product between a vector and a quaternion.
+
Definition: _noise.hpp:39
+
GLM_FUNC_DECL tmat4x4< T, P > mat4_cast(tquat< T, P > const &x)
Converts a quaternion to a 4 * 4 matrix.
+
GLM_FUNC_DECL tquat< T, P > pow(tquat< T, P > const &x, T const &y)
Returns x raised to the y power.
+
GLM_FUNC_DECL tvec4< T, P > rotate(tquat< T, P > const &q, tvec4< T, P > const &v)
Rotates a 4 components vector by a quaternion.
+
GLM_FUNC_DECL tquat< T, P > fastMix(tquat< T, P > const &x, tquat< T, P > const &y, T const &a)
Quaternion normalized linear interpolation.
diff --git a/doc/api/a00095.html b/doc/api/a00095.html index dca96884..f7f875f7 100644 --- a/doc/api/a00095.html +++ b/doc/api/a00095.html @@ -3,8 +3,8 @@ - -GLM: polar_coordinates.hpp File Reference + +0.9.6: random.hpp File Reference @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,51 +41,62 @@
-Namespaces | Functions
-
polar_coordinates.hpp File Reference
+
random.hpp File Reference

Go to the source code of this file.

- - - -

-Namespaces

 glm
 
- - - - - - + + + + + + + + + + + + + + + + + +

Functions

template<typename T , precision P>
detail::tvec3< T, P > euclidean (detail::tvec2< T, P > const &polar)
 
template<typename T , precision P>
detail::tvec3< T, P > polar (detail::tvec3< T, P > const &euclidean)
 
template<typename T >
GLM_FUNC_DECL tvec3< T, defaultp > ballRand (T Radius)
 
template<typename T >
GLM_FUNC_DECL tvec2< T, defaultp > circularRand (T Radius)
 
template<typename T >
GLM_FUNC_DECL tvec2< T, defaultp > diskRand (T Radius)
 
template<typename genType >
GLM_FUNC_DECL genType gaussRand (genType Mean, genType Deviation)
 
template<typename genTYpe >
GLM_FUNC_DECL genTYpe linearRand (genTYpe Min, genTYpe Max)
 
template<typename T >
GLM_FUNC_DECL tvec3< T, defaultp > sphericalRand (T Radius)
 

Detailed Description

OpenGL Mathematics (glm.g-truc.net)

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_polar_coordinates

-
Date
2007-03-06 / 2011-06-07
+

GLM_GTC_random

+
Date
2011-09-18 / 2011-09-18
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
+
See also
GLM Core (dependence)
+
+gtc_half_float (dependence)
+
+gtx_random (extended)
-

Definition in file polar_coordinates.hpp.

+

Definition in file random.hpp.

diff --git a/doc/api/a00095_source.html b/doc/api/a00095_source.html index 96c878c8..d3b10db6 100644 --- a/doc/api/a00095_source.html +++ b/doc/api/a00095_source.html @@ -3,8 +3,8 @@ - -GLM: polar_coordinates.hpp Source File + +0.9.6: random.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,49 +41,75 @@
-
polar_coordinates.hpp
+
random.hpp
Go to the documentation of this file.
1 
-
38 #ifndef GLM_GTX_polar_coordinates
-
39 #define GLM_GTX_polar_coordinates
-
40 
-
41 // Dependency:
-
42 #include "../glm.hpp"
-
43 
-
44 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
45 # pragma message("GLM: GLM_GTX_polar_coordinates extension included")
-
46 #endif
-
47 
-
48 namespace glm
-
49 {
-
52 
-
56  template <typename T, precision P>
-
57  detail::tvec3<T, P> polar(
-
58  detail::tvec3<T, P> const & euclidean);
-
59 
-
63  template <typename T, precision P>
-
64  detail::tvec3<T, P> euclidean(
-
65  detail::tvec2<T, P> const & polar);
-
66 
-
68 }//namespace glm
+
44 #pragma once
+
45 
+
46 // Dependency:
+
47 #include "../vec2.hpp"
+
48 #include "../vec3.hpp"
+
49 
+
50 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+
51 # pragma message("GLM: GLM_GTC_random extension included")
+
52 #endif
+
53 
+
54 namespace glm
+
55 {
+
58 
+
65  template <typename genTYpe>
+
66  GLM_FUNC_DECL genTYpe linearRand(
+
67  genTYpe Min,
+
68  genTYpe Max);
69 
-
70 #include "polar_coordinates.inl"
-
71 
-
72 #endif//GLM_GTX_polar_coordinates
-
detail::tvec3< T, P > euclidean(detail::tvec2< T, P > const &polar)
Convert Polar to Euclidean coordinates.
-
detail::tvec3< T, P > polar(detail::tvec3< T, P > const &euclidean)
Convert Euclidean to Polar coordinates, x is the xz distance, y, the latitude and z the longitude...
+
70  template <typename T, precision P, template <typename, precision> class vecType>
+
71  GLM_FUNC_DECL vecType<T, P> linearRand(
+
72  vecType<T, P> const & Min,
+
73  vecType<T, P> const & Max);
+
74 
+
80  template <typename genType>
+
81  GLM_FUNC_DECL genType gaussRand(
+
82  genType Mean,
+
83  genType Deviation);
+
84 
+
89  template <typename T>
+
90  GLM_FUNC_DECL tvec2<T, defaultp> circularRand(
+
91  T Radius);
+
92 
+
97  template <typename T>
+
98  GLM_FUNC_DECL tvec3<T, defaultp> sphericalRand(
+
99  T Radius);
+
100 
+
105  template <typename T>
+
106  GLM_FUNC_DECL tvec2<T, defaultp> diskRand(
+
107  T Radius);
+
108 
+
113  template <typename T>
+
114  GLM_FUNC_DECL tvec3<T, defaultp> ballRand(
+
115  T Radius);
+
116 
+
118 }//namespace glm
+
119 
+
120 #include "random.inl"
+
GLM_FUNC_DECL genType gaussRand(genType Mean, genType Deviation)
Generate random numbers in the interval [Min, Max], according a gaussian distribution.
+
GLM_FUNC_DECL genTYpe linearRand(genTYpe Min, genTYpe Max)
Generate random numbers in the interval [Min, Max], according a linear distribution.
+
GLM_FUNC_DECL tvec3< T, defaultp > sphericalRand(T Radius)
Generate a random 3D vector which coordinates are regulary distributed on a sphere of a given radius...
+
GLM_FUNC_DECL tvec2< T, defaultp > diskRand(T Radius)
Generate a random 2D vector which coordinates are regulary distributed within the area of a disk of a...
+
Definition: _noise.hpp:39
+
GLM_FUNC_DECL tvec3< T, defaultp > ballRand(T Radius)
Generate a random 3D vector which coordinates are regulary distributed within the volume of a ball of...
+
GLM_FUNC_DECL tvec2< T, defaultp > circularRand(T Radius)
Generate a random 2D vector which coordinates are regulary distributed on a circle of a given radius...
diff --git a/doc/api/a00096.html b/doc/api/a00096.html new file mode 100644 index 00000000..7b560d4c --- /dev/null +++ b/doc/api/a00096.html @@ -0,0 +1,73 @@ + + + + + + +0.9.6: range.hpp File Reference + + + + + + +
+
+ + + + + + + +
+
0.9.6 +
+
+
+ + + + + +
+
+
+
range.hpp File Reference
+
+
+ +

Go to the source code of this file.

+

Detailed Description

+

OpenGL Mathematics (glm.g-truc.net)

+

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+

GLM_GTX_range

+
Date
2014-09-19 / 2014-09-19
+
Author
Joshua Moerman
+ +

Definition in file range.hpp.

+
+ + + + diff --git a/doc/api/a00096_source.html b/doc/api/a00096_source.html index cf2d1aa2..7fa64975 100644 --- a/doc/api/a00096_source.html +++ b/doc/api/a00096_source.html @@ -3,8 +3,8 @@ - -GLM: precision.hpp Source File + +0.9.6: range.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,36 +41,82 @@
-
precision.hpp
+
range.hpp
-
1 
-
29 #ifndef GLM_CORE_PRECISION_INCLUDED
-
30 #define GLM_CORE_PRECISION_INCLUDED
-
31 
-
32 namespace glm
-
33 {
-
34  enum precision
-
35  {
-
36  highp,
-
37  mediump,
-
38  lowp,
-
39  defaultp = highp
-
40  };
-
41 }//namespace glm
+Go to the documentation of this file.
1 
+
41 #pragma once
42 
-
43 #endif//GLM_CORE_PRECISION_INCLUDED
+
43 // Dependencies
+
44 #include "../detail/setup.hpp"
+
45 
+
46 #if !GLM_HAS_RANGE_FOR
+
47 # error "GLM_GTX_range requires C++11 suppport or 'range for'"
+
48 #endif
+
49 
+
50 #include "../gtc/type_ptr.hpp"
+
51 
+
52 namespace glm{
+
53 namespace detail
+
54 {
+
55  /* The glm types provide a .length() member, but for matrices
+
56  this only defines the number of columns, so we need to work around this */
+
57  template <typename T, precision P>
+
58  detail::component_count_t number_of_elements_(tvec2<T, P> const & v){
+
59  return detail::component_count(v);
+
60  }
+
61 
+
62  template <typename T, precision P>
+
63  detail::component_count_t number_of_elements_(tvec3<T, P> const & v){
+
64  return detail::component_count(v);
+
65  }
+
66 
+
67  template <typename T, precision P>
+
68  detail::component_count_t number_of_elements_(tvec4<T, P> const & v){
+
69  return detail::component_count(v);
+
70  }
+
71 
+
72  template <typename genType>
+
73  detail::component_count_t number_of_elements_(genType const & m){
+
74  return detail::component_count(m) * detail::component_count(m[0]);
+
75  }
+
76 }//namespace
+
77 
+
80 
+
81  template <typename genType>
+
82  const typename genType::value_type * begin(genType const & v){
+
83  return value_ptr(v);
+
84  }
+
85 
+
86  template <typename genType>
+
87  const typename genType::value_type * end(genType const & v){
+
88  return begin(v) + detail::number_of_elements_(v);
+
89  }
+
90 
+
91  template <typename genType>
+
92  typename genType::value_type * begin(genType& v){
+
93  return value_ptr(v);
+
94  }
+
95 
+
96  template <typename genType>
+
97  typename genType::value_type * end(genType& v){
+
98  return begin(v) + detail::number_of_elements_(v);
+
99  }
+
100 
+
102 }//namespace glm
+
GLM_FUNC_DECL genType::value_type const * value_ptr(genType const &vec)
Return the constant address to the data of the input parameter.
+
Definition: _noise.hpp:39
diff --git a/doc/api/a00097.html b/doc/api/a00097.html index f7dc68ad..ebb61e5f 100644 --- a/doc/api/a00097.html +++ b/doc/api/a00097.html @@ -3,8 +3,8 @@ - -GLM: projection.hpp File Reference + +0.9.6: raw_data.hpp File Reference @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,48 +41,48 @@
-Namespaces | -Functions
+Typedefs
-
projection.hpp File Reference
+
raw_data.hpp File Reference

Go to the source code of this file.

- - - -

-Namespaces

 glm
 
- - - - + + + + + + + + +

-Functions

template<typename vecType >
vecType proj (vecType const &x, vecType const &Normal)
 

+Typedefs

typedef detail::uint8 byte
 
typedef detail::uint32 dword
 
typedef detail::uint64 qword
 
typedef detail::uint16 word
 

Detailed Description

OpenGL Mathematics (glm.g-truc.net)

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_projection

-
Date
2005-12-21 / 2011-06-07
+

GLM_GTX_raw_data

+
Date
2008-11-19 / 2011-06-07
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
+
See also
GLM Core (dependence)
-

Definition in file projection.hpp.

+

Definition in file raw_data.hpp.

diff --git a/doc/api/a00097_source.html b/doc/api/a00097_source.html index eef59d8e..4e8efdd1 100644 --- a/doc/api/a00097_source.html +++ b/doc/api/a00097_source.html @@ -3,8 +3,8 @@ - -GLM: projection.hpp Source File + +0.9.6: raw_data.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,45 +41,50 @@
-
projection.hpp
+
raw_data.hpp
Go to the documentation of this file.
1 
-
38 #ifndef GLM_GTX_projection
-
39 #define GLM_GTX_projection
-
40 
-
41 // Dependency:
-
42 #include "../glm.hpp"
+
42 #pragma once
43 
-
44 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
45 # pragma message("GLM: GLM_GTX_projection extension included")
-
46 #endif
-
47 
-
48 namespace glm
-
49 {
-
52 
-
55  template <typename vecType>
-
56  vecType proj(
-
57  vecType const & x,
-
58  vecType const & Normal);
-
59 
-
61 }//namespace glm
-
62 
-
63 #include "projection.inl"
+
44 // Dependencies
+
45 #include "../detail/setup.hpp"
+
46 #include "../detail/type_int.hpp"
+
47 
+
48 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+
49 # pragma message("GLM: GLM_GTX_raw_data extension included")
+
50 #endif
+
51 
+
52 namespace glm
+
53 {
+
56 
+
59  typedef detail::uint8 byte;
+
60 
+
63  typedef detail::uint16 word;
64 
-
65 #endif//GLM_GTX_projection
-
vecType proj(vecType const &x, vecType const &Normal)
Projects x on Normal.
+
67  typedef detail::uint32 dword;
+
68 
+
71  typedef detail::uint64 qword;
+
72 
+
74 }// namespace glm
+
75 
+
76 #include "raw_data.inl"
+
detail::uint32 dword
Type for dword numbers.
Definition: raw_data.hpp:67
+
detail::uint64 qword
Type for qword numbers.
Definition: raw_data.hpp:71
+
detail::uint16 word
Type for word numbers.
Definition: raw_data.hpp:63
+
detail::uint8 byte
Type for byte numbers.
Definition: raw_data.hpp:59
+
Definition: _noise.hpp:39
diff --git a/doc/api/a00098.html b/doc/api/a00098.html index 0720d17e..1dfc0c0e 100644 --- a/doc/api/a00098.html +++ b/doc/api/a00098.html @@ -3,8 +3,8 @@ - -GLM: quaternion.hpp File Reference + +0.9.6: reciprocal.hpp File Reference @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,135 +41,76 @@
-Namespaces | Functions
-
gtc/quaternion.hpp File Reference
+
reciprocal.hpp File Reference

Go to the source code of this file.

- - - -

-Namespaces

 glm
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Functions

template<typename T , precision P>
GLM_FUNC_DECL T angle (detail::tquat< T, P > const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tquat< T, P > angleAxis (T const &angle, detail::tvec3< T, P > const &axis)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tvec3< T, P > axis (detail::tquat< T, P > const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tquat< T, P > conjugate (detail::tquat< T, P > const &q)
 
template<typename T , precision P, template< typename, precision > class quatType>
GLM_FUNC_DECL T dot (quatType< T, P > const &x, quatType< T, P > const &y)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tvec4
-< bool, P > 
equal (detail::tquat< T, P > const &x, detail::tquat< T, P > const &y)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tvec3< T, P > eulerAngles (detail::tquat< T, P > const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tvec4
-< bool, P > 
greaterThan (detail::tquat< T, P > const &x, detail::tquat< T, P > const &y)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tvec4
-< bool, P > 
greaterThanEqual (detail::tquat< T, P > const &x, detail::tquat< T, P > const &y)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tquat< T, P > inverse (detail::tquat< T, P > const &q)
 
template<typename T , precision P>
GLM_FUNC_DECL T length (detail::tquat< T, P > const &q)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tquat< T, P > lerp (detail::tquat< T, P > const &x, detail::tquat< T, P > const &y, T const &a)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tvec4
-< bool, P > 
lessThan (detail::tquat< T, P > const &x, detail::tquat< T, P > const &y)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tvec4
-< bool, P > 
lessThanEqual (detail::tquat< T, P > const &x, detail::tquat< T, P > const &y)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tmat3x3
-< T, P > 
mat3_cast (detail::tquat< T, P > const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tmat4x4
-< T, P > 
mat4_cast (detail::tquat< T, P > const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tquat< T, P > mix (detail::tquat< T, P > const &x, detail::tquat< T, P > const &y, T const &a)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tquat< T, P > normalize (detail::tquat< T, P > const &q)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tvec4
-< bool, P > 
notEqual (detail::tquat< T, P > const &x, detail::tquat< T, P > const &y)
 
template<typename T , precision P>
GLM_FUNC_DECL T pitch (detail::tquat< T, P > const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tquat< T, P > quat_cast (detail::tmat3x3< T, P > const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tquat< T, P > quat_cast (detail::tmat4x4< T, P > const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL T roll (detail::tquat< T, P > const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tquat< T, P > rotate (detail::tquat< T, P > const &q, T const &angle, detail::tvec3< T, P > const &axis)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tquat< T, P > slerp (detail::tquat< T, P > const &x, detail::tquat< T, P > const &y, T const &a)
 
template<typename T , precision P>
GLM_FUNC_DECL T yaw (detail::tquat< T, P > const &x)
 
template<typename genType >
GLM_FUNC_DECL genType acot (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType acoth (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType acsc (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType acsch (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType asec (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType asech (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType cot (genType const &angle)
 
template<typename genType >
GLM_FUNC_DECL genType coth (genType const &angle)
 
template<typename genType >
GLM_FUNC_DECL genType csc (genType const &angle)
 
template<typename genType >
GLM_FUNC_DECL genType csch (genType const &angle)
 
template<typename genType >
GLM_FUNC_DECL genType sec (genType const &angle)
 
template<typename genType >
GLM_FUNC_DECL genType sech (genType const &angle)
 

Detailed Description

OpenGL Mathematics (glm.g-truc.net)

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTC_quaternion

-
Date
2009-05-21 / 2012-12-20
+

GLM_GTC_reciprocal

+
Date
2008-10-09 / 2012-01-25
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
-
-gtc_half_float (dependence)
-
-GLM_GTC_constants (dependence)
+
See also
GLM Core (dependence)
-

Definition in file gtc/quaternion.hpp.

+

Definition in file reciprocal.hpp.

diff --git a/doc/api/a00098_source.html b/doc/api/a00098_source.html index 71b41d5e..2518153c 100644 --- a/doc/api/a00098_source.html +++ b/doc/api/a00098_source.html @@ -3,8 +3,8 @@ - -GLM: quaternion.hpp Source File + +0.9.6: reciprocal.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,290 +41,86 @@
-
gtc/quaternion.hpp
+
reciprocal.hpp
Go to the documentation of this file.
1 
-
40 #ifndef GLM_GTC_quaternion
-
41 #define GLM_GTC_quaternion
-
42 
-
43 // Dependency:
-
44 #include "../mat3x3.hpp"
-
45 #include "../mat4x4.hpp"
-
46 #include "../vec3.hpp"
-
47 #include "../vec4.hpp"
-
48 #include "../gtc/constants.hpp"
-
49 
-
50 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
51 # pragma message("GLM: GLM_GTC_quaternion extension included")
-
52 #endif
-
53 
-
54 namespace glm{
-
55 namespace detail
-
56 {
-
57  template <typename T, precision P>
-
58  struct tquat
-
59  {
-
60  enum ctor{null};
-
61 
-
62  typedef tvec4<bool, P> bool_type;
-
63 
-
64  public:
-
65  T x, y, z, w;
-
66 
-
67  GLM_FUNC_DECL GLM_CONSTEXPR length_t length() const;
-
68 
-
69  // Constructors
-
70  GLM_FUNC_DECL tquat();
-
71  template <typename U, precision Q>
-
72  GLM_FUNC_DECL explicit tquat(
-
73  tquat<U, Q> const & q);
-
74  GLM_FUNC_DECL explicit tquat(
-
75  T const & s,
-
76  tvec3<T, P> const & v);
-
77  GLM_FUNC_DECL explicit tquat(
-
78  T const & w,
-
79  T const & x,
-
80  T const & y,
-
81  T const & z);
+
42 #pragma once
+
43 
+
44 // Dependencies
+
45 #include "../detail/setup.hpp"
+
46 
+
47 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+
48 # pragma message("GLM: GLM_GTC_reciprocal extension included")
+
49 #endif
+
50 
+
51 namespace glm
+
52 {
+
55 
+
60  template <typename genType>
+
61  GLM_FUNC_DECL genType sec(genType const & angle);
+
62 
+
67  template <typename genType>
+
68  GLM_FUNC_DECL genType csc(genType const & angle);
+
69 
+
74  template <typename genType>
+
75  GLM_FUNC_DECL genType cot(genType const & angle);
+
76 
+
80  template <typename genType>
+
81  GLM_FUNC_DECL genType asec(genType const & x);
82 
-
83 #if(GLM_HAS_INITIALIZER_LISTS)
-
84  template <typename U>
-
85  GLM_FUNC_DECL tquat(std::initializer_list<U> l);
-
86 #endif//GLM_HAS_INITIALIZER_LISTS
-
87 
-
88  // Convertions
-
89 
-
96  GLM_FUNC_DECL explicit tquat(
-
97  detail::tvec3<T, P> const & u,
-
98  detail::tvec3<T, P> const & v);
-
100  GLM_FUNC_DECL explicit tquat(
-
101  tvec3<T, P> const & eulerAngles);
-
102  GLM_FUNC_DECL explicit tquat(
-
103  tmat3x3<T, P> const & m);
-
104  GLM_FUNC_DECL explicit tquat(
-
105  tmat4x4<T, P> const & m);
-
106 
-
107  // Accesses
-
108  GLM_FUNC_DECL T & operator[](length_t i);
-
109  GLM_FUNC_DECL T const & operator[](length_t i) const;
-
110 
-
111  // Operators
-
112  GLM_FUNC_DECL tquat<T, P> & operator+=(tquat<T, P> const & q);
-
113  GLM_FUNC_DECL tquat<T, P> & operator*=(tquat<T, P> const & q);
-
114  GLM_FUNC_DECL tquat<T, P> & operator*=(T const & s);
-
115  GLM_FUNC_DECL tquat<T, P> & operator/=(T const & s);
-
116  };
-
117 
-
118  template <typename T, precision P>
-
119  GLM_FUNC_DECL detail::tquat<T, P> operator- (
-
120  detail::tquat<T, P> const & q);
-
121 
-
122  template <typename T, precision P>
-
123  GLM_FUNC_DECL detail::tquat<T, P> operator+ (
-
124  detail::tquat<T, P> const & q,
-
125  detail::tquat<T, P> const & p);
-
126 
-
127  template <typename T, precision P>
-
128  GLM_FUNC_DECL detail::tquat<T, P> operator* (
-
129  detail::tquat<T, P> const & q,
-
130  detail::tquat<T, P> const & p);
-
131 
-
132  template <typename T, precision P>
-
133  GLM_FUNC_DECL detail::tvec3<T, P> operator* (
-
134  detail::tquat<T, P> const & q,
-
135  detail::tvec3<T, P> const & v);
-
136 
-
137  template <typename T, precision P>
-
138  GLM_FUNC_DECL detail::tvec3<T, P> operator* (
-
139  detail::tvec3<T, P> const & v,
-
140  detail::tquat<T, P> const & q);
-
141 
-
142  template <typename T, precision P>
-
143  GLM_FUNC_DECL detail::tvec4<T, P> operator* (
-
144  detail::tquat<T, P> const & q,
-
145  detail::tvec4<T, P> const & v);
-
146 
-
147  template <typename T, precision P>
-
148  GLM_FUNC_DECL detail::tvec4<T, P> operator* (
-
149  detail::tvec4<T, P> const & v,
-
150  detail::tquat<T, P> const & q);
-
151 
-
152  template <typename T, precision P>
-
153  GLM_FUNC_DECL detail::tquat<T, P> operator* (
-
154  detail::tquat<T, P> const & q,
-
155  T const & s);
-
156 
-
157  template <typename T, precision P>
-
158  GLM_FUNC_DECL detail::tquat<T, P> operator* (
-
159  T const & s,
-
160  detail::tquat<T, P> const & q);
-
161 
-
162  template <typename T, precision P>
-
163  GLM_FUNC_DECL detail::tquat<T, P> operator/ (
-
164  detail::tquat<T, P> const & q,
-
165  T const & s);
-
166 
-
167 } //namespace detail
-
168 
-
171 
-
175  template <typename T, precision P>
-
176  GLM_FUNC_DECL T length(
-
177  detail::tquat<T, P> const & q);
-
178 
-
182  template <typename T, precision P>
-
183  GLM_FUNC_DECL detail::tquat<T, P> normalize(
-
184  detail::tquat<T, P> const & q);
-
185 
-
189  template <typename T, precision P, template <typename, precision> class quatType>
-
190  GLM_FUNC_DECL T dot(
-
191  quatType<T, P> const & x,
-
192  quatType<T, P> const & y);
-
193 
-
204  template <typename T, precision P>
-
205  GLM_FUNC_DECL detail::tquat<T, P> mix(
-
206  detail::tquat<T, P> const & x,
-
207  detail::tquat<T, P> const & y,
-
208  T const & a);
-
209 
-
218  template <typename T, precision P>
-
219  GLM_FUNC_DECL detail::tquat<T, P> lerp(
-
220  detail::tquat<T, P> const & x,
-
221  detail::tquat<T, P> const & y,
-
222  T const & a);
-
223 
-
232  template <typename T, precision P>
-
233  GLM_FUNC_DECL detail::tquat<T, P> slerp(
-
234  detail::tquat<T, P> const & x,
-
235  detail::tquat<T, P> const & y,
-
236  T const & a);
-
237 
-
241  template <typename T, precision P>
-
242  GLM_FUNC_DECL detail::tquat<T, P> conjugate(
-
243  detail::tquat<T, P> const & q);
-
244 
-
248  template <typename T, precision P>
-
249  GLM_FUNC_DECL detail::tquat<T, P> inverse(
-
250  detail::tquat<T, P> const & q);
-
251 
-
259  template <typename T, precision P>
-
260  GLM_FUNC_DECL detail::tquat<T, P> rotate(
-
261  detail::tquat<T, P> const & q,
-
262  T const & angle,
-
263  detail::tvec3<T, P> const & axis);
-
264 
-
269  template <typename T, precision P>
-
270  GLM_FUNC_DECL detail::tvec3<T, P> eulerAngles(
-
271  detail::tquat<T, P> const & x);
-
272 
-
276  template <typename T, precision P>
-
277  GLM_FUNC_DECL T roll(detail::tquat<T, P> const & x);
-
278 
-
282  template <typename T, precision P>
-
283  GLM_FUNC_DECL T pitch(detail::tquat<T, P> const & x);
-
284 
-
288  template <typename T, precision P>
-
289  GLM_FUNC_DECL T yaw(detail::tquat<T, P> const & x);
-
290 
-
294  template <typename T, precision P>
-
295  GLM_FUNC_DECL detail::tmat3x3<T, P> mat3_cast(
-
296  detail::tquat<T, P> const & x);
-
297 
-
301  template <typename T, precision P>
-
302  GLM_FUNC_DECL detail::tmat4x4<T, P> mat4_cast(
-
303  detail::tquat<T, P> const & x);
-
304 
-
308  template <typename T, precision P>
-
309  GLM_FUNC_DECL detail::tquat<T, P> quat_cast(
-
310  detail::tmat3x3<T, P> const & x);
-
311 
-
315  template <typename T, precision P>
-
316  GLM_FUNC_DECL detail::tquat<T, P> quat_cast(
-
317  detail::tmat4x4<T, P> const & x);
-
318 
-
322  template <typename T, precision P>
-
323  GLM_FUNC_DECL T angle(detail::tquat<T, P> const & x);
-
324 
-
328  template <typename T, precision P>
-
329  GLM_FUNC_DECL detail::tvec3<T, P> axis(
-
330  detail::tquat<T, P> const & x);
-
331 
-
338  template <typename T, precision P>
-
339  GLM_FUNC_DECL detail::tquat<T, P> angleAxis(
-
340  T const & angle,
-
341  detail::tvec3<T, P> const & axis);
-
342 
-
348  template <typename T, precision P>
-
349  GLM_FUNC_DECL detail::tvec4<bool, P> lessThan(
-
350  detail::tquat<T, P> const & x,
-
351  detail::tquat<T, P> const & y);
-
352 
-
358  template <typename T, precision P>
-
359  GLM_FUNC_DECL detail::tvec4<bool, P> lessThanEqual(
-
360  detail::tquat<T, P> const & x,
-
361  detail::tquat<T, P> const & y);
-
362 
-
368  template <typename T, precision P>
-
369  GLM_FUNC_DECL detail::tvec4<bool, P> greaterThan(
-
370  detail::tquat<T, P> const & x,
-
371  detail::tquat<T, P> const & y);
-
372 
-
378  template <typename T, precision P>
-
379  GLM_FUNC_DECL detail::tvec4<bool, P> greaterThanEqual(
-
380  detail::tquat<T, P> const & x,
-
381  detail::tquat<T, P> const & y);
-
382 
-
388  template <typename T, precision P>
-
389  GLM_FUNC_DECL detail::tvec4<bool, P> equal(
-
390  detail::tquat<T, P> const & x,
-
391  detail::tquat<T, P> const & y);
-
392 
-
398  template <typename T, precision P>
-
399  GLM_FUNC_DECL detail::tvec4<bool, P> notEqual(
-
400  detail::tquat<T, P> const & x,
-
401  detail::tquat<T, P> const & y);
-
402 
-
404 } //namespace glm
-
405 
-
406 #include "quaternion.inl"
-
407 
-
408 #endif//GLM_GTC_quaternion
-
GLM_FUNC_DECL T dot(vecType< T, P > const &x, vecType< T, P > const &y)
Returns the dot product of x and y, i.e., result = x * y.
-
GLM_FUNC_DECL vecType< T, P >::bool_type notEqual(vecType< T, P > const &x, vecType< T, P > const &y)
Returns the component-wise comparison of result x == y.
-
GLM_FUNC_DECL detail::tquat< T, P > lerp(detail::tquat< T, P > const &x, detail::tquat< T, P > const &y, T const &a)
Linear interpolation of two quaternions.
-
GLM_FUNC_DECL detail::tquat< T, P > angleAxis(T const &angle, detail::tvec3< T, P > const &axis)
Build a quaternion from an angle and a normalized axis.
-
GLM_FUNC_DECL detail::tquat< T, P > quat_cast(detail::tmat3x3< T, P > const &x)
Converts a 3 * 3 matrix to a quaternion.
-
GLM_FUNC_DECL detail::tmat4x4< T, P > rotate(detail::tmat4x4< T, P > const &m, T const &angle, detail::tvec3< T, P > const &axis)
Builds a rotation 4 * 4 matrix created from an axis vector and an angle.
-
GLM_FUNC_DECL genTypeT mix(genTypeT const &x, genTypeT const &y, genTypeU const &a)
If genTypeU is a floating scalar or vector: Returns x * (1.0 - a) + y * a, i.e., the linear blend of ...
-
GLM_FUNC_DECL T angle(detail::tquat< T, P > const &x)
Returns the quaternion rotation angle.
-
GLM_FUNC_DECL detail::tvec3< T, P > eulerAngles(detail::tquat< T, P > const &x)
Returns euler angles, yitch as x, yaw as y, roll as z.
-
GLM_FUNC_DECL vecType< T, P >::bool_type greaterThanEqual(vecType< T, P > const &x, vecType< T, P > const &y)
Returns the component-wise comparison of result x &gt;= y.
-
GLM_FUNC_DECL genType normalize(genType const &x)
Returns a vector in the same direction as x but with length of 1.
-
GLM_FUNC_DECL detail::tmat4x4< T, P > mat4_cast(detail::tquat< T, P > const &x)
Converts a quaternion to a 4 * 4 matrix.
-
GLM_FUNC_DECL genType::value_type length(genType const &x)
Returns the length of x, i.e., sqrt(x * x).
-
GLM_FUNC_DECL T roll(detail::tquat< T, P > const &x)
Returns roll value of euler angles expressed in radians if GLM_FORCE_RADIANS is defined or degrees ot...
-
GLM_FUNC_DECL detail::tvec4< bool, P > lessThan(detail::tquat< T, P > const &x, detail::tquat< T, P > const &y)
Returns the component-wise comparison result of x &lt; y.
-
GLM_FUNC_DECL detail::tmat3x3< T, P > mat3_cast(detail::tquat< T, P > const &x)
Converts a quaternion to a 3 * 3 matrix.
-
GLM_FUNC_DECL detail::tvec3< T, P > axis(detail::tquat< T, P > const &x)
Returns the q rotation axis.
-
GLM_FUNC_DECL detail::tvec4< bool, P > equal(detail::tquat< T, P > const &x, detail::tquat< T, P > const &y)
Returns the component-wise comparison of result x == y.
-
GLM_FUNC_DECL detail::tquat< T, P > slerp(detail::tquat< T, P > const &x, detail::tquat< T, P > const &y, T const &a)
Spherical linear interpolation of two quaternions.
-
GLM_FUNC_DECL T pitch(detail::tquat< T, P > const &x)
Returns pitch value of euler angles expressed in radians if GLM_FORCE_RADIANS is defined or degrees o...
-
GLM_FUNC_DECL detail::tquat< T, P > conjugate(detail::tquat< T, P > const &q)
Returns the q conjugate.
-
GLM_FUNC_DECL vecType< T, P >::bool_type greaterThan(vecType< T, P > const &x, vecType< T, P > const &y)
Returns the component-wise comparison of result x &gt; y.
-
GLM_FUNC_DECL T yaw(detail::tquat< T, P > const &x)
Returns yaw value of euler angles expressed in radians if GLM_FORCE_RADIANS is defined or degrees oth...
-
GLM_FUNC_DECL detail::tquat< T, P > inverse(detail::tquat< T, P > const &q)
Returns the q inverse.
-
GLM_FUNC_DECL vecType< T, P >::bool_type lessThanEqual(vecType< T, P > const &x, vecType< T, P > const &y)
Returns the component-wise comparison result of x &lt; y.
+
86  template <typename genType>
+
87  GLM_FUNC_DECL genType acsc(genType const & x);
+
88 
+
92  template <typename genType>
+
93  GLM_FUNC_DECL genType acot(genType const & x);
+
94 
+
98  template <typename genType>
+
99  GLM_FUNC_DECL genType sech(genType const & angle);
+
100 
+
104  template <typename genType>
+
105  GLM_FUNC_DECL genType csch(genType const & angle);
+
106 
+
110  template <typename genType>
+
111  GLM_FUNC_DECL genType coth(genType const & angle);
+
112 
+
116  template <typename genType>
+
117  GLM_FUNC_DECL genType asech(genType const & x);
+
118 
+
122  template <typename genType>
+
123  GLM_FUNC_DECL genType acsch(genType const & x);
+
124 
+
128  template <typename genType>
+
129  GLM_FUNC_DECL genType acoth(genType const & x);
+
130 
+
132 }//namespace glm
+
133 
+
134 #include "reciprocal.inl"
+
GLM_FUNC_DECL genType acsc(genType const &x)
Inverse cosecant function.
+
GLM_FUNC_DECL genType coth(genType const &angle)
Cotangent hyperbolic function.
+
GLM_FUNC_DECL genType acsch(genType const &x)
Inverse cosecant hyperbolic function.
+
GLM_FUNC_DECL genType acoth(genType const &x)
Inverse cotangent hyperbolic function.
+
GLM_FUNC_DECL T angle(tquat< T, P > const &x)
Returns the quaternion rotation angle.
+
GLM_FUNC_DECL genType csch(genType const &angle)
Cosecant hyperbolic function.
+
GLM_FUNC_DECL genType csc(genType const &angle)
Cosecant function.
+
GLM_FUNC_DECL genType sech(genType const &angle)
Secant hyperbolic function.
+
GLM_FUNC_DECL genType asec(genType const &x)
Inverse secant function.
+
Definition: _noise.hpp:39
+
GLM_FUNC_DECL genType sec(genType const &angle)
Secant function.
+
GLM_FUNC_DECL genType acot(genType const &x)
Inverse cotangent function.
+
GLM_FUNC_DECL genType cot(genType const &angle)
Cotangent function.
+
GLM_FUNC_DECL genType asech(genType const &x)
Inverse secant hyperbolic function.
diff --git a/doc/api/a00099.html b/doc/api/a00099.html index 26a7a3a5..7fcd23ec 100644 --- a/doc/api/a00099.html +++ b/doc/api/a00099.html @@ -3,8 +3,8 @@ - -GLM: quaternion.hpp File Reference + +0.9.6: rotate_normalized_axis.hpp File Reference @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,101 +41,50 @@
-Namespaces | Functions
-
gtx/quaternion.hpp File Reference
+
rotate_normalized_axis.hpp File Reference

Go to the source code of this file.

- - - -

-Namespaces

 glm
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + +

Functions

template<typename T , precision P>
detail::tvec3< T, P > cross (detail::tquat< T, P > const &q, detail::tvec3< T, P > const &v)
 
template<typename T , precision P>
detail::tvec3< T, P > cross (detail::tvec3< T, P > const &v, detail::tquat< T, P > const &q)
 
template<typename T , precision P>
detail::tquat< T, P > exp (detail::tquat< T, P > const &q)
 
template<typename T , precision P>
extractRealComponent (detail::tquat< T, P > const &q)
 
template<typename T , precision P>
detail::tquat< T, P > fastMix (detail::tquat< T, P > const &x, detail::tquat< T, P > const &y, T const &a)
 
template<typename T , precision P>
detail::tquat< T, P > intermediate (detail::tquat< T, P > const &prev, detail::tquat< T, P > const &curr, detail::tquat< T, P > const &next)
 
template<typename T , precision P>
length2 (detail::tquat< T, P > const &q)
 
template<typename T , precision P>
detail::tquat< T, P > log (detail::tquat< T, P > const &q)
 
template<typename T , precision P>
detail::tquat< T, P > pow (detail::tquat< T, P > const &x, T const &y)
 
template<typename T , precision P>
detail::tvec3< T, P > rotate (detail::tquat< T, P > const &q, detail::tvec3< T, P > const &v)
 
template<typename T , precision P>
detail::tvec4< T, P > rotate (detail::tquat< T, P > const &q, detail::tvec4< T, P > const &v)
 
template<typename T , precision P>
detail::tquat< T, P > rotation (detail::tvec3< T, P > const &orig, detail::tvec3< T, P > const &dest)
 
template<typename T , precision P>
detail::tquat< T, P > shortMix (detail::tquat< T, P > const &x, detail::tquat< T, P > const &y, T const &a)
 
template<typename T , precision P>
detail::tquat< T, P > squad (detail::tquat< T, P > const &q1, detail::tquat< T, P > const &q2, detail::tquat< T, P > const &s1, detail::tquat< T, P > const &s2, T const &h)
 
template<typename T , precision P>
detail::tmat3x3< T, P > toMat3 (detail::tquat< T, P > const &x)
 
template<typename T , precision P>
detail::tmat4x4< T, P > toMat4 (detail::tquat< T, P > const &x)
 
template<typename T , precision P>
detail::tquat< T, P > toQuat (detail::tmat3x3< T, P > const &x)
 
template<typename T , precision P>
detail::tquat< T, P > toQuat (detail::tmat4x4< T, P > const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat4x4< T, P > rotateNormalizedAxis (tmat4x4< T, P > const &m, T const &angle, tvec3< T, P > const &axis)
 
template<typename T , precision P>
GLM_FUNC_DECL tquat< T, P > rotateNormalizedAxis (tquat< T, P > const &q, T const &angle, tvec3< T, P > const &axis)
 

Detailed Description

OpenGL Mathematics (glm.g-truc.net)

-

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_quaternion

-
Date
2005-12-21 / 2011-06-07
+

GLM_GTX_rotate_normalized_axis

+
Date
2012-12-13 / 2012-12-13
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
+
See also
GLM Core (dependence)
-GLM_GTX_extented_min_max (dependence)
+GLM_GTC_matrix_transform +
+GLM_GTC_quaternion
-

Definition in file gtx/quaternion.hpp.

+

Definition in file rotate_normalized_axis.hpp.

diff --git a/doc/api/a00099_source.html b/doc/api/a00099_source.html index f5508854..522906bb 100644 --- a/doc/api/a00099_source.html +++ b/doc/api/a00099_source.html @@ -3,8 +3,8 @@ - -GLM: quaternion.hpp Source File + +0.9.6: rotate_normalized_axis.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,151 +41,54 @@
-
gtx/quaternion.hpp
+
rotate_normalized_axis.hpp
Go to the documentation of this file.
1 
-
39 #ifndef GLM_GTX_quaternion
-
40 #define GLM_GTX_quaternion
-
41 
-
42 // Dependency:
-
43 #include "../glm.hpp"
-
44 #include "../gtc/constants.hpp"
-
45 #include "../gtc/quaternion.hpp"
-
46 #include "../gtx/norm.hpp"
-
47 
-
48 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
49 # pragma message("GLM: GLM_GTX_quaternion extension included")
-
50 #endif
-
51 
-
52 namespace glm
-
53 {
-
56 
-
60  template<typename T, precision P>
-
61  detail::tvec3<T, P> cross(
-
62  detail::tquat<T, P> const & q,
-
63  detail::tvec3<T, P> const & v);
-
64 
-
68  template<typename T, precision P>
-
69  detail::tvec3<T, P> cross(
-
70  detail::tvec3<T, P> const & v,
-
71  detail::tquat<T, P> const & q);
-
72 
-
77  template<typename T, precision P>
-
78  detail::tquat<T, P> squad(
-
79  detail::tquat<T, P> const & q1,
-
80  detail::tquat<T, P> const & q2,
-
81  detail::tquat<T, P> const & s1,
-
82  detail::tquat<T, P> const & s2,
-
83  T const & h);
-
84 
-
88  template<typename T, precision P>
-
89  detail::tquat<T, P> intermediate(
-
90  detail::tquat<T, P> const & prev,
-
91  detail::tquat<T, P> const & curr,
-
92  detail::tquat<T, P> const & next);
-
93 
-
97  template<typename T, precision P>
-
98  detail::tquat<T, P> exp(
-
99  detail::tquat<T, P> const & q);
-
100 
-
104  template<typename T, precision P>
-
105  detail::tquat<T, P> log(
-
106  detail::tquat<T, P> const & q);
-
107 
-
111  template<typename T, precision P>
-
112  detail::tquat<T, P> pow(
-
113  detail::tquat<T, P> const & x,
-
114  T const & y);
-
115 
-
119  //template<typename T, precision P>
-
120  //detail::tquat<T, P> sqrt(
-
121  // detail::tquat<T, P> const & q);
-
122 
-
126  template<typename T, precision P>
-
127  detail::tvec3<T, P> rotate(
-
128  detail::tquat<T, P> const & q,
-
129  detail::tvec3<T, P> const & v);
-
130 
-
134  template<typename T, precision P>
-
135  detail::tvec4<T, P> rotate(
-
136  detail::tquat<T, P> const & q,
-
137  detail::tvec4<T, P> const & v);
-
138 
-
142  template<typename T, precision P>
- -
144  detail::tquat<T, P> const & q);
-
145 
-
149  template<typename T, precision P>
-
150  detail::tmat3x3<T, P> toMat3(
-
151  detail::tquat<T, P> const & x){return mat3_cast(x);}
-
152 
-
156  template<typename T, precision P>
-
157  detail::tmat4x4<T, P> toMat4(
-
158  detail::tquat<T, P> const & x){return mat4_cast(x);}
-
159 
-
163  template<typename T, precision P>
-
164  detail::tquat<T, P> toQuat(
-
165  detail::tmat3x3<T, P> const & x){return quat_cast(x);}
-
166 
-
170  template<typename T, precision P>
-
171  detail::tquat<T, P> toQuat(
-
172  detail::tmat4x4<T, P> const & x){return quat_cast(x);}
-
173 
-
177  template<typename T, precision P>
-
178  detail::tquat<T, P> shortMix(
-
179  detail::tquat<T, P> const & x,
-
180  detail::tquat<T, P> const & y,
-
181  T const & a);
-
182 
-
186  template<typename T, precision P>
-
187  detail::tquat<T, P> fastMix(
-
188  detail::tquat<T, P> const & x,
-
189  detail::tquat<T, P> const & y,
-
190  T const & a);
-
191 
-
197  template<typename T, precision P>
-
198  detail::tquat<T, P> rotation(
-
199  detail::tvec3<T, P> const & orig,
-
200  detail::tvec3<T, P> const & dest);
-
201 
-
205  template<typename T, precision P>
-
206  T length2(detail::tquat<T, P> const & q);
-
207 
-
209 }//namespace glm
-
210 
-
211 #include "quaternion.inl"
-
212 
-
213 #endif//GLM_GTX_quaternion
-
detail::tquat< T, P > toQuat(detail::tmat3x3< T, P > const &x)
Converts a 3 * 3 matrix to a quaternion.
-
T extractRealComponent(detail::tquat< T, P > const &q)
Extract the real component of a quaternion.
-
GLM_FUNC_DECL detail::tvec3< T, P > cross(detail::tvec3< T, P > const &x, detail::tvec3< T, P > const &y)
Returns the cross product of x and y.
-
GLM_FUNC_DECL detail::tquat< T, P > quat_cast(detail::tmat3x3< T, P > const &x)
Converts a 3 * 3 matrix to a quaternion.
-
GLM_FUNC_DECL detail::tmat4x4< T, P > rotate(detail::tmat4x4< T, P > const &m, T const &angle, detail::tvec3< T, P > const &axis)
Builds a rotation 4 * 4 matrix created from an axis vector and an angle.
-
detail::tmat4x4< T, P > toMat4(detail::tquat< T, P > const &x)
Converts a quaternion to a 4 * 4 matrix.
-
GLM_FUNC_DECL genType exp(genType const &x)
Returns the natural exponentiation of x, i.e., e^x.
-
detail::tquat< T, P > intermediate(detail::tquat< T, P > const &prev, detail::tquat< T, P > const &curr, detail::tquat< T, P > const &next)
Returns an intermediate control point for squad interpolation.
-
detail::tquat< T, P > shortMix(detail::tquat< T, P > const &x, detail::tquat< T, P > const &y, T const &a)
Quaternion interpolation using the rotation short path.
-
GLM_FUNC_DECL detail::tmat4x4< T, P > mat4_cast(detail::tquat< T, P > const &x)
Converts a quaternion to a 4 * 4 matrix.
-
T length2(T const &x)
Returns the squared length of x.
-
detail::tmat3x3< T, P > toMat3(detail::tquat< T, P > const &x)
Converts a quaternion to a 3 * 3 matrix.
-
detail::tquat< T, P > squad(detail::tquat< T, P > const &q1, detail::tquat< T, P > const &q2, detail::tquat< T, P > const &s1, detail::tquat< T, P > const &s2, T const &h)
Compute a point on a path according squad equation.
-
GLM_FUNC_DECL genType pow(genType const &base, genType const &exponent)
Returns &#39;base&#39; raised to the power &#39;exponent&#39;.
-
GLM_FUNC_DECL detail::tmat3x3< T, P > mat3_cast(detail::tquat< T, P > const &x)
Converts a quaternion to a 3 * 3 matrix.
-
detail::tquat< T, P > fastMix(detail::tquat< T, P > const &x, detail::tquat< T, P > const &y, T const &a)
Quaternion normalized linear interpolation.
-
detail::tquat< T, P > rotation(detail::tvec3< T, P > const &orig, detail::tvec3< T, P > const &dest)
Compute the rotation between two vectors.
-
GLM_FUNC_DECL genType log(genType const &x)
Returns the natural logarithm of x, i.e., returns the value y which satisfies the equation x = e^y...
+
44 #pragma once
+
45 
+
46 // Dependency:
+
47 #include "../glm.hpp"
+
48 #include "../gtc/epsilon.hpp"
+
49 #include "../gtc/quaternion.hpp"
+
50 
+
51 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+
52 # pragma message("GLM: GLM_GTX_rotate_normalized_axis extension included")
+
53 #endif
+
54 
+
55 namespace glm
+
56 {
+
59 
+
71  template <typename T, precision P>
+
72  GLM_FUNC_DECL tmat4x4<T, P> rotateNormalizedAxis(
+
73  tmat4x4<T, P> const & m,
+
74  T const & angle,
+
75  tvec3<T, P> const & axis);
+
76 
+
84  template <typename T, precision P>
+
85  GLM_FUNC_DECL tquat<T, P> rotateNormalizedAxis(
+
86  tquat<T, P> const & q,
+
87  T const & angle,
+
88  tvec3<T, P> const & axis);
+
89 
+
91 }//namespace glm
+
92 
+
93 #include "rotate_normalized_axis.inl"
+
GLM_FUNC_DECL tvec3< T, P > axis(tquat< T, P > const &x)
Returns the q rotation axis.
+
GLM_FUNC_DECL T angle(tquat< T, P > const &x)
Returns the quaternion rotation angle.
+
Definition: _noise.hpp:39
+
GLM_FUNC_DECL tquat< T, P > rotateNormalizedAxis(tquat< T, P > const &q, T const &angle, tvec3< T, P > const &axis)
Rotates a quaternion from a vector of 3 components normalized axis and an angle.
diff --git a/doc/api/a00100.html b/doc/api/a00100.html index 9eda22b9..9498fea9 100644 --- a/doc/api/a00100.html +++ b/doc/api/a00100.html @@ -3,8 +3,8 @@ - -GLM: random.hpp File Reference + +0.9.6: rotate_vector.hpp File Reference @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,71 +41,75 @@
-Namespaces | Functions
-
gtc/random.hpp File Reference
+
rotate_vector.hpp File Reference

Go to the source code of this file.

- - - -

-Namespaces

 glm
 
- - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Functions

template<typename T >
GLM_FUNC_DECL detail::tvec3< T,
-defaultp > 
ballRand (T const &Radius)
 
template<typename T >
GLM_FUNC_DECL detail::tvec2< T,
-defaultp > 
circularRand (T const &Radius)
 
template<typename T >
GLM_FUNC_DECL detail::tvec2< T,
-defaultp > 
diskRand (T const &Radius)
 
template<typename genType >
GLM_FUNC_DECL genType gaussRand (genType const &Mean, genType const &Deviation)
 
template<typename genType >
GLM_FUNC_DECL genType linearRand (genType const &Min, genType const &Max)
 
template<typename T >
GLM_FUNC_DECL detail::tvec3< T,
-defaultp > 
sphericalRand (T const &Radius)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat4x4< T, P > orientation (tvec3< T, P > const &Normal, tvec3< T, P > const &Up)
 
template<typename T , precision P>
GLM_FUNC_DECL tvec2< T, P > rotate (tvec2< T, P > const &v, T const &angle)
 
template<typename T , precision P>
GLM_FUNC_DECL tvec3< T, P > rotate (tvec3< T, P > const &v, T const &angle, tvec3< T, P > const &normal)
 
template<typename T , precision P>
GLM_FUNC_DECL tvec4< T, P > rotate (tvec4< T, P > const &v, T const &angle, tvec3< T, P > const &normal)
 
template<typename T , precision P>
GLM_FUNC_DECL tvec3< T, P > rotateX (tvec3< T, P > const &v, T const &angle)
 
template<typename T , precision P>
GLM_FUNC_DECL tvec4< T, P > rotateX (tvec4< T, P > const &v, T const &angle)
 
template<typename T , precision P>
GLM_FUNC_DECL tvec3< T, P > rotateY (tvec3< T, P > const &v, T const &angle)
 
template<typename T , precision P>
GLM_FUNC_DECL tvec4< T, P > rotateY (tvec4< T, P > const &v, T const &angle)
 
template<typename T , precision P>
GLM_FUNC_DECL tvec3< T, P > rotateZ (tvec3< T, P > const &v, T const &angle)
 
template<typename T , precision P>
GLM_FUNC_DECL tvec4< T, P > rotateZ (tvec4< T, P > const &v, T const &angle)
 
template<typename T , precision P>
GLM_FUNC_DECL tvec3< T, P > slerp (tvec3< T, P > const &x, tvec3< T, P > const &y, T const &a)
 

Detailed Description

OpenGL Mathematics (glm.g-truc.net)

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTC_random

-
Date
2011-09-18 / 2011-09-18
+

GLM_GTX_rotate_vector

+
Date
2006-11-02 / 2011-06-07
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
+
See also
GLM Core (dependence)
-gtc_half_float (dependence)
-
-gtx_random (extended)
+GLM_GTX_transform (dependence)
-

Definition in file gtc/random.hpp.

+

Definition in file rotate_vector.hpp.

diff --git a/doc/api/a00100_source.html b/doc/api/a00100_source.html index 9b3fcab7..ac4f24a4 100644 --- a/doc/api/a00100_source.html +++ b/doc/api/a00100_source.html @@ -3,8 +3,8 @@ - -GLM: random.hpp Source File + +0.9.6: rotate_vector.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,72 +41,103 @@
-
gtc/random.hpp
+
rotate_vector.hpp
Go to the documentation of this file.
1 
-
40 #ifndef GLM_GTC_random
-
41 #define GLM_GTC_random
-
42 
-
43 // Dependency:
-
44 #include "../vec2.hpp"
-
45 #include "../vec3.hpp"
-
46 
-
47 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
48 # pragma message("GLM: GLM_GTC_random extension included")
-
49 #endif
-
50 
-
51 namespace glm
-
52 {
-
55 
-
62  template <typename genType>
-
63  GLM_FUNC_DECL genType linearRand(
-
64  genType const & Min,
-
65  genType const & Max);
-
66 
-
72  template <typename genType>
-
73  GLM_FUNC_DECL genType gaussRand(
-
74  genType const & Mean,
-
75  genType const & Deviation);
-
76 
-
81  template <typename T>
-
82  GLM_FUNC_DECL detail::tvec2<T, defaultp> circularRand(
-
83  T const & Radius);
-
84 
-
89  template <typename T>
-
90  GLM_FUNC_DECL detail::tvec3<T, defaultp> sphericalRand(
-
91  T const & Radius);
-
92 
-
97  template <typename T>
-
98  GLM_FUNC_DECL detail::tvec2<T, defaultp> diskRand(
-
99  T const & Radius);
-
100 
-
105  template <typename T>
-
106  GLM_FUNC_DECL detail::tvec3<T, defaultp> ballRand(
-
107  T const & Radius);
-
108 
-
110 }//namespace glm
-
111 
-
112 #include "random.inl"
-
113 
-
114 #endif//GLM_GTC_random
-
GLM_FUNC_DECL detail::tvec2< T, defaultp > circularRand(T const &Radius)
Generate a random 2D vector which coordinates are regulary distributed on a circle of a given radius...
-
GLM_FUNC_DECL detail::tvec3< T, defaultp > sphericalRand(T const &Radius)
Generate a random 3D vector which coordinates are regulary distributed on a sphere of a given radius...
-
GLM_FUNC_DECL genType gaussRand(genType const &Mean, genType const &Deviation)
Generate random numbers in the interval [Min, Max], according a gaussian distribution.
-
GLM_FUNC_DECL detail::tvec3< T, defaultp > ballRand(T const &Radius)
Generate a random 3D vector which coordinates are regulary distributed within the volume of a ball of...
-
GLM_FUNC_DECL genType linearRand(genType const &Min, genType const &Max)
Generate random numbers in the interval [Min, Max], according a linear distribution.
-
GLM_FUNC_DECL detail::tvec2< T, defaultp > diskRand(T const &Radius)
Generate a random 2D vector which coordinates are regulary distributed within the area of a disk of a...
+
43 #pragma once
+
44 
+
45 // Dependency:
+
46 #include "../glm.hpp"
+
47 #include "../gtx/transform.hpp"
+
48 
+
49 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+
50 # pragma message("GLM: GLM_GTX_rotate_vector extension included")
+
51 #endif
+
52 
+
53 namespace glm
+
54 {
+
57 
+
65  template <typename T, precision P>
+
66  GLM_FUNC_DECL tvec3<T, P> slerp(
+
67  tvec3<T, P> const & x,
+
68  tvec3<T, P> const & y,
+
69  T const & a);
+
70 
+
73  template <typename T, precision P>
+
74  GLM_FUNC_DECL tvec2<T, P> rotate(
+
75  tvec2<T, P> const & v,
+
76  T const & angle);
+
77 
+
80  template <typename T, precision P>
+
81  GLM_FUNC_DECL tvec3<T, P> rotate(
+
82  tvec3<T, P> const & v,
+
83  T const & angle,
+
84  tvec3<T, P> const & normal);
+
85 
+
88  template <typename T, precision P>
+
89  GLM_FUNC_DECL tvec4<T, P> rotate(
+
90  tvec4<T, P> const & v,
+
91  T const & angle,
+
92  tvec3<T, P> const & normal);
+
93 
+
96  template <typename T, precision P>
+
97  GLM_FUNC_DECL tvec3<T, P> rotateX(
+
98  tvec3<T, P> const & v,
+
99  T const & angle);
+
100 
+
103  template <typename T, precision P>
+
104  GLM_FUNC_DECL tvec3<T, P> rotateY(
+
105  tvec3<T, P> const & v,
+
106  T const & angle);
+
107 
+
110  template <typename T, precision P>
+
111  GLM_FUNC_DECL tvec3<T, P> rotateZ(
+
112  tvec3<T, P> const & v,
+
113  T const & angle);
+
114 
+
117  template <typename T, precision P>
+
118  GLM_FUNC_DECL tvec4<T, P> rotateX(
+
119  tvec4<T, P> const & v,
+
120  T const & angle);
+
121 
+
124  template <typename T, precision P>
+
125  GLM_FUNC_DECL tvec4<T, P> rotateY(
+
126  tvec4<T, P> const & v,
+
127  T const & angle);
+
128 
+
131  template <typename T, precision P>
+
132  GLM_FUNC_DECL tvec4<T, P> rotateZ(
+
133  tvec4<T, P> const & v,
+
134  T const & angle);
+
135 
+
138  template <typename T, precision P>
+
139  GLM_FUNC_DECL tmat4x4<T, P> orientation(
+
140  tvec3<T, P> const & Normal,
+
141  tvec3<T, P> const & Up);
+
142 
+
144 }//namespace glm
+
145 
+
146 #include "rotate_vector.inl"
+
GLM_FUNC_DECL tvec4< T, P > rotateX(tvec4< T, P > const &v, T const &angle)
Rotate a four dimentionnals vector around the X axis.
+
GLM_FUNC_DECL tvec4< T, P > rotateY(tvec4< T, P > const &v, T const &angle)
Rotate a four dimensional vector around the X axis.
+
GLM_FUNC_DECL tvec3< T, P > slerp(tvec3< T, P > const &x, tvec3< T, P > const &y, T const &a)
Returns Spherical interpolation between two vectors.
+
GLM_FUNC_DECL T angle(tquat< T, P > const &x)
Returns the quaternion rotation angle.
+
GLM_FUNC_DECL tvec4< T, P > rotateZ(tvec4< T, P > const &v, T const &angle)
Rotate a four dimensional vector around the X axis.
+
Definition: _noise.hpp:39
+
GLM_FUNC_DECL tmat4x4< T, P > orientation(tvec3< T, P > const &Normal, tvec3< T, P > const &Up)
Build a rotation matrix from a normal and a up vector.
+
GLM_FUNC_DECL tvec4< T, P > rotate(tvec4< T, P > const &v, T const &angle, tvec3< T, P > const &normal)
Rotate a four dimensional vector around an axis.
diff --git a/doc/api/a00101.html b/doc/api/a00101.html new file mode 100644 index 00000000..ff9e2616 --- /dev/null +++ b/doc/api/a00101.html @@ -0,0 +1,133 @@ + + + + + + +0.9.6: round.hpp File Reference + + + + + + +
+
+ + + + + + + +
+
0.9.6 +
+
+
+ + + + + +
+
+
+Functions
+
+
round.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename genType >
GLM_FUNC_DECL genType ceilMultiple (genType Source, genType Multiple)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > ceilMultiple (vecType< T, P > const &Source, vecType< T, P > const &Multiple)
 
template<typename genIUType >
GLM_FUNC_DECL genIUType ceilPowerOfTwo (genIUType Value)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > ceilPowerOfTwo (vecType< T, P > const &value)
 
template<typename genType >
GLM_FUNC_DECL genType floorMultiple (genType Source, genType Multiple)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > floorMultiple (vecType< T, P > const &Source, vecType< T, P > const &Multiple)
 
template<typename genIUType >
GLM_FUNC_DECL genIUType floorPowerOfTwo (genIUType Value)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > floorPowerOfTwo (vecType< T, P > const &value)
 
template<typename genIUType >
GLM_FUNC_DECL bool isMultiple (genIUType Value, genIUType Multiple)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< bool, P > isMultiple (vecType< T, P > const &Value, T Multiple)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< bool, P > isMultiple (vecType< T, P > const &Value, vecType< T, P > const &Multiple)
 
template<typename genIUType >
GLM_FUNC_DECL bool isPowerOfTwo (genIUType Value)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< bool, P > isPowerOfTwo (vecType< T, P > const &value)
 
template<typename genType >
GLM_FUNC_DECL genType roundMultiple (genType Source, genType Multiple)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > roundMultiple (vecType< T, P > const &Source, vecType< T, P > const &Multiple)
 
template<typename genIUType >
GLM_FUNC_DECL genIUType roundPowerOfTwo (genIUType Value)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > roundPowerOfTwo (vecType< T, P > const &value)
 
+

Detailed Description

+

OpenGL Mathematics (glm.g-truc.net)

+

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+

GLM_GTC_round

+
Date
2014-11-03 / 2014-11-03
+
Author
Christophe Riccio
+
See also
GLM Core (dependence)
+
+GLM_GTC_round (dependence)
+ +

Definition in file round.hpp.

+
+ + + + diff --git a/doc/api/a00101_source.html b/doc/api/a00101_source.html index 212305c6..a3616363 100644 --- a/doc/api/a00101_source.html +++ b/doc/api/a00101_source.html @@ -3,8 +3,8 @@ - -GLM: random.hpp Source File + +0.9.6: round.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,27 +41,109 @@
-
gtx/random.hpp
+
round.hpp
-
1 
-
24 #if(defined(GLM_MESSAGES))
-
25 # pragma message("GLM: GLM_GTX_random extension is deprecated, include GLM_GTC_random instead")
-
26 #endif
-
27 
-
28 // Promoted:
-
29 #include "../gtc/random.hpp"
+Go to the documentation of this file.
1 
+
43 #pragma once
+
44 
+
45 // Dependencies
+
46 #include "../detail/setup.hpp"
+
47 #include "../detail/precision.hpp"
+
48 #include "../detail/_vectorize.hpp"
+
49 #include "../vector_relational.hpp"
+
50 #include "../common.hpp"
+
51 #include <limits>
+
52 
+
53 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+
54 # pragma message("GLM: GLM_GTC_integer extension included")
+
55 #endif
+
56 
+
57 namespace glm
+
58 {
+
61 
+
65  template <typename genIUType>
+
66  GLM_FUNC_DECL bool isPowerOfTwo(genIUType Value);
+
67 
+
71  template <typename T, precision P, template <typename, precision> class vecType>
+
72  GLM_FUNC_DECL vecType<bool, P> isPowerOfTwo(vecType<T, P> const & value);
+
73 
+
78  template <typename genIUType>
+
79  GLM_FUNC_DECL genIUType ceilPowerOfTwo(genIUType Value);
+
80 
+
85  template <typename T, precision P, template <typename, precision> class vecType>
+
86  GLM_FUNC_DECL vecType<T, P> ceilPowerOfTwo(vecType<T, P> const & value);
+
87 
+
92  template <typename genIUType>
+
93  GLM_FUNC_DECL genIUType floorPowerOfTwo(genIUType Value);
+
94 
+
99  template <typename T, precision P, template <typename, precision> class vecType>
+
100  GLM_FUNC_DECL vecType<T, P> floorPowerOfTwo(vecType<T, P> const & value);
+
101 
+
105  template <typename genIUType>
+
106  GLM_FUNC_DECL genIUType roundPowerOfTwo(genIUType Value);
+
107 
+
111  template <typename T, precision P, template <typename, precision> class vecType>
+
112  GLM_FUNC_DECL vecType<T, P> roundPowerOfTwo(vecType<T, P> const & value);
+
113 
+
117  template <typename genIUType>
+
118  GLM_FUNC_DECL bool isMultiple(genIUType Value, genIUType Multiple);
+
119 
+
123  template <typename T, precision P, template <typename, precision> class vecType>
+
124  GLM_FUNC_DECL vecType<bool, P> isMultiple(vecType<T, P> const & Value, T Multiple);
+
125 
+
129  template <typename T, precision P, template <typename, precision> class vecType>
+
130  GLM_FUNC_DECL vecType<bool, P> isMultiple(vecType<T, P> const & Value, vecType<T, P> const & Multiple);
+
131 
+
139  template <typename genType>
+
140  GLM_FUNC_DECL genType ceilMultiple(genType Source, genType Multiple);
+
141 
+
149  template <typename T, precision P, template <typename, precision> class vecType>
+
150  GLM_FUNC_DECL vecType<T, P> ceilMultiple(vecType<T, P> const & Source, vecType<T, P> const & Multiple);
+
151 
+
159  template <typename genType>
+
160  GLM_FUNC_DECL genType floorMultiple(
+
161  genType Source,
+
162  genType Multiple);
+
163 
+
171  template <typename T, precision P, template <typename, precision> class vecType>
+
172  GLM_FUNC_DECL vecType<T, P> floorMultiple(
+
173  vecType<T, P> const & Source,
+
174  vecType<T, P> const & Multiple);
+
175 
+
183  template <typename genType>
+
184  GLM_FUNC_DECL genType roundMultiple(
+
185  genType Source,
+
186  genType Multiple);
+
187 
+
195  template <typename T, precision P, template <typename, precision> class vecType>
+
196  GLM_FUNC_DECL vecType<T, P> roundMultiple(
+
197  vecType<T, P> const & Source,
+
198  vecType<T, P> const & Multiple);
+
199 
+
201 } //namespace glm
+
202 
+
203 #include "round.inl"
+
GLM_FUNC_DECL vecType< T, P > floorMultiple(vecType< T, P > const &Source, vecType< T, P > const &Multiple)
Lower multiple number of Source.
+
GLM_FUNC_DECL vecType< bool, P > isMultiple(vecType< T, P > const &Value, vecType< T, P > const &Multiple)
Return true if the 'Value' is a multiple of 'Multiple'.
+
GLM_FUNC_DECL vecType< T, P > roundPowerOfTwo(vecType< T, P > const &value)
Return the power of two number which value is the closet to the input value.
+
GLM_FUNC_DECL vecType< bool, P > isPowerOfTwo(vecType< T, P > const &value)
Return true if the value is a power of two number.
+
GLM_FUNC_DECL vecType< T, P > roundMultiple(vecType< T, P > const &Source, vecType< T, P > const &Multiple)
Lower multiple number of Source.
+
GLM_FUNC_DECL vecType< T, P > ceilMultiple(vecType< T, P > const &Source, vecType< T, P > const &Multiple)
Higher multiple number of Source.
+
GLM_FUNC_DECL vecType< T, P > ceilPowerOfTwo(vecType< T, P > const &value)
Return the power of two number which value is just higher the input value, round up to a power of two...
+
Definition: _noise.hpp:39
+
GLM_FUNC_DECL vecType< T, P > floorPowerOfTwo(vecType< T, P > const &value)
Return the power of two number which value is just lower the input value, round down to a power of tw...
diff --git a/doc/api/a00102.html b/doc/api/a00102.html index ef91f47a..5eb023c9 100644 --- a/doc/api/a00102.html +++ b/doc/api/a00102.html @@ -3,8 +3,8 @@ - -GLM: raw_data.hpp File Reference + +0.9.6: scalar_multiplication.hpp File Reference @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,53 +41,35 @@
-
-Namespaces | -Typedefs
-
raw_data.hpp File Reference
+
scalar_multiplication.hpp File Reference

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
- - - - - - - - - -

-Typedefs

typedef detail::uint8 byte
 
typedef detail::uint32 dword
 
typedef detail::uint64 qword
 
typedef detail::uint16 word
 

Detailed Description

OpenGL Mathematics (glm.g-truc.net)

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_raw_data

-
Date
2008-11-19 / 2011-06-07
-
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
+

GTX Extensions (Experimental)

+
Date
2014-09-22 / 2014-09-22
+
Author
Joshua Moerman
+

Enables scalar multiplication for all types

+

Since GLSL is very strict about types, the following (often used) combinations do not work: double * vec4 int * vec4 vec4 / int So we'll fix that! Of course "float * vec4" should remain the same (hence the enable_if magic)

-

Definition in file raw_data.hpp.

+

Definition in file scalar_multiplication.hpp.

diff --git a/doc/api/a00102_source.html b/doc/api/a00102_source.html index 4440b39b..69df357a 100644 --- a/doc/api/a00102_source.html +++ b/doc/api/a00102_source.html @@ -3,8 +3,8 @@ - -GLM: raw_data.hpp Source File + +0.9.6: scalar_multiplication.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,51 +41,91 @@
-
raw_data.hpp
+
scalar_multiplication.hpp
Go to the documentation of this file.
1 
-
38 #ifndef GLM_GTX_raw_data
-
39 #define GLM_GTX_raw_data
-
40 
-
41 // Dependencies
-
42 #include "../detail/setup.hpp"
+
42 #pragma once
43 
-
44 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
45 # pragma message("GLM: GLM_GTX_raw_data extension included")
-
46 #endif
-
47 
-
48 namespace glm
-
49 {
-
52 
-
55  typedef detail::uint8 byte;
-
56 
-
59  typedef detail::uint16 word;
-
60 
-
63  typedef detail::uint32 dword;
-
64 
-
67  typedef detail::uint64 qword;
-
68 
-
70 }// namespace glm
-
71 
-
72 #include "raw_data.inl"
-
73 
-
74 #endif//GLM_GTX_raw_data
-
detail::uint32 dword
Type for dword numbers.
Definition: raw_data.hpp:63
-
detail::uint64 qword
Type for qword numbers.
Definition: raw_data.hpp:67
-
detail::uint16 word
Type for word numbers.
Definition: raw_data.hpp:59
-
detail::uint8 byte
Type for byte numbers.
Definition: raw_data.hpp:55
+
44 #include "../detail/setup.hpp"
+
45 
+
46 #if !GLM_HAS_TEMPLATE_ALIASES
+
47 # error "GLM_GTX_scalar_multiplication requires C++11 suppport or alias templates"
+
48 #endif
+
49 
+
50 #include "../vec2.hpp"
+
51 #include "../vec3.hpp"
+
52 #include "../vec4.hpp"
+
53 #include "../mat2x2.hpp"
+
54 #include <type_traits>
+
55 
+
56 namespace glm
+
57 {
+
58  template <typename T, typename Vec>
+
59  using return_type_scalar_multiplication = typename std::enable_if<
+
60  !std::is_same<T, float>::value // T may not be a float
+
61  && std::is_arithmetic<T>::value, Vec // But it may be an int or double (no vec3 or mat3, ...)
+
62  >::type;
+
63 
+
64 #define GLM_IMPLEMENT_SCAL_MULT(Vec) \
+
65  template <typename T> \
+
66  return_type_scalar_multiplication<T, Vec> \
+
67  operator*(T const & s, Vec rh){ \
+
68  return rh *= static_cast<float>(s); \
+
69  } \
+
70  \
+
71  template <typename T> \
+
72  return_type_scalar_multiplication<T, Vec> \
+
73  operator*(Vec lh, T const & s){ \
+
74  return lh *= static_cast<float>(s); \
+
75  } \
+
76  \
+
77  template <typename T> \
+
78  return_type_scalar_multiplication<T, Vec> \
+
79  operator/(Vec lh, T const & s){ \
+
80  return lh *= 1.0f / s; \
+
81  }
+
82 
+
83 GLM_IMPLEMENT_SCAL_MULT(vec2)
+
84 GLM_IMPLEMENT_SCAL_MULT(vec3)
+
85 GLM_IMPLEMENT_SCAL_MULT(vec4)
+
86 
+
87 GLM_IMPLEMENT_SCAL_MULT(mat2)
+
88 GLM_IMPLEMENT_SCAL_MULT(mat2x3)
+
89 GLM_IMPLEMENT_SCAL_MULT(mat2x4)
+
90 GLM_IMPLEMENT_SCAL_MULT(mat3x2)
+
91 GLM_IMPLEMENT_SCAL_MULT(mat3)
+
92 GLM_IMPLEMENT_SCAL_MULT(mat3x4)
+
93 GLM_IMPLEMENT_SCAL_MULT(mat4x2)
+
94 GLM_IMPLEMENT_SCAL_MULT(mat4x3)
+
95 GLM_IMPLEMENT_SCAL_MULT(mat4)
+
96 
+
97 #undef GLM_IMPLEMENT_SCAL_MULT
+
98 } // namespace glm
+
highp_vec4 vec4
4 components vector of floating-point numbers.
Definition: type_vec.hpp:402
+
highp_mat3x4 mat3x4
3 columns of 4 components matrix of floating-point numbers.
Definition: type_mat.hpp:410
+
mat3x3 mat3
3 columns of 3 components matrix of floating-point numbers.
Definition: type_mat.hpp:437
+
highp_mat3x2 mat3x2
3 columns of 2 components matrix of floating-point numbers.
Definition: type_mat.hpp:400
+
mat4x4 mat4
4 columns of 4 components matrix of floating-point numbers.
Definition: type_mat.hpp:442
+
mat2x2 mat2
2 columns of 2 components matrix of floating-point numbers.
Definition: type_mat.hpp:432
+
highp_mat4x3 mat4x3
4 columns of 3 components matrix of floating-point numbers.
Definition: type_mat.hpp:420
+
Definition: _noise.hpp:39
+
highp_mat2x4 mat2x4
2 columns of 4 components matrix of floating-point numbers.
Definition: type_mat.hpp:395
+
highp_vec3 vec3
3 components vector of floating-point numbers.
Definition: type_vec.hpp:397
+
highp_vec2 vec2
2 components vector of floating-point numbers.
Definition: type_vec.hpp:392
+
highp_mat2x3 mat2x3
2 columns of 3 components matrix of floating-point numbers.
Definition: type_mat.hpp:390
+
highp_mat4x2 mat4x2
4 columns of 2 components matrix of floating-point numbers.
Definition: type_mat.hpp:415
diff --git a/doc/api/a00103.html b/doc/api/a00103.html index 51e0206e..a35c280f 100644 --- a/doc/api/a00103.html +++ b/doc/api/a00103.html @@ -3,8 +3,8 @@ - -GLM: reciprocal.hpp File Reference + +0.9.6: scalar_relational.hpp File Reference @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,81 +41,34 @@
-
-Namespaces | -Functions
-
gtc/reciprocal.hpp File Reference
+
scalar_relational.hpp File Reference

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename genType >
GLM_FUNC_DECL genType acot (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType acoth (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType acsc (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType acsch (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType asec (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType asech (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType cot (genType const &angle)
 
template<typename genType >
GLM_FUNC_DECL genType coth (genType const &angle)
 
template<typename genType >
GLM_FUNC_DECL genType csc (genType const &angle)
 
template<typename genType >
GLM_FUNC_DECL genType csch (genType const &angle)
 
template<typename genType >
GLM_FUNC_DECL genType sec (genType const &angle)
 
template<typename genType >
GLM_FUNC_DECL genType sech (genType const &angle)
 

Detailed Description

OpenGL Mathematics (glm.g-truc.net)

-

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTC_reciprocal

-
Date
2008-10-09 / 2012-01-25
+

GLM_GTX_scalar_relational

+
Date
2013-02-04 / 2013-02-04
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
+
See also
GLM Core (dependence)
-

Definition in file gtc/reciprocal.hpp.

+

Definition in file scalar_relational.hpp.

diff --git a/doc/api/a00103_source.html b/doc/api/a00103_source.html index 07400363..6ef0a38e 100644 --- a/doc/api/a00103_source.html +++ b/doc/api/a00103_source.html @@ -3,8 +3,8 @@ - -GLM: reciprocal.hpp Source File + +0.9.6: scalar_relational.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,88 +41,39 @@
-
gtc/reciprocal.hpp
+
scalar_relational.hpp
Go to the documentation of this file.
1 
-
38 #ifndef GLM_GTC_reciprocal
-
39 #define GLM_GTC_reciprocal
-
40 
-
41 // Dependencies
-
42 #include "../detail/setup.hpp"
+
42 #pragma once
43 
-
44 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
45 # pragma message("GLM: GLM_GTC_reciprocal extension included")
-
46 #endif
-
47 
-
48 namespace glm
-
49 {
-
52 
-
57  template <typename genType>
-
58  GLM_FUNC_DECL genType sec(genType const & angle);
-
59 
-
64  template <typename genType>
-
65  GLM_FUNC_DECL genType csc(genType const & angle);
-
66 
-
71  template <typename genType>
-
72  GLM_FUNC_DECL genType cot(genType const & angle);
-
73 
-
77  template <typename genType>
-
78  GLM_FUNC_DECL genType asec(genType const & x);
-
79 
-
83  template <typename genType>
-
84  GLM_FUNC_DECL genType acsc(genType const & x);
-
85 
-
89  template <typename genType>
-
90  GLM_FUNC_DECL genType acot(genType const & x);
-
91 
-
95  template <typename genType>
-
96  GLM_FUNC_DECL genType sech(genType const & angle);
-
97 
-
101  template <typename genType>
-
102  GLM_FUNC_DECL genType csch(genType const & angle);
-
103 
-
107  template <typename genType>
-
108  GLM_FUNC_DECL genType coth(genType const & angle);
-
109 
-
113  template <typename genType>
-
114  GLM_FUNC_DECL genType asech(genType const & x);
-
115 
-
119  template <typename genType>
-
120  GLM_FUNC_DECL genType acsch(genType const & x);
-
121 
-
125  template <typename genType>
-
126  GLM_FUNC_DECL genType acoth(genType const & x);
-
127 
-
129 }//namespace glm
-
130 
-
131 #include "reciprocal.inl"
-
132 
-
133 #endif//GLM_GTC_reciprocal
-
GLM_FUNC_DECL genType acot(genType const &x)
Inverse cotangent function.
-
GLM_FUNC_DECL genType acsch(genType const &x)
Inverse cosecant hyperbolic function.
-
GLM_FUNC_DECL genType coth(genType const &angle)
Cotangent hyperbolic function.
-
GLM_FUNC_DECL genType sech(genType const &angle)
Secant hyperbolic function.
-
GLM_FUNC_DECL T angle(detail::tquat< T, P > const &x)
Returns the quaternion rotation angle.
-
GLM_FUNC_DECL genType acoth(genType const &x)
Inverse cotangent hyperbolic function.
-
GLM_FUNC_DECL genType csch(genType const &angle)
Cosecant hyperbolic function.
-
GLM_FUNC_DECL genType asech(genType const &x)
Inverse secant hyperbolic function.
-
GLM_FUNC_DECL genType sec(genType const &angle)
Secant function.
-
GLM_FUNC_DECL genType acsc(genType const &x)
Inverse cosecant function.
-
GLM_FUNC_DECL genType asec(genType const &x)
Inverse secant function.
-
GLM_FUNC_DECL genType csc(genType const &angle)
Cosecant function.
-
GLM_FUNC_DECL genType cot(genType const &angle)
Cotangent function.
+
44 // Dependency:
+
45 #include "../glm.hpp"
+
46 
+
47 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+
48 # pragma message("GLM: GLM_GTX_extend extension included")
+
49 #endif
+
50 
+
51 namespace glm
+
52 {
+
55 
+
56 
+
57 
+
59 }//namespace glm
+
60 
+
61 #include "scalar_relational.inl"
+
Definition: _noise.hpp:39
diff --git a/doc/api/a00104.html b/doc/api/a00104.html new file mode 100644 index 00000000..e4455b52 --- /dev/null +++ b/doc/api/a00104.html @@ -0,0 +1,73 @@ + + + + + + +0.9.6: setup.hpp File Reference + + + + + + +
+
+ + + + + + + +
+
0.9.6 +
+
+
+ + + + + +
+
+
+
setup.hpp File Reference
+
+
+ +

Go to the source code of this file.

+

Detailed Description

+

OpenGL Mathematics (glm.g-truc.net)

+

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+

GLM Core

+
Date
2006-11-13 / 2014-10-05
+
Author
Christophe Riccio
+ +

Definition in file setup.hpp.

+
+ + + + diff --git a/doc/api/a00104_source.html b/doc/api/a00104_source.html index 3baeb6f2..8a10886d 100644 --- a/doc/api/a00104_source.html +++ b/doc/api/a00104_source.html @@ -3,8 +3,8 @@ - -GLM: reciprocal.hpp Source File + +0.9.6: setup.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,24 +41,800 @@
-
gtx/reciprocal.hpp
+
setup.hpp
-
1 
-
24 #if(defined(GLM_MESSAGES))
-
25 # pragma message("GLM: GLM_GTX_reciprocal extension is deprecated, include GLM_GTC_reciprocal instead")
-
26 #endif
+Go to the documentation of this file.
1 
+
33 #pragma once
+
34 
+
35 #include <cassert>
+
36 #include <cstddef>
+
37 
+
39 // Version
+
40 
+
41 #define GLM_VERSION 96
+
42 #define GLM_VERSION_MAJOR 0
+
43 #define GLM_VERSION_MINOR 9
+
44 #define GLM_VERSION_PATCH 6
+
45 #define GLM_VERSION_REVISION 0
+
46 
+
48 // Platform
+
49 
+
50 #define GLM_PLATFORM_UNKNOWN 0x00000000
+
51 #define GLM_PLATFORM_WINDOWS 0x00010000
+
52 #define GLM_PLATFORM_LINUX 0x00020000
+
53 #define GLM_PLATFORM_APPLE 0x00040000
+
54 //#define GLM_PLATFORM_IOS 0x00080000
+
55 #define GLM_PLATFORM_ANDROID 0x00100000
+
56 #define GLM_PLATFORM_CHROME_NACL 0x00200000
+
57 #define GLM_PLATFORM_UNIX 0x00400000
+
58 #define GLM_PLATFORM_QNXNTO 0x00800000
+
59 #define GLM_PLATFORM_WINCE 0x01000000
+
60 
+
61 #ifdef GLM_FORCE_PLATFORM_UNKNOWN
+
62 # define GLM_PLATFORM GLM_PLATFORM_UNKNOWN
+
63 #elif defined(__QNXNTO__)
+
64 # define GLM_PLATFORM GLM_PLATFORM_QNXNTO
+
65 #elif defined(__APPLE__)
+
66 # define GLM_PLATFORM GLM_PLATFORM_APPLE
+
67 #elif defined(WINCE)
+
68 # define GLM_PLATFORM GLM_PLATFORM_WINCE
+
69 #elif defined(_WIN32)
+
70 # define GLM_PLATFORM GLM_PLATFORM_WINDOWS
+
71 #elif defined(__native_client__)
+
72 # define GLM_PLATFORM GLM_PLATFORM_CHROME_NACL
+
73 #elif defined(__ANDROID__)
+
74 # define GLM_PLATFORM GLM_PLATFORM_ANDROID
+
75 #elif defined(__linux)
+
76 # define GLM_PLATFORM GLM_PLATFORM_LINUX
+
77 #elif defined(__unix)
+
78 # define GLM_PLATFORM GLM_PLATFORM_UNIX
+
79 #else
+
80 # define GLM_PLATFORM GLM_PLATFORM_UNKNOWN
+
81 #endif//
+
82 
+
83 // Report platform detection
+
84 #if(defined(GLM_MESSAGES) && !defined(GLM_MESSAGE_PLATFORM_DISPLAYED))
+
85 # define GLM_MESSAGE_PLATFORM_DISPLAYED
+
86 # if(GLM_PLATFORM & GLM_PLATFORM_QNXNTO)
+
87 # pragma message("GLM: QNX platform detected")
+
88 //# elif(GLM_PLATFORM & GLM_PLATFORM_IOS)
+
89 //# pragma message("GLM: iOS platform detected")
+
90 # elif(GLM_PLATFORM & GLM_PLATFORM_APPLE)
+
91 # pragma message("GLM: Apple platform detected")
+
92 # elif(GLM_PLATFORM & GLM_PLATFORM_WINCE)
+
93 # pragma message("GLM: WinCE platform detected")
+
94 # elif(GLM_PLATFORM & GLM_PLATFORM_WINDOWS)
+
95 # pragma message("GLM: Windows platform detected")
+
96 # elif(GLM_PLATFORM & GLM_PLATFORM_CHROME_NACL)
+
97 # pragma message("GLM: Native Client detected")
+
98 # elif(GLM_PLATFORM & GLM_PLATFORM_ANDROID)
+
99 # pragma message("GLM: Android platform detected")
+
100 # elif(GLM_PLATFORM & GLM_PLATFORM_LINUX)
+
101 # pragma message("GLM: Linux platform detected")
+
102 # elif(GLM_PLATFORM & GLM_PLATFORM_UNIX)
+
103 # pragma message("GLM: UNIX platform detected")
+
104 # elif(GLM_PLATFORM & GLM_PLATFORM_UNKNOWN)
+
105 # pragma message("GLM: platform unknown")
+
106 # else
+
107 # pragma message("GLM: platform not detected")
+
108 # endif
+
109 #endif//GLM_MESSAGE
+
110 
+
112 // Compiler
+
113 
+
114 // User defines: GLM_FORCE_COMPILER_UNKNOWN
+
115 // TODO ? __llvm__
+
116 
+
117 #define GLM_COMPILER_UNKNOWN 0x00000000
+
118 
+
119 // Intel
+
120 #define GLM_COMPILER_INTEL 0x00100000
+
121 #define GLM_COMPILER_INTEL12 0x00100010
+
122 #define GLM_COMPILER_INTEL12_1 0x00100020
+
123 #define GLM_COMPILER_INTEL13 0x00100030
+
124 #define GLM_COMPILER_INTEL14 0x00100040
+
125 #define GLM_COMPILER_INTEL15 0x00100050
+
126 
+
127 // Visual C++ defines
+
128 #define GLM_COMPILER_VC 0x01000000
+
129 #define GLM_COMPILER_VC2010 0x01000090
+
130 #define GLM_COMPILER_VC2012 0x010000A0
+
131 #define GLM_COMPILER_VC2013 0x010000B0
+
132 #define GLM_COMPILER_VC2015 0x010000C0
+
133 
+
134 // GCC defines
+
135 #define GLM_COMPILER_GCC 0x02000000
+
136 #define GLM_COMPILER_GCC44 0x020000B0
+
137 #define GLM_COMPILER_GCC45 0x020000C0
+
138 #define GLM_COMPILER_GCC46 0x020000D0
+
139 #define GLM_COMPILER_GCC47 0x020000E0
+
140 #define GLM_COMPILER_GCC48 0x020000F0
+
141 #define GLM_COMPILER_GCC49 0x02000100
+
142 #define GLM_COMPILER_GCC50 0x02000200
+
143 
+
144 // CUDA
+
145 #define GLM_COMPILER_CUDA 0x10000000
+
146 #define GLM_COMPILER_CUDA40 0x10000040
+
147 #define GLM_COMPILER_CUDA41 0x10000050
+
148 #define GLM_COMPILER_CUDA42 0x10000060
+
149 #define GLM_COMPILER_CUDA50 0x10000070
+
150 #define GLM_COMPILER_CUDA60 0x10000080
+
151 #define GLM_COMPILER_CUDA65 0x10000090
+
152 
+
153 // LLVM
+
154 #define GLM_COMPILER_LLVM 0x20000000
+
155 #define GLM_COMPILER_LLVM32 0x20000030
+
156 #define GLM_COMPILER_LLVM33 0x20000040
+
157 #define GLM_COMPILER_LLVM34 0x20000050
+
158 #define GLM_COMPILER_LLVM35 0x20000060
+
159 
+
160 // Apple Clang
+
161 #define GLM_COMPILER_APPLE_CLANG 0x40000000
+
162 #define GLM_COMPILER_APPLE_CLANG40 0x40000010
+
163 #define GLM_COMPILER_APPLE_CLANG41 0x40000020
+
164 #define GLM_COMPILER_APPLE_CLANG42 0x40000030
+
165 #define GLM_COMPILER_APPLE_CLANG50 0x40000040
+
166 #define GLM_COMPILER_APPLE_CLANG51 0x40000050
+
167 #define GLM_COMPILER_APPLE_CLANG60 0x40000060
+
168 
+
169 // Build model
+
170 #define GLM_MODEL_32 0x00000010
+
171 #define GLM_MODEL_64 0x00000020
+
172 
+
173 // Force generic C++ compiler
+
174 #ifdef GLM_FORCE_COMPILER_UNKNOWN
+
175 # define GLM_COMPILER GLM_COMPILER_UNKNOWN
+
176 
+
177 #elif defined(__INTEL_COMPILER)
+
178 # if __INTEL_COMPILER == 1200
+
179 # define GLM_COMPILER GLM_COMPILER_INTEL12
+
180 # elif __INTEL_COMPILER == 1210
+
181 # define GLM_COMPILER GLM_COMPILER_INTEL12_1
+
182 # elif __INTEL_COMPILER == 1300
+
183 # define GLM_COMPILER GLM_COMPILER_INTEL13
+
184 # elif __INTEL_COMPILER == 1400
+
185 # define GLM_COMPILER GLM_COMPILER_INTEL14
+
186 # elif __INTEL_COMPILER >= 1500
+
187 # define GLM_COMPILER GLM_COMPILER_INTEL15
+
188 # else
+
189 # define GLM_COMPILER GLM_COMPILER_INTEL
+
190 # endif
+
191 
+
192 // CUDA
+
193 #elif defined(__CUDACC__)
+
194 # if !defined(CUDA_VERSION) && !defined(GLM_FORCE_CUDA)
+
195 # include <cuda.h> // make sure version is defined since nvcc does not define it itself!
+
196 # endif
+
197 # if CUDA_VERSION < 3000
+
198 # error "GLM requires CUDA 3.0 or higher"
+
199 # else
+
200 # define GLM_COMPILER GLM_COMPILER_CUDA
+
201 # endif
+
202 
+
203 // Visual C++
+
204 #elif defined(_MSC_VER)
+
205 # if _MSC_VER < 1600
+
206 # error "GLM requires Visual C++ 2010 or higher"
+
207 # elif _MSC_VER == 1600
+
208 # define GLM_COMPILER GLM_COMPILER_VC2010
+
209 # elif _MSC_VER == 1700
+
210 # define GLM_COMPILER GLM_COMPILER_VC2012
+
211 # elif _MSC_VER == 1800
+
212 # define GLM_COMPILER GLM_COMPILER_VC2013
+
213 # elif _MSC_VER >= 1900
+
214 # define GLM_COMPILER GLM_COMPILER_VC2015
+
215 # else//_MSC_VER
+
216 # define GLM_COMPILER GLM_COMPILER_VC
+
217 # endif//_MSC_VER
+
218 
+
219 // Clang
+
220 #elif defined(__clang__)
+
221 # if GLM_PLATFORM & GLM_PLATFORM_APPLE
+
222 # if __clang_major__ == 4 && __clang_minor__ == 0
+
223 # define GLM_COMPILER GLM_COMPILER_APPLE_CLANG40
+
224 # elif __clang_major__ == 4 && __clang_minor__ == 1
+
225 # define GLM_COMPILER GLM_COMPILER_APPLE_CLANG41
+
226 # elif __clang_major__ == 4 && __clang_minor__ == 2
+
227 # define GLM_COMPILER GLM_COMPILER_APPLE_CLANG42
+
228 # elif __clang_major__ == 5 && __clang_minor__ == 0
+
229 # define GLM_COMPILER GLM_COMPILER_APPLE_CLANG50
+
230 # elif __clang_major__ == 5 && __clang_minor__ == 1
+
231 # define GLM_COMPILER GLM_COMPILER_APPLE_CLANG51
+
232 # elif __clang_major__ >= 6
+
233 # define GLM_COMPILER GLM_COMPILER_APPLE_CLANG60
+
234 # endif
+
235 # else
+
236 # if __clang_major__ == 3 && __clang_minor__ == 0
+
237 # define GLM_COMPILER GLM_COMPILER_LLVM30
+
238 # elif __clang_major__ == 3 && __clang_minor__ == 1
+
239 # define GLM_COMPILER GLM_COMPILER_LLVM31
+
240 # elif __clang_major__ == 3 && __clang_minor__ == 2
+
241 # define GLM_COMPILER GLM_COMPILER_LLVM32
+
242 # elif __clang_major__ == 3 && __clang_minor__ == 3
+
243 # define GLM_COMPILER GLM_COMPILER_LLVM33
+
244 # elif __clang_major__ == 3 && __clang_minor__ == 4
+
245 # define GLM_COMPILER GLM_COMPILER_LLVM34
+
246 # elif __clang_major__ == 3 && __clang_minor__ == 5
+
247 # define GLM_COMPILER GLM_COMPILER_LLVM35
+
248 # else
+
249 # define GLM_COMPILER GLM_COMPILER_LLVM35
+
250 # endif
+
251 # endif
+
252 
+
253 // G++
+
254 #elif defined(__GNUC__) || defined(__MINGW32__)
+
255 # if (__GNUC__ == 4) && (__GNUC_MINOR__ == 2)
+
256 # define GLM_COMPILER (GLM_COMPILER_GCC42)
+
257 # elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 3)
+
258 # define GLM_COMPILER (GLM_COMPILER_GCC43)
+
259 # elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 4)
+
260 # define GLM_COMPILER (GLM_COMPILER_GCC44)
+
261 # elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 5)
+
262 # define GLM_COMPILER (GLM_COMPILER_GCC45)
+
263 # elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 6)
+
264 # define GLM_COMPILER (GLM_COMPILER_GCC46)
+
265 # elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 7)
+
266 # define GLM_COMPILER (GLM_COMPILER_GCC47)
+
267 # elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 8)
+
268 # define GLM_COMPILER (GLM_COMPILER_GCC48)
+
269 # elif (__GNUC__ == 4) && (__GNUC_MINOR__ >= 9)
+
270 # define GLM_COMPILER (GLM_COMPILER_GCC49)
+
271 # elif (__GNUC__ > 4 )
+
272 # define GLM_COMPILER (GLM_COMPILER_GCC50)
+
273 # else
+
274 # define GLM_COMPILER (GLM_COMPILER_GCC)
+
275 # endif
+
276 
+
277 #else
+
278 # define GLM_COMPILER GLM_COMPILER_UNKNOWN
+
279 #endif
+
280 
+
281 #ifndef GLM_COMPILER
+
282 #error "GLM_COMPILER undefined, your compiler may not be supported by GLM. Add #define GLM_COMPILER 0 to ignore this message."
+
283 #endif//GLM_COMPILER
+
284 
+
285 // Report compiler detection
+
286 #if defined(GLM_MESSAGES) && !defined(GLM_MESSAGE_COMPILER_DISPLAYED)
+
287 # define GLM_MESSAGE_COMPILER_DISPLAYED
+
288 # if GLM_COMPILER & GLM_COMPILER_CUDA
+
289 # pragma message("GLM: CUDA compiler detected")
+
290 # elif GLM_COMPILER & GLM_COMPILER_VC
+
291 # pragma message("GLM: Visual C++ compiler detected")
+
292 # elif GLM_COMPILER & GLM_COMPILER_APPLE_CLANG
+
293 # pragma message("GLM: Clang compiler detected")
+
294 # elif GLM_COMPILER & GLM_COMPILER_LLVM
+
295 # pragma message("GLM: LLVM compiler detected")
+
296 # elif GLM_COMPILER & GLM_COMPILER_INTEL
+
297 # pragma message("GLM: Intel Compiler detected")
+
298 # elif GLM_COMPILER & GLM_COMPILER_GCC
+
299 # pragma message("GLM: GCC compiler detected")
+
300 # else
+
301 # pragma message("GLM: Compiler not detected")
+
302 # endif
+
303 #endif//GLM_MESSAGE
+
304 
+
306 // Build model
+
307 
+
308 #if defined(__arch64__) || defined(__LP64__) || defined(_M_X64) || defined(__ppc64__) || defined(__x86_64__)
+
309 # define GLM_MODEL GLM_MODEL_64
+
310 #elif defined(__i386__) || defined(__ppc__)
+
311 # define GLM_MODEL GLM_MODEL_32
+
312 #else
+
313 # define GLM_MODEL GLM_MODEL_32
+
314 #endif//
+
315 
+
316 #if !defined(GLM_MODEL) && GLM_COMPILER != 0
+
317 # error "GLM_MODEL undefined, your compiler may not be supported by GLM. Add #define GLM_MODEL 0 to ignore this message."
+
318 #endif//GLM_MODEL
+
319 
+
320 #if defined(GLM_MESSAGES) && !defined(GLM_MESSAGE_MODEL_DISPLAYED)
+
321 # define GLM_MESSAGE_MODEL_DISPLAYED
+
322 # if(GLM_MODEL == GLM_MODEL_64)
+
323 # pragma message("GLM: 64 bits model")
+
324 # elif(GLM_MODEL == GLM_MODEL_32)
+
325 # pragma message("GLM: 32 bits model")
+
326 # endif//GLM_MODEL
+
327 #endif//GLM_MESSAGE
+
328 
+
330 // C++ Version
+
331 
+
332 // User defines: GLM_FORCE_CXX98
+
333 
+
334 #define GLM_LANG_CXX98_FLAG (1 << 1)
+
335 #define GLM_LANG_CXX03_FLAG (1 << 2)
+
336 #define GLM_LANG_CXX0X_FLAG (1 << 3)
+
337 #define GLM_LANG_CXX11_FLAG (1 << 4)
+
338 #define GLM_LANG_CXX1Y_FLAG (1 << 5)
+
339 #define GLM_LANG_CXXMS_FLAG (1 << 6)
+
340 #define GLM_LANG_CXXGNU_FLAG (1 << 7)
+
341 
+
342 #define GLM_LANG_CXX98 GLM_LANG_CXX98_FLAG
+
343 #define GLM_LANG_CXX03 (GLM_LANG_CXX98 | GLM_LANG_CXX03_FLAG)
+
344 #define GLM_LANG_CXX0X (GLM_LANG_CXX03 | GLM_LANG_CXX0X_FLAG)
+
345 #define GLM_LANG_CXX11 (GLM_LANG_CXX0X | GLM_LANG_CXX11_FLAG)
+
346 #define GLM_LANG_CXX1Y (GLM_LANG_CXX11 | GLM_LANG_CXX1Y_FLAG)
+
347 #define GLM_LANG_CXXMS GLM_LANG_CXXMS_FLAG
+
348 #define GLM_LANG_CXXGNU GLM_LANG_CXXGNU_FLAG
+
349 
+
350 #if defined(GLM_FORCE_CXX1Y)
+
351 # define GLM_LANG GLM_LANG_CXX1Y
+
352 #elif defined(GLM_FORCE_CXX11)
+
353 # define GLM_LANG GLM_LANG_CXX11
+
354 #elif defined(GLM_FORCE_CXX03)
+
355 # define GLM_LANG GLM_LANG_CXX03
+
356 #elif defined(GLM_FORCE_CXX98)
+
357 # define GLM_LANG GLM_LANG_CXX98
+
358 #else
+
359 # if __cplusplus >= 201103L
+
360 # define GLM_LANG GLM_LANG_CXX11
+
361 # elif GLM_COMPILER & GLM_COMPILER_CLANG
+
362 # if(GLM_PLATFORM == GLM_PLATFORM_APPLE)
+
363 # define GLM_DETAIL_MAJOR 1
+
364 # else
+
365 # define GLM_DETAIL_MAJOR 0
+
366 # endif
+
367 # if __clang_major__ < (2 + GLM_DETAIL_MAJOR)
+
368 # define GLM_LANG GLM_LANG_CXX
+
369 # elif __has_feature(cxx_auto_type)
+
370 # define GLM_LANG GLM_LANG_CXX0X
+
371 # else
+
372 # define GLM_LANG GLM_LANG_CXX98
+
373 # endif
+
374 # elif GLM_COMPILER & GLM_COMPILER_GCC
+
375 # ifdef __GXX_EXPERIMENTAL_CXX0X__
+
376 # define GLM_LANG GLM_LANG_CXX0X
+
377 # else
+
378 # define GLM_LANG GLM_LANG_CXX98
+
379 # endif
+
380 # elif GLM_COMPILER & GLM_COMPILER_VC
+
381 # ifdef _MSC_EXTENSIONS
+
382 # if GLM_COMPILER >= GLM_COMPILER_VC2010
+
383 # define GLM_LANG (GLM_LANG_CXX0X | GLM_LANG_CXXMS_FLAG)
+
384 # else
+
385 # define GLM_LANG (GLM_LANG_CXX98 | GLM_LANG_CXXMS_FLAG)
+
386 # endif
+
387 # else
+
388 # if GLM_COMPILER >= GLM_COMPILER_VC2010
+
389 # define GLM_LANG GLM_LANG_CXX0X
+
390 # else
+
391 # define GLM_LANG GLM_LANG_CXX98
+
392 # endif
+
393 # endif
+
394 # elif GLM_COMPILER & GLM_COMPILER_INTEL
+
395 # ifdef _MSC_EXTENSIONS
+
396 # if GLM_COMPILER >= GLM_COMPILER_INTEL13
+
397 # define GLM_LANG (GLM_LANG_CXX0X | GLM_LANG_CXXMS_FLAG)
+
398 # else
+
399 # define GLM_LANG (GLM_LANG_CXX98 | GLM_LANG_CXXMS_FLAG)
+
400 # endif
+
401 # else
+
402 # if GLM_COMPILER >= GLM_COMPILER_INTEL13
+
403 # define GLM_LANG (GLM_LANG_CXX0X)
+
404 # else
+
405 # define GLM_LANG (GLM_LANG_CXX98)
+
406 # endif
+
407 # endif
+
408 # else
+
409 # if __cplusplus >= 199711L
+
410 # define GLM_LANG GLM_LANG_CXX98
+
411 # endif
+
412 # ifndef GLM_FORCE_CXX98
+
413 # define GLM_FORCE_CXX98
+
414 # endif
+
415 # ifndef GLM_FORCE_PURE
+
416 # define GLM_FORCE_PURE
+
417 # endif
+
418 # endif
+
419 #endif
+
420 
+
421 #if defined(GLM_MESSAGES) && !defined(GLM_MESSAGE_LANG_DISPLAYED)
+
422 # define GLM_MESSAGE_LANG_DISPLAYED
+
423 # if(GLM_LANG & GLM_LANG_CXXGNU_FLAG)
+
424 # pragma message("GLM: C++ with language extensions")
+
425 # elif(GLM_LANG & GLM_LANG_CXXMS_FLAG)
+
426 # pragma message("GLM: C++ with language extensions")
+
427 # elif(GLM_LANG & GLM_LANG_CXX11_FLAG)
+
428 # pragma message("GLM: C++11")
+
429 # elif(GLM_LANG & GLM_LANG_CXX0X_FLAG)
+
430 # pragma message("GLM: C++0x")
+
431 # elif(GLM_LANG & GLM_LANG_CXX03_FLAG)
+
432 # pragma message("GLM: C++03")
+
433 # elif(GLM_LANG & GLM_LANG_CXX98_FLAG)
+
434 # pragma message("GLM: C++98")
+
435 # else
+
436 # pragma message("GLM: C++ language undetected")
+
437 # endif//GLM_MODEL
+
438 # pragma message("GLM: #define GLM_FORCE_CXX98, GLM_FORCE_CXX03, GLM_LANG_CXX11 or GLM_FORCE_CXX1Y to force using a specific version of the C++ language")
+
439 #endif//GLM_MESSAGE
+
440 
+
442 // Has of C++ features
+
443 
+
444 #ifndef __has_feature
+
445 # define __has_feature(x) 0 // Compatibility with non-clang compilers.
+
446 #endif
+
447 #ifndef __has_extension
+
448 # define __has_extension __has_feature // Compatibility with pre-3.0 compilers.
+
449 #endif
+
450 
+
451 // http://clang.llvm.org/cxx_status.html
+
452 // http://gcc.gnu.org/projects/cxx0x.html
+
453 // http://msdn.microsoft.com/en-us/library/vstudio/hh567368(v=vs.120).aspx
+
454 
+
455 // N1720
+
456 #define GLM_HAS_CXX11_STL ( \
+
457  (GLM_LANG & GLM_LANG_CXX11_FLAG) || \
+
458  ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC2015)))
+
459 
+
460 // N1720
+
461 #define GLM_HAS_STATIC_ASSERT ( \
+
462  (GLM_LANG & GLM_LANG_CXX11_FLAG) || \
+
463  ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC2010)) || \
+
464  ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC43)) || \
+
465  __has_feature(cxx_static_assert))
+
466 
+
467 // N1988
+
468 #define GLM_HAS_EXTENDED_INTEGER_TYPE ( \
+
469  (GLM_LANG & GLM_LANG_CXX11_FLAG) || \
+
470  ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC2012)) || \
+
471  ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC43)) || \
+
472  ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_LLVM) && (GLM_COMPILER >= GLM_COMPILER_LLVM30)) || \
+
473  ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_APPLE_CLANG) && (GLM_COMPILER >= GLM_COMPILER_APPLE_CLANG40)))
+
474 
+
475 // N2235
+
476 #define GLM_HAS_CONSTEXPR ( \
+
477  (GLM_LANG & GLM_LANG_CXX11_FLAG) || \
+
478  ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC46)) || \
+
479  __has_feature(cxx_constexpr))
+
480 
+
481 // N2672
+
482 #define GLM_HAS_INITIALIZER_LISTS ( \
+
483  (GLM_LANG & GLM_LANG_CXX11_FLAG) || \
+
484  ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC2013))) || \
+
485  ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC44)) || \
+
486  __has_feature(cxx_generalized_initializers))
+
487 
+
488 // N2544 Unrestricted unions
+
489 #define GLM_HAS_UNRESTRICTED_UNIONS ( \
+
490  (GLM_LANG & GLM_LANG_CXX11_FLAG) || \
+
491  (GLM_LANG & GLM_LANG_CXXMS_FLAG) || \
+
492  ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC46)) || \
+
493  __has_feature(cxx_unrestricted_unions))
+
494 
+
495 // N2346
+
496 #define GLM_HAS_DEFAULTED_FUNCTIONS ( \
+
497  (GLM_LANG & GLM_LANG_CXX11_FLAG) || \
+
498  ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC2013))) || \
+
499  ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC44)) || \
+
500  __has_feature(cxx_defaulted_functions))
+
501 
+
502 // N2118
+
503 #define GLM_HAS_RVALUE_REFERENCES ( \
+
504  (GLM_LANG & GLM_LANG_CXX11_FLAG) || \
+
505  ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC2012))) || \
+
506  ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC43)) || \
+
507  __has_feature(cxx_rvalue_references))
+
508 
+
509 #define GLM_HAS_STL_ARRAY ( \
+
510  (GLM_LANG & GLM_LANG_CXX11_FLAG) || \
+
511  ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC2010))) || \
+
512  ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC43)))
+
513 
+
514 #define GLM_HAS_TEMPLATE_ALIASES ( \
+
515  ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC2013))) || \
+
516  __has_feature(cxx_alias_templates))
+
517 
+
518 #define GLM_HAS_RANGE_FOR ( \
+
519  (GLM_LANG & GLM_LANG_CXX11_FLAG) || \
+
520  ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC2012))) || \
+
521  ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC46)) || \
+
522  __has_feature(cxx_range_for))
+
523 
+
524 #define GLM_HAS_ASSIGNABLE ( \
+
525  (GLM_LANG & GLM_LANG_CXX11_FLAG) || \
+
526  ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC49)))
+
527 
+
528 #define GLM_HAS_TRIVIAL_QUERIES ( \
+
529  ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC2013)))
+
530 
+
531 #define GLM_HAS_MAKE_SIGNED ( \
+
532  (GLM_LANG & GLM_LANG_CXX11_FLAG) || \
+
533  ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC2013)))
+
534 
+
535 #define GLM_HAS_BITSCAN_WINDOWS ( \
+
536  (GLM_ARCH != GLM_ARCH_PURE) && \
+
537  (GLM_PLATFORM & GLM_PLATFORM_WINDOWS) && \
+
538  (GLM_COMPILER & (GLM_COMPILER_VC | GLM_COMPILER_LLVM | GLM_COMPILER_INTEL)))
+
539 
+
540 // OpenMP
+
541 #ifdef _OPENMP
+
542 # if GLM_COMPILER & GLM_COMPILER_GCC
+
543 # if GLM_COMPILER >= GLM_COMPILER_GCC47
+
544 # define GLM_HAS_OPENMP 31
+
545 # elif GLM_COMPILER >= GLM_COMPILER_GCC44
+
546 # define GLM_HAS_OPENMP 30
+
547 # elif GLM_COMPILER >= GLM_COMPILER_GCC42
+
548 # define GLM_HAS_OPENMP 25
+
549 # endif
+
550 # endif// GLM_COMPILER & GLM_COMPILER_GCC
+
551 
+
552 # if GLM_COMPILER & GLM_COMPILER_VC
+
553 # if GLM_COMPILER >= GLM_COMPILER_VC2010
+
554 # define GLM_HAS_OPENMP 20
+
555 # endif
+
556 # endif// GLM_COMPILER & GLM_COMPILER_VC
+
557 #endif
+
558 
+
559 // Not standard
+
560 #define GLM_HAS_ANONYMOUS_UNION (GLM_LANG & GLM_LANG_CXXMS_FLAG)
+
561 
+
563 // Platform
+
564 
+
565 // User defines: GLM_FORCE_PURE GLM_FORCE_SSE2 GLM_FORCE_SSE3 GLM_FORCE_AVX GLM_FORCE_AVX2
+
566 
+
567 #define GLM_ARCH_PURE 0x0000
+
568 #define GLM_ARCH_X86 0x0001
+
569 #define GLM_ARCH_SSE2 0x0002
+
570 #define GLM_ARCH_SSE3 0x0004
+
571 #define GLM_ARCH_SSE4 0x0008
+
572 #define GLM_ARCH_AVX 0x0010
+
573 #define GLM_ARCH_AVX2 0x0020
+
574 
+
575 #if defined(GLM_FORCE_PURE)
+
576 # define GLM_ARCH GLM_ARCH_PURE
+
577 #elif defined(GLM_FORCE_AVX2)
+
578 # define GLM_ARCH (GLM_ARCH_AVX2 | GLM_ARCH_AVX | GLM_ARCH_SSE4 | GLM_ARCH_SSE3 | GLM_ARCH_SSE2)
+
579 #elif defined(GLM_FORCE_AVX)
+
580 # define GLM_ARCH (GLM_ARCH_AVX | GLM_ARCH_SSE4 | GLM_ARCH_SSE3 | GLM_ARCH_SSE2)
+
581 #elif defined(GLM_FORCE_SSE4)
+
582 # define GLM_ARCH (GLM_ARCH_SSE4 | GLM_ARCH_SSE3 | GLM_ARCH_SSE2)
+
583 #elif defined(GLM_FORCE_SSE3)
+
584 # define GLM_ARCH (GLM_ARCH_SSE3 | GLM_ARCH_SSE2)
+
585 #elif defined(GLM_FORCE_SSE2)
+
586 # define GLM_ARCH (GLM_ARCH_SSE2)
+
587 #elif (GLM_COMPILER & (GLM_COMPILER_APPLE_CLANG | GLM_COMPILER_LLVM | GLM_COMPILER_GCC)) || ((GLM_COMPILER & GLM_COMPILER_INTEL) && (GLM_PLATFORM & GLM_PLATFORM_LINUX))
+
588 # if(__AVX2__)
+
589 # define GLM_ARCH (GLM_ARCH_AVX2 | GLM_ARCH_AVX | GLM_ARCH_SSE3 | GLM_ARCH_SSE2)
+
590 # elif(__AVX__)
+
591 # define GLM_ARCH (GLM_ARCH_AVX | GLM_ARCH_SSE3 | GLM_ARCH_SSE2)
+
592 # elif(__SSE3__)
+
593 # define GLM_ARCH (GLM_ARCH_SSE3 | GLM_ARCH_SSE2)
+
594 # elif(__SSE2__)
+
595 # define GLM_ARCH (GLM_ARCH_SSE2)
+
596 # else
+
597 # define GLM_ARCH GLM_ARCH_PURE
+
598 # endif
+
599 #elif (GLM_COMPILER & GLM_COMPILER_VC) || ((GLM_COMPILER & GLM_COMPILER_INTEL) && (GLM_PLATFORM & GLM_PLATFORM_WINDOWS))
+
600 # if defined(__AVX2__)
+
601 # define GLM_ARCH (GLM_ARCH_AVX2 | GLM_ARCH_AVX | GLM_ARCH_SSE4 | GLM_ARCH_SSE3 | GLM_ARCH_SSE2)
+
602 # elif defined(__AVX__)
+
603 # define GLM_ARCH (GLM_ARCH_AVX | GLM_ARCH_SSE4 | GLM_ARCH_SSE3 | GLM_ARCH_SSE2)
+
604 # elif _M_IX86_FP == 2
+
605 # define GLM_ARCH (GLM_ARCH_SSE2)
+
606 # else
+
607 # define GLM_ARCH (GLM_ARCH_PURE)
+
608 # endif
+
609 #elif (GLM_COMPILER & GLM_COMPILER_GCC) && (defined(__i386__) || defined(__x86_64__))
+
610 # if defined(__AVX2__)
+
611 # define GLM_ARCH (GLM_ARCH_AVX2 | GLM_ARCH_AVX | GLM_ARCH_SSE4 | GLM_ARCH_SSE3 | GLM_ARCH_SSE2)
+
612 # elif defined(__AVX__)
+
613 # define GLM_ARCH (GLM_ARCH_AVX | GLM_ARCH_SSE4 | GLM_ARCH_SSE3 | GLM_ARCH_SSE2)
+
614 # elif defined(__SSE4_1__ )
+
615 # define GLM_ARCH (GLM_ARCH_SSE4 | GLM_ARCH_SSE3 | GLM_ARCH_SSE2)
+
616 # elif defined(__SSE3__)
+
617 # define GLM_ARCH (GLM_ARCH_SSE3 | GLM_ARCH_SSE2)
+
618 # elif defined(__SSE2__)
+
619 # define GLM_ARCH (GLM_ARCH_SSE2)
+
620 # else
+
621 # define GLM_ARCH (GLM_ARCH_PURE)
+
622 # endif
+
623 #else
+
624 # define GLM_ARCH GLM_ARCH_PURE
+
625 #endif
+
626 
+
627 // With MinGW-W64, including intrinsic headers before intrin.h will produce some errors. The problem is
+
628 // that windows.h (and maybe other headers) will silently include intrin.h, which of course causes problems.
+
629 // To fix, we just explicitly include intrin.h here.
+
630 #if defined(__MINGW32__) && (GLM_ARCH != GLM_ARCH_PURE)
+
631 # include <intrin.h>
+
632 #endif
+
633 
+
634 #if GLM_ARCH & GLM_ARCH_AVX2
+
635 # include <immintrin.h>
+
636 #endif//GLM_ARCH
+
637 #if GLM_ARCH & GLM_ARCH_AVX
+
638 # include <immintrin.h>
+
639 #endif//GLM_ARCH
+
640 #if GLM_ARCH & GLM_ARCH_SSE4
+
641 # include <smmintrin.h>
+
642 #endif//GLM_ARCH
+
643 #if GLM_ARCH & GLM_ARCH_SSE3
+
644 # include <pmmintrin.h>
+
645 #endif//GLM_ARCH
+
646 #if GLM_ARCH & GLM_ARCH_SSE2
+
647 # include <emmintrin.h>
+
648 # if(GLM_COMPILER == GLM_COMPILER_VC2005) // VC2005 is missing some intrinsics, workaround
+
649  inline float _mm_cvtss_f32(__m128 A) { return A.m128_f32[0]; }
+
650  inline __m128 _mm_castpd_ps(__m128d PD) { union { __m128 ps; __m128d pd; } c; c.pd = PD; return c.ps; }
+
651  inline __m128d _mm_castps_pd(__m128 PS) { union { __m128 ps; __m128d pd; } c; c.ps = PS; return c.pd; }
+
652  inline __m128i _mm_castps_si128(__m128 PS) { union { __m128 ps; __m128i pi; } c; c.ps = PS; return c.pi; }
+
653  inline __m128 _mm_castsi128_ps(__m128i PI) { union { __m128 ps; __m128i pi; } c; c.pi = PI; return c.ps; }
+
654 # endif
+
655 #endif//GLM_ARCH
+
656 
+
657 #if defined(GLM_MESSAGES) && !defined(GLM_MESSAGE_ARCH_DISPLAYED)
+
658 # define GLM_MESSAGE_ARCH_DISPLAYED
+
659 # if(GLM_ARCH == GLM_ARCH_PURE)
+
660 # pragma message("GLM: Platform independent code")
+
661 # elif(GLM_ARCH & GLM_ARCH_AVX2)
+
662 # pragma message("GLM: AVX2 instruction set")
+
663 # elif(GLM_ARCH & GLM_ARCH_AVX)
+
664 # pragma message("GLM: AVX instruction set")
+
665 # elif(GLM_ARCH & GLM_ARCH_SSE3)
+
666 # pragma message("GLM: SSE3 instruction set")
+
667 # elif(GLM_ARCH & GLM_ARCH_SSE2)
+
668 # pragma message("GLM: SSE2 instruction set")
+
669 # endif//GLM_ARCH
+
670 # pragma message("GLM: #define GLM_FORCE_PURE to avoid using platform specific instruction sets")
+
671 #endif//GLM_MESSAGE
+
672 
+
674 // Static assert
+
675 
+
676 #if GLM_HAS_STATIC_ASSERT
+
677 # define GLM_STATIC_ASSERT(x, message) static_assert(x, message)
+
678 #elif defined(BOOST_STATIC_ASSERT)
+
679 # define GLM_STATIC_ASSERT(x, message) BOOST_STATIC_ASSERT(x)
+
680 #elif GLM_COMPILER & GLM_COMPILER_VC
+
681 # define GLM_STATIC_ASSERT(x, message) typedef char __CASSERT__##__LINE__[(x) ? 1 : -1]
+
682 #else
+
683 # define GLM_STATIC_ASSERT(x, message)
+
684 # define GLM_STATIC_ASSERT_NULL
+
685 #endif//GLM_LANG
+
686 
+
688 // Qualifiers
+
689 
+
690 #if GLM_COMPILER & GLM_COMPILER_CUDA
+
691 # define GLM_CUDA_FUNC_DEF __device__ __host__
+
692 # define GLM_CUDA_FUNC_DECL __device__ __host__
+
693 #else
+
694 # define GLM_CUDA_FUNC_DEF
+
695 # define GLM_CUDA_FUNC_DECL
+
696 #endif
+
697 
+
698 #if GLM_COMPILER & GLM_COMPILER_GCC
+
699 # define GLM_VAR_USED __attribute__ ((unused))
+
700 #else
+
701 # define GLM_VAR_USED
+
702 #endif
+
703 
+
704 #if defined(GLM_FORCE_INLINE)
+
705 # if GLM_COMPILER & GLM_COMPILER_VC
+
706 # define GLM_INLINE __forceinline
+
707 # define GLM_NEVER_INLINE __declspec((noinline))
+
708 # elif GLM_COMPILER & GLM_COMPILER_GCC
+
709 # define GLM_INLINE inline __attribute__((__always_inline__))
+
710 # define GLM_NEVER_INLINE __attribute__((__noinline__))
+
711 # elif GLM_COMPILER & (GLM_COMPILER_APPLE_CLANG | GLM_COMPILER_LLVM)
+
712 # define GLM_INLINE __attribute__((__always_inline__))
+
713 # define GLM_NEVER_INLINE __attribute__((__noinline__))
+
714 # else
+
715 # define GLM_INLINE inline
+
716 # define GLM_NEVER_INLINE
+
717 # endif//GLM_COMPILER
+
718 #else
+
719 # define GLM_INLINE inline
+
720 # define GLM_NEVER_INLINE
+
721 #endif//defined(GLM_FORCE_INLINE)
+
722 
+
723 #define GLM_FUNC_DECL GLM_CUDA_FUNC_DECL
+
724 #define GLM_FUNC_QUALIFIER GLM_CUDA_FUNC_DEF GLM_INLINE
+
725 
+
727 // Swizzle operators
+
728 
+
729 // User defines: GLM_SWIZZLE
+
730 
+
731 #if defined(GLM_MESSAGES) && !defined(GLM_MESSAGE_SWIZZLE_DISPLAYED)
+
732 # define GLM_MESSAGE_SWIZZLE_DISPLAYED
+
733 # if defined(GLM_SWIZZLE)
+
734 # pragma message("GLM: Swizzling operators enabled")
+
735 # else
+
736 # pragma message("GLM: Swizzling operators disabled, #define GLM_SWIZZLE to enable swizzle operators")
+
737 # endif
+
738 #endif//GLM_MESSAGE
+
739 
+
741 // Qualifiers
+
742 
+
743 #if (GLM_COMPILER & GLM_COMPILER_VC) || ((GLM_COMPILER & GLM_COMPILER_INTEL) && (GLM_PLATFORM & GLM_PLATFORM_WINDOWS))
+
744 # define GLM_DEPRECATED __declspec(deprecated)
+
745 # define GLM_ALIGN(x) __declspec(align(x))
+
746 # define GLM_ALIGNED_STRUCT(x) struct __declspec(align(x))
+
747 # define GLM_ALIGNED_TYPEDEF(type, name, alignment) typedef __declspec(align(alignment)) type name
+
748 # define GLM_RESTRICT __declspec(restrict)
+
749 # define GLM_RESTRICT_VAR __restrict
+
750 #elif GLM_COMPILER & (GLM_COMPILER_GCC | GLM_COMPILER_APPLE_CLANG | GLM_COMPILER_LLVM | GLM_COMPILER_CUDA | GLM_COMPILER_INTEL)
+
751 # define GLM_DEPRECATED __attribute__((__deprecated__))
+
752 # define GLM_ALIGN(x) __attribute__((aligned(x)))
+
753 # define GLM_ALIGNED_STRUCT(x) struct __attribute__((aligned(x)))
+
754 # define GLM_ALIGNED_TYPEDEF(type, name, alignment) typedef type name __attribute__((aligned(alignment)))
+
755 # define GLM_RESTRICT __restrict__
+
756 # define GLM_RESTRICT_VAR __restrict__
+
757 #else
+
758 # define GLM_DEPRECATED
+
759 # define GLM_ALIGN
+
760 # define GLM_ALIGNED_STRUCT(x) struct
+
761 # define GLM_ALIGNED_TYPEDEF(type, name, alignment) typedef type name
+
762 # define GLM_RESTRICT
+
763 # define GLM_RESTRICT_VAR
+
764 #endif//GLM_COMPILER
+
765 
+
766 #if GLM_HAS_CONSTEXPR
+
767 # define GLM_CONSTEXPR constexpr
+
768 #else
+
769 # define GLM_CONSTEXPR
+
770 #endif
+
771 
+
773 // Length type
+
774 
+
775 // User defines: GLM_FORCE_SIZE_T_LENGTH GLM_FORCE_SIZE_FUNC
+
776 
+
777 namespace glm
+
778 {
+
779  using std::size_t;
+
780 #if defined(GLM_FORCE_SIZE_T_LENGTH) || defined(GLM_FORCE_SIZE_FUNC)
+
781  typedef size_t length_t;
+
782 #else
+
783  typedef int length_t;
+
784 #endif
+
785 
+
786 namespace detail
+
787 {
+
788 # ifdef GLM_FORCE_SIZE_FUNC
+
789  typedef size_t component_count_t;
+
790 # else
+
791  typedef length_t component_count_t;
+
792 # endif
+
793 
+
794  template <typename genType>
+
795  GLM_FUNC_QUALIFIER GLM_CONSTEXPR component_count_t component_count(genType const & m)
+
796  {
+
797 # ifdef GLM_FORCE_SIZE_FUNC
+
798  return m.size();
+
799 # else
+
800  return m.length();
+
801 # endif
+
802  }
+
803 }//namespace detail
+
804 }//namespace glm
+
805 
+
806 #if defined(GLM_MESSAGES) && !defined(GLM_MESSAGE_FORCE_SIZE_T_LENGTH)
+
807 # define GLM_MESSAGE_FORCE_SIZE_T_LENGTH
+
808 # if defined(GLM_FORCE_SIZE_T_LENGTH)
+
809 # pragma message("GLM: .length() returns glm::length_t, a typedef of std::size_t")
+
810 # else
+
811 # pragma message("GLM: .length() returns glm::length_t, a typedef of int following the GLSL specification")
+
812 # pragma message("GLM: #define GLM_FORCE_SIZE_T_LENGTH for .length() to return a size_t")
+
813 # endif
+
814 #endif//GLM_MESSAGE
+
815 
+
817 // Uninitialize constructors
+
818 
+
819 namespace glm
+
820 {
+
821  enum ctor{uninitialize};
+
822 }//namespace glm
+
GLM_FUNC_DECL genType pi()
Return the pi constant.
+
Definition: _noise.hpp:39
diff --git a/doc/api/a00105.html b/doc/api/a00105.html index 0ed1bc58..6431530e 100644 --- a/doc/api/a00105.html +++ b/doc/api/a00105.html @@ -3,8 +3,8 @@ - -GLM: rotate_normalized_axis.hpp File Reference + +0.9.6: simd_mat4.hpp File Reference @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,55 +41,34 @@
-
-Namespaces | -Functions
-
rotate_normalized_axis.hpp File Reference
+
simd_mat4.hpp File Reference

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
- - - - - - - -

-Functions

template<typename T , precision P>
detail::tmat4x4< T, P > rotateNormalizedAxis (detail::tmat4x4< T, P > const &m, T const &angle, detail::tvec3< T, P > const &axis)
 
template<typename T , precision P>
detail::tquat< T, P > rotateNormalizedAxis (detail::tquat< T, P > const &q, T const &angle, detail::tvec3< T, P > const &axis)
 

Detailed Description

OpenGL Mathematics (glm.g-truc.net)

-

Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_rotate_normalized_axis

-
Date
2012-12-13 / 2012-12-13
+

GLM_GTX_simd_mat4

+
Date
2009-05-07 / 2011-06-07
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
-
-GLM_GTC_matrix_transform
-
-GLM_GTC_quaternion
+
See also
GLM Core (dependence)
-

Definition in file rotate_normalized_axis.hpp.

+

Definition in file simd_mat4.hpp.

diff --git a/doc/api/a00105_source.html b/doc/api/a00105_source.html index 11af5886..8eb762f4 100644 --- a/doc/api/a00105_source.html +++ b/doc/api/a00105_source.html @@ -3,8 +3,8 @@ - -GLM: rotate_normalized_axis.hpp Source File + +0.9.6: simd_mat4.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,56 +41,173 @@
-
rotate_normalized_axis.hpp
+
simd_mat4.hpp
Go to the documentation of this file.
1 
-
40 #ifndef GLM_GTX_rotate_normalized_axis
-
41 #define GLM_GTX_rotate_normalized_axis
-
42 
-
43 // Dependency:
-
44 #include "../glm.hpp"
-
45 #include "../gtc/epsilon.hpp"
-
46 #include "../gtc/quaternion.hpp"
-
47 
-
48 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
49 # pragma message("GLM: GLM_GTX_rotate_normalized_axis extension included")
-
50 #endif
-
51 
-
52 namespace glm
-
53 {
-
56 
-
68  template <typename T, precision P>
-
69  detail::tmat4x4<T, P> rotateNormalizedAxis(
-
70  detail::tmat4x4<T, P> const & m,
-
71  T const & angle,
-
72  detail::tvec3<T, P> const & axis);
+
42 #pragma once
+
43 
+
44 // Dependencies
+
45 #include "../detail/setup.hpp"
+
46 
+
47 #if(GLM_ARCH != GLM_ARCH_PURE)
+
48 
+
49 #if(GLM_ARCH & GLM_ARCH_SSE2)
+
50 # include "../detail/intrinsic_matrix.hpp"
+
51 # include "../gtx/simd_vec4.hpp"
+
52 #else
+
53 # error "GLM: GLM_GTX_simd_mat4 requires compiler support of SSE2 through intrinsics"
+
54 #endif
+
55 
+
56 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+
57 # pragma message("GLM: GLM_GTX_simd_mat4 extension included")
+
58 #endif
+
59 
+
60 namespace glm{
+
61 namespace detail
+
62 {
+
65  GLM_ALIGNED_STRUCT(16) fmat4x4SIMD
+
66  {
+
67  typedef float value_type;
+
68  typedef fvec4SIMD col_type;
+
69  typedef fvec4SIMD row_type;
+
70  typedef std::size_t size_type;
+
71  typedef fmat4x4SIMD type;
+
72  typedef fmat4x4SIMD transpose_type;
73 
-
81  template <typename T, precision P>
-
82  detail::tquat<T, P> rotateNormalizedAxis(
-
83  detail::tquat<T, P> const & q,
-
84  T const & angle,
-
85  detail::tvec3<T, P> const & axis);
-
86 
-
88 }//namespace glm
-
89 
-
90 #include "rotate_normalized_axis.inl"
-
91 
-
92 #endif//GLM_GTX_rotate_normalized_axis
-
GLM_FUNC_DECL T angle(detail::tquat< T, P > const &x)
Returns the quaternion rotation angle.
-
detail::tmat4x4< T, P > rotateNormalizedAxis(detail::tmat4x4< T, P > const &m, T const &angle, detail::tvec3< T, P > const &axis)
Builds a rotation 4 * 4 matrix created from a normalized axis and an angle.
-
GLM_FUNC_DECL detail::tvec3< T, P > axis(detail::tquat< T, P > const &x)
Returns the q rotation axis.
+
74  GLM_FUNC_DECL length_t length() const;
+
75 
+
76  fvec4SIMD Data[4];
+
77 
+
79  // Constructors
+
80 
+
81  fmat4x4SIMD();
+
82  explicit fmat4x4SIMD(float const & s);
+
83  explicit fmat4x4SIMD(
+
84  float const & x0, float const & y0, float const & z0, float const & w0,
+
85  float const & x1, float const & y1, float const & z1, float const & w1,
+
86  float const & x2, float const & y2, float const & z2, float const & w2,
+
87  float const & x3, float const & y3, float const & z3, float const & w3);
+
88  explicit fmat4x4SIMD(
+
89  fvec4SIMD const & v0,
+
90  fvec4SIMD const & v1,
+
91  fvec4SIMD const & v2,
+
92  fvec4SIMD const & v3);
+
93  explicit fmat4x4SIMD(
+
94  mat4x4 const & m);
+
95  explicit fmat4x4SIMD(
+
96  __m128 const in[4]);
+
97 
+
98  // Conversions
+
99  //template <typename U>
+
100  //explicit tmat4x4(tmat4x4<U> const & m);
+
101 
+
102  //explicit tmat4x4(tmat2x2<T> const & x);
+
103  //explicit tmat4x4(tmat3x3<T> const & x);
+
104  //explicit tmat4x4(tmat2x3<T> const & x);
+
105  //explicit tmat4x4(tmat3x2<T> const & x);
+
106  //explicit tmat4x4(tmat2x4<T> const & x);
+
107  //explicit tmat4x4(tmat4x2<T> const & x);
+
108  //explicit tmat4x4(tmat3x4<T> const & x);
+
109  //explicit tmat4x4(tmat4x3<T> const & x);
+
110 
+
111  // Accesses
+
112  fvec4SIMD & operator[](length_t i);
+
113  fvec4SIMD const & operator[](length_t i) const;
+
114 
+
115  // Unary updatable operators
+
116  fmat4x4SIMD & operator= (fmat4x4SIMD const & m);
+
117  fmat4x4SIMD & operator+= (float const & s);
+
118  fmat4x4SIMD & operator+= (fmat4x4SIMD const & m);
+
119  fmat4x4SIMD & operator-= (float const & s);
+
120  fmat4x4SIMD & operator-= (fmat4x4SIMD const & m);
+
121  fmat4x4SIMD & operator*= (float const & s);
+
122  fmat4x4SIMD & operator*= (fmat4x4SIMD const & m);
+
123  fmat4x4SIMD & operator/= (float const & s);
+
124  fmat4x4SIMD & operator/= (fmat4x4SIMD const & m);
+
125  fmat4x4SIMD & operator++ ();
+
126  fmat4x4SIMD & operator-- ();
+
127  };
+
128 
+
129  // Binary operators
+
130  fmat4x4SIMD operator+ (fmat4x4SIMD const & m, float const & s);
+
131  fmat4x4SIMD operator+ (float const & s, fmat4x4SIMD const & m);
+
132  fmat4x4SIMD operator+ (fmat4x4SIMD const & m1, fmat4x4SIMD const & m2);
+
133 
+
134  fmat4x4SIMD operator- (fmat4x4SIMD const & m, float const & s);
+
135  fmat4x4SIMD operator- (float const & s, fmat4x4SIMD const & m);
+
136  fmat4x4SIMD operator- (fmat4x4SIMD const & m1, fmat4x4SIMD const & m2);
+
137 
+
138  fmat4x4SIMD operator* (fmat4x4SIMD const & m, float const & s);
+
139  fmat4x4SIMD operator* (float const & s, fmat4x4SIMD const & m);
+
140 
+
141  fvec4SIMD operator* (fmat4x4SIMD const & m, fvec4SIMD const & v);
+
142  fvec4SIMD operator* (fvec4SIMD const & v, fmat4x4SIMD const & m);
+
143 
+
144  fmat4x4SIMD operator* (fmat4x4SIMD const & m1, fmat4x4SIMD const & m2);
+
145 
+
146  fmat4x4SIMD operator/ (fmat4x4SIMD const & m, float const & s);
+
147  fmat4x4SIMD operator/ (float const & s, fmat4x4SIMD const & m);
+
148 
+
149  fvec4SIMD operator/ (fmat4x4SIMD const & m, fvec4SIMD const & v);
+
150  fvec4SIMD operator/ (fvec4SIMD const & v, fmat4x4SIMD const & m);
+
151 
+
152  fmat4x4SIMD operator/ (fmat4x4SIMD const & m1, fmat4x4SIMD const & m2);
+
153 
+
154  // Unary constant operators
+
155  fmat4x4SIMD const operator- (fmat4x4SIMD const & m);
+
156  fmat4x4SIMD const operator-- (fmat4x4SIMD const & m, int);
+
157  fmat4x4SIMD const operator++ (fmat4x4SIMD const & m, int);
+
158 }//namespace detail
+
159 
+
160  typedef detail::fmat4x4SIMD simdMat4;
+
161 
+
164 
+
167  mat4 mat4_cast(
+
168  detail::fmat4x4SIMD const & x);
+
169 
+
173  detail::fmat4x4SIMD matrixCompMult(
+
174  detail::fmat4x4SIMD const & x,
+
175  detail::fmat4x4SIMD const & y);
+
176 
+
181  detail::fmat4x4SIMD outerProduct(
+
182  detail::fvec4SIMD const & c,
+
183  detail::fvec4SIMD const & r);
+
184 
+
187  detail::fmat4x4SIMD transpose(
+
188  detail::fmat4x4SIMD const & x);
+
189 
+
192  float determinant(
+
193  detail::fmat4x4SIMD const & m);
+
194 
+
197  detail::fmat4x4SIMD inverse(
+
198  detail::fmat4x4SIMD const & m);
+
199 
+
201 }// namespace glm
+
202 
+
203 #include "simd_mat4.inl"
+
204 
+
205 #endif//(GLM_ARCH != GLM_ARCH_PURE)
+
mat4x4 mat4
4 columns of 4 components matrix of floating-point numbers.
Definition: type_mat.hpp:442
+
GLM_FUNC_DECL T length(vecType< T, P > const &x)
Returns the length of x, i.e., sqrt(x * x).
+
highp_mat4x4 mat4x4
4 columns of 4 components matrix of floating-point numbers.
Definition: type_mat.hpp:425
+
GLM_FUNC_DECL detail::outerProduct_trait< T, P, vecTypeA, vecTypeB >::type outerProduct(vecTypeA< T, P > const &c, vecTypeB< T, P > const &r)
Treats the first parameter c as a column vector and the second parameter r as a row vector and does a...
+
Definition: _noise.hpp:39
+
GLM_FUNC_DECL matType< T, P > inverse(matType< T, P > const &m)
Return the inverse of a squared matrix.
+
GLM_FUNC_DECL tmat4x4< T, P > mat4_cast(tquat< T, P > const &x)
Converts a quaternion to a 4 * 4 matrix.
+
GLM_FUNC_DECL matType< T, P > matrixCompMult(matType< T, P > const &x, matType< T, P > const &y)
Multiply matrix x by matrix y component-wise, i.e., result[i][j] is the scalar product of x[i][j] and...
+
GLM_FUNC_DECL T determinant(matType< T, P > const &m)
Returns the transposed matrix of x.
diff --git a/doc/api/a00106.html b/doc/api/a00106.html index f43ebdcb..bedc7bef 100644 --- a/doc/api/a00106.html +++ b/doc/api/a00106.html @@ -3,8 +3,8 @@ - -GLM: rotate_vector.hpp File Reference + +0.9.6: simd_quat.hpp File Reference @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,77 +41,34 @@
-
-Namespaces | -Functions
-
rotate_vector.hpp File Reference
+
simd_quat.hpp File Reference

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename T , precision P>
detail::tmat4x4< T, P > orientation (detail::tvec3< T, P > const &Normal, detail::tvec3< T, P > const &Up)
 
template<typename T , precision P>
detail::tvec2< T, P > rotate (detail::tvec2< T, P > const &v, T const &angle)
 
template<typename T , precision P>
detail::tvec3< T, P > rotate (detail::tvec3< T, P > const &v, T const &angle, detail::tvec3< T, P > const &normal)
 
template<typename T , precision P>
detail::tvec4< T, P > rotate (detail::tvec4< T, P > const &v, T const &angle, detail::tvec3< T, P > const &normal)
 
template<typename T , precision P>
detail::tvec3< T, P > rotateX (detail::tvec3< T, P > const &v, T const &angle)
 
template<typename T , precision P>
detail::tvec4< T, P > rotateX (detail::tvec4< T, P > const &v, T const &angle)
 
template<typename T , precision P>
detail::tvec3< T, P > rotateY (detail::tvec3< T, P > const &v, T const &angle)
 
template<typename T , precision P>
detail::tvec4< T, P > rotateY (detail::tvec4< T, P > const &v, T const &angle)
 
template<typename T , precision P>
detail::tvec3< T, P > rotateZ (detail::tvec3< T, P > const &v, T const &angle)
 
template<typename T , precision P>
detail::tvec4< T, P > rotateZ (detail::tvec4< T, P > const &v, T const &angle)
 

Detailed Description

OpenGL Mathematics (glm.g-truc.net)

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_rotate_vector

-
Date
2006-11-02 / 2011-06-07
+

GLM_GTX_simd_quat

+
Date
2013-04-22 / 2014-11-25
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
-
-GLM_GTX_transform (dependence)
+
See also
GLM Core (dependence)
-

Definition in file rotate_vector.hpp.

+

Definition in file simd_quat.hpp.

diff --git a/doc/api/a00106_source.html b/doc/api/a00106_source.html index 3f869bda..6441b94b 100644 --- a/doc/api/a00106_source.html +++ b/doc/api/a00106_source.html @@ -3,8 +3,8 @@ - -GLM: rotate_vector.hpp Source File + +0.9.6: simd_quat.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,98 +41,241 @@
-
rotate_vector.hpp
+
simd_quat.hpp
Go to the documentation of this file.
1 
-
39 #ifndef GLM_GTX_rotate_vector
-
40 #define GLM_GTX_rotate_vector
-
41 
-
42 // Dependency:
-
43 #include "../glm.hpp"
-
44 #include "../gtx/transform.hpp"
-
45 
-
46 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
47 # pragma message("GLM: GLM_GTX_rotate_vector extension included")
-
48 #endif
-
49 
-
50 namespace glm
-
51 {
-
54 
-
57  template <typename T, precision P>
-
58  detail::tvec2<T, P> rotate(
-
59  detail::tvec2<T, P> const & v,
-
60  T const & angle);
-
61 
-
64  template <typename T, precision P>
-
65  detail::tvec3<T, P> rotate(
-
66  detail::tvec3<T, P> const & v,
-
67  T const & angle,
-
68  detail::tvec3<T, P> const & normal);
-
69 
-
72  template <typename T, precision P>
-
73  detail::tvec4<T, P> rotate(
-
74  detail::tvec4<T, P> const & v,
-
75  T const & angle,
-
76  detail::tvec3<T, P> const & normal);
-
77 
-
80  template <typename T, precision P>
-
81  detail::tvec3<T, P> rotateX(
-
82  detail::tvec3<T, P> const & v,
-
83  T const & angle);
-
84 
-
87  template <typename T, precision P>
-
88  detail::tvec3<T, P> rotateY(
-
89  detail::tvec3<T, P> const & v,
-
90  T const & angle);
-
91 
-
94  template <typename T, precision P>
-
95  detail::tvec3<T, P> rotateZ(
-
96  detail::tvec3<T, P> const & v,
-
97  T const & angle);
-
98 
-
101  template <typename T, precision P>
-
102  detail::tvec4<T, P> rotateX(
-
103  detail::tvec4<T, P> const & v,
-
104  T const & angle);
-
105 
-
108  template <typename T, precision P>
-
109  detail::tvec4<T, P> rotateY(
-
110  detail::tvec4<T, P> const & v,
-
111  T const & angle);
-
112 
-
115  template <typename T, precision P>
-
116  detail::tvec4<T, P> rotateZ(
-
117  detail::tvec4<T, P> const & v,
-
118  T const & angle);
-
119 
-
122  template <typename T, precision P>
-
123  detail::tmat4x4<T, P> orientation(
-
124  detail::tvec3<T, P> const & Normal,
-
125  detail::tvec3<T, P> const & Up);
+
42 #pragma once
+
43 
+
44 // Dependency:
+
45 #include "../glm.hpp"
+
46 #include "../gtc/quaternion.hpp"
+
47 #include "../gtx/fast_trigonometry.hpp"
+
48 
+
49 #if(GLM_ARCH != GLM_ARCH_PURE)
+
50 
+
51 #if(GLM_ARCH & GLM_ARCH_SSE2)
+
52 # include "../gtx/simd_mat4.hpp"
+
53 #else
+
54 # error "GLM: GLM_GTX_simd_quat requires compiler support of SSE2 through intrinsics"
+
55 #endif
+
56 
+
57 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+
58 # pragma message("GLM: GLM_GTX_simd_quat extension included")
+
59 #endif
+
60 
+
61 // Warning silencer for nameless struct/union.
+
62 #if (GLM_COMPILER & GLM_COMPILER_VC)
+
63 # pragma warning(push)
+
64 # pragma warning(disable:4201) // warning C4201: nonstandard extension used : nameless struct/union
+
65 #endif
+
66 
+
67 namespace glm{
+
68 namespace detail
+
69 {
+
70  GLM_ALIGNED_STRUCT(16) fquatSIMD
+
71  {
+
72  typedef __m128 value_type;
+
73  typedef std::size_t size_type;
+
74  static size_type value_size();
+
75 
+
76  typedef fquatSIMD type;
+
77  typedef tquat<bool, defaultp> bool_type;
+
78 
+
79 #ifdef GLM_SIMD_ENABLE_XYZW_UNION
+
80  union
+
81  {
+
82  __m128 Data;
+
83  struct {float x, y, z, w;};
+
84  };
+
85 #else
+
86  __m128 Data;
+
87 #endif
+
88 
+
90  // Implicit basic constructors
+
91 
+
92  fquatSIMD();
+
93  fquatSIMD(__m128 const & Data);
+
94  fquatSIMD(fquatSIMD const & q);
+
95 
+
97  // Explicit basic constructors
+
98 
+
99  explicit fquatSIMD(
+
100  ctor);
+
101  explicit fquatSIMD(
+
102  float const & w,
+
103  float const & x,
+
104  float const & y,
+
105  float const & z);
+
106  explicit fquatSIMD(
+
107  quat const & v);
+
108  explicit fquatSIMD(
+
109  vec3 const & eulerAngles);
+
110 
+
111 
+
113  // Unary arithmetic operators
+
114 
+
115  fquatSIMD& operator =(fquatSIMD const & q);
+
116  fquatSIMD& operator*=(float const & s);
+
117  fquatSIMD& operator/=(float const & s);
+
118  };
+
119 
+
120 
+
122  // Arithmetic operators
+
123 
+
124  detail::fquatSIMD operator- (
+
125  detail::fquatSIMD const & q);
126 
-
128 }//namespace glm
-
129 
-
130 #include "rotate_vector.inl"
-
131 
-
132 #endif//GLM_GTX_rotate_vector
-
detail::tvec3< T, P > rotateX(detail::tvec3< T, P > const &v, T const &angle)
Rotate a three dimensional vector around the X axis.
-
GLM_FUNC_DECL detail::tmat4x4< T, P > rotate(detail::tmat4x4< T, P > const &m, T const &angle, detail::tvec3< T, P > const &axis)
Builds a rotation 4 * 4 matrix created from an axis vector and an angle.
-
GLM_FUNC_DECL T angle(detail::tquat< T, P > const &x)
Returns the quaternion rotation angle.
-
detail::tmat4x4< T, P > orientation(detail::tvec3< T, P > const &Normal, detail::tvec3< T, P > const &Up)
Build a rotation matrix from a normal and a up vector.
-
detail::tvec3< T, P > rotateY(detail::tvec3< T, P > const &v, T const &angle)
Rotate a three dimensional vector around the Y axis.
-
detail::tvec3< T, P > rotateZ(detail::tvec3< T, P > const &v, T const &angle)
Rotate a three dimensional vector around the Z axis.
+
127  detail::fquatSIMD operator+ (
+
128  detail::fquatSIMD const & q,
+
129  detail::fquatSIMD const & p);
+
130 
+
131  detail::fquatSIMD operator* (
+
132  detail::fquatSIMD const & q,
+
133  detail::fquatSIMD const & p);
+
134 
+
135  detail::fvec4SIMD operator* (
+
136  detail::fquatSIMD const & q,
+
137  detail::fvec4SIMD const & v);
+
138 
+
139  detail::fvec4SIMD operator* (
+
140  detail::fvec4SIMD const & v,
+
141  detail::fquatSIMD const & q);
+
142 
+
143  detail::fquatSIMD operator* (
+
144  detail::fquatSIMD const & q,
+
145  float s);
+
146 
+
147  detail::fquatSIMD operator* (
+
148  float s,
+
149  detail::fquatSIMD const & q);
+
150 
+
151  detail::fquatSIMD operator/ (
+
152  detail::fquatSIMD const & q,
+
153  float s);
+
154 
+
155 }//namespace detail
+
156 
+
159 
+
160  typedef glm::detail::fquatSIMD simdQuat;
+
161 
+
164  quat quat_cast(
+
165  detail::fquatSIMD const & x);
+
166 
+
169  detail::fquatSIMD quatSIMD_cast(
+
170  detail::fmat4x4SIMD const & m);
+
171 
+
174  template <typename T, precision P>
+
175  detail::fquatSIMD quatSIMD_cast(
+
176  tmat4x4<T, P> const & m);
+
177 
+
180  template <typename T, precision P>
+
181  detail::fquatSIMD quatSIMD_cast(
+
182  tmat3x3<T, P> const & m);
+
183 
+
186  detail::fmat4x4SIMD mat4SIMD_cast(
+
187  detail::fquatSIMD const & q);
+
188 
+
191  mat4 mat4_cast(
+
192  detail::fquatSIMD const & q);
+
193 
+
194 
+
198  float length(
+
199  detail::fquatSIMD const & x);
+
200 
+
204  detail::fquatSIMD normalize(
+
205  detail::fquatSIMD const & x);
+
206 
+
210  float dot(
+
211  detail::fquatSIMD const & q1,
+
212  detail::fquatSIMD const & q2);
+
213 
+
224  detail::fquatSIMD mix(
+
225  detail::fquatSIMD const & x,
+
226  detail::fquatSIMD const & y,
+
227  float const & a);
+
228 
+
237  detail::fquatSIMD lerp(
+
238  detail::fquatSIMD const & x,
+
239  detail::fquatSIMD const & y,
+
240  float const & a);
+
241 
+
250  detail::fquatSIMD slerp(
+
251  detail::fquatSIMD const & x,
+
252  detail::fquatSIMD const & y,
+
253  float const & a);
+
254 
+
255 
+
266  detail::fquatSIMD fastMix(
+
267  detail::fquatSIMD const & x,
+
268  detail::fquatSIMD const & y,
+
269  float const & a);
+
270 
+
278  detail::fquatSIMD fastSlerp(
+
279  detail::fquatSIMD const & x,
+
280  detail::fquatSIMD const & y,
+
281  float const & a);
+
282 
+
283 
+
287  detail::fquatSIMD conjugate(
+
288  detail::fquatSIMD const & q);
+
289 
+
293  detail::fquatSIMD inverse(
+
294  detail::fquatSIMD const & q);
+
295 
+
302  detail::fquatSIMD angleAxisSIMD(
+
303  float const & angle,
+
304  vec3 const & axis);
+
305 
+
314  detail::fquatSIMD angleAxisSIMD(
+
315  float const & angle,
+
316  float const & x,
+
317  float const & y,
+
318  float const & z);
+
319 
+
320  // TODO: Move this to somewhere more appropriate. Used with fastMix() and fastSlerp().
+
322  __m128 fastSin(__m128 x);
+
323 
+
325 }//namespace glm
+
326 
+
327 #include "simd_quat.inl"
+
328 
+
329 
+
330 #if (GLM_COMPILER & GLM_COMPILER_VC)
+
331 # pragma warning(pop)
+
332 #endif
+
333 
+
334 
+
335 #endif//(GLM_ARCH != GLM_ARCH_PURE)
+
GLM_FUNC_DECL T fastSin(T angle)
Faster than the common sin function but less accurate.
+
GLM_FUNC_DECL tquat< T, P > quat_cast(tmat3x3< T, P > const &x)
Converts a 3 * 3 matrix to a quaternion.
+
GLM_FUNC_DECL tvec3< T, P > axis(tquat< T, P > const &x)
Returns the q rotation axis.
+
GLM_FUNC_DECL tquat< T, P > slerp(tquat< T, P > const &x, tquat< T, P > const &y, T const &a)
Spherical linear interpolation of two quaternions.
+
GLM_FUNC_DECL T angle(tquat< T, P > const &x)
Returns the quaternion rotation angle.
+
GLM_FUNC_DECL tvec3< T, P > eulerAngles(tquat< T, P > const &x)
Returns euler angles, yitch as x, yaw as y, roll as z.
+
GLM_FUNC_DECL T dot(vecType< T, P > const &x, vecType< T, P > const &y)
Returns the dot product of x and y, i.e., result = x * y.
+
mat4x4 mat4
4 columns of 4 components matrix of floating-point numbers.
Definition: type_mat.hpp:442
+
GLM_FUNC_DECL T length(vecType< T, P > const &x)
Returns the length of x, i.e., sqrt(x * x).
+
GLM_FUNC_DECL vecType< T, P > normalize(vecType< T, P > const &x)
Returns a vector in the same direction as x but with length of 1.
+
GLM_FUNC_DECL vecType< T, P > mix(vecType< T, P > const &x, vecType< T, P > const &y, vecType< U, P > const &a)
If genTypeU is a floating scalar or vector: Returns x * (1.0 - a) + y * a, i.e., the linear blend of ...
+
Definition: _noise.hpp:39
+
GLM_FUNC_DECL tquat< T, P > conjugate(tquat< T, P > const &q)
Returns the q conjugate.
+
highp_vec3 vec3
3 components vector of floating-point numbers.
Definition: type_vec.hpp:397
+
GLM_FUNC_DECL matType< T, P > inverse(matType< T, P > const &m)
Return the inverse of a squared matrix.
+
GLM_FUNC_DECL tmat4x4< T, P > mat4_cast(tquat< T, P > const &x)
Converts a quaternion to a 4 * 4 matrix.
+
GLM_FUNC_DECL tquat< T, P > fastMix(tquat< T, P > const &x, tquat< T, P > const &y, T const &a)
Quaternion normalized linear interpolation.
+
GLM_FUNC_DECL tquat< T, P > lerp(tquat< T, P > const &x, tquat< T, P > const &y, T const &a)
Linear interpolation of two quaternions.
diff --git a/doc/api/a00107.html b/doc/api/a00107.html index 6413b0a3..fdb870ed 100644 --- a/doc/api/a00107.html +++ b/doc/api/a00107.html @@ -3,8 +3,8 @@ - -GLM: scalar_relational.hpp File Reference + +0.9.6: simd_vec4.hpp File Reference @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,41 +41,34 @@
-
-Namespaces
-
scalar_relational.hpp File Reference
+
simd_vec4.hpp File Reference

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 

Detailed Description

OpenGL Mathematics (glm.g-truc.net)

-

Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

Gtx_scalar_relational

-
Date
2013-02-04 / 2013-02-04
+

GLM_GTX_simd_vec4

+
Date
2009-05-07 / 2011-06-07
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
+
See also
GLM Core (dependence)
-

Definition in file scalar_relational.hpp.

+

Definition in file simd_vec4.hpp.

diff --git a/doc/api/a00107_source.html b/doc/api/a00107_source.html index 14cd4a44..b23ec07d 100644 --- a/doc/api/a00107_source.html +++ b/doc/api/a00107_source.html @@ -3,8 +3,8 @@ - -GLM: scalar_relational.hpp Source File + +0.9.6: simd_vec4.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,41 +41,361 @@
-
scalar_relational.hpp
+
simd_vec4.hpp
Go to the documentation of this file.
1 
-
38 #ifndef GLM_GTX_scalar_relational
-
39 #define GLM_GTX_scalar_relational
-
40 
-
41 // Dependency:
-
42 #include "../glm.hpp"
+
42 #pragma once
43 
-
44 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
45 # pragma message("GLM: GLM_GTX_extend extension included")
-
46 #endif
-
47 
-
48 namespace glm
-
49 {
-
52 
-
53 
-
54 
-
56 }//namespace glm
-
57 
-
58 #include "scalar_relational.inl"
-
59 
-
60 #endif//GLM_GTX_scalar_relational
+
44 // Dependency:
+
45 #include "../glm.hpp"
+
46 
+
47 #if(GLM_ARCH != GLM_ARCH_PURE)
+
48 
+
49 #if(GLM_ARCH & GLM_ARCH_SSE2)
+
50 # include "../detail/intrinsic_common.hpp"
+
51 # include "../detail/intrinsic_geometric.hpp"
+
52 # include "../detail/intrinsic_integer.hpp"
+
53 #else
+
54 # error "GLM: GLM_GTX_simd_vec4 requires compiler support of SSE2 through intrinsics"
+
55 #endif
+
56 
+
57 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+
58 # pragma message("GLM: GLM_GTX_simd_vec4 extension included")
+
59 #endif
+
60 
+
61 
+
62 // Warning silencer for nameless struct/union.
+
63 #if (GLM_COMPILER & GLM_COMPILER_VC)
+
64 # pragma warning(push)
+
65 # pragma warning(disable:4201) // warning C4201: nonstandard extension used : nameless struct/union
+
66 #endif
+
67 
+
68 namespace glm
+
69 {
+
70  enum comp
+
71  {
+
72  X = 0,
+
73  R = 0,
+
74  S = 0,
+
75  Y = 1,
+
76  G = 1,
+
77  T = 1,
+
78  Z = 2,
+
79  B = 2,
+
80  P = 2,
+
81  W = 3,
+
82  A = 3,
+
83  Q = 3
+
84  };
+
85 
+
86 }//namespace glm
+
87 
+
88 namespace glm{
+
89 namespace detail
+
90 {
+
93  GLM_ALIGNED_STRUCT(16) fvec4SIMD
+
94  {
+
95  typedef __m128 value_type;
+
96  typedef std::size_t size_type;
+
97  static size_type value_size();
+
98 
+
99  typedef fvec4SIMD type;
+
100  typedef tvec4<bool, highp> bool_type;
+
101 
+
102 #ifdef GLM_SIMD_ENABLE_XYZW_UNION
+
103  union
+
104  {
+
105  __m128 Data;
+
106  struct {float x, y, z, w;};
+
107  };
+
108 #else
+
109  __m128 Data;
+
110 #endif
+
111 
+
113  // Implicit basic constructors
+
114 
+
115  fvec4SIMD();
+
116  fvec4SIMD(__m128 const & Data);
+
117  fvec4SIMD(fvec4SIMD const & v);
+
118 
+
120  // Explicit basic constructors
+
121 
+
122  explicit fvec4SIMD(
+
123  ctor);
+
124  explicit fvec4SIMD(
+
125  float const & s);
+
126  explicit fvec4SIMD(
+
127  float const & x,
+
128  float const & y,
+
129  float const & z,
+
130  float const & w);
+
131  explicit fvec4SIMD(
+
132  vec4 const & v);
+
133 
+
136 
+
137  fvec4SIMD(vec2 const & v, float const & s1, float const & s2);
+
138  fvec4SIMD(float const & s1, vec2 const & v, float const & s2);
+
139  fvec4SIMD(float const & s1, float const & s2, vec2 const & v);
+
140  fvec4SIMD(vec3 const & v, float const & s);
+
141  fvec4SIMD(float const & s, vec3 const & v);
+
142  fvec4SIMD(vec2 const & v1, vec2 const & v2);
+
143  //fvec4SIMD(ivec4SIMD const & v);
+
144 
+
146  // Unary arithmetic operators
+
147 
+
148  fvec4SIMD& operator= (fvec4SIMD const & v);
+
149  fvec4SIMD& operator+=(fvec4SIMD const & v);
+
150  fvec4SIMD& operator-=(fvec4SIMD const & v);
+
151  fvec4SIMD& operator*=(fvec4SIMD const & v);
+
152  fvec4SIMD& operator/=(fvec4SIMD const & v);
+
153 
+
154  fvec4SIMD& operator+=(float const & s);
+
155  fvec4SIMD& operator-=(float const & s);
+
156  fvec4SIMD& operator*=(float const & s);
+
157  fvec4SIMD& operator/=(float const & s);
+
158 
+
159  fvec4SIMD& operator++();
+
160  fvec4SIMD& operator--();
+
161 
+
163  // Swizzle operators
+
164 
+
165  template <comp X, comp Y, comp Z, comp W>
+
166  fvec4SIMD& swizzle();
+
167  template <comp X, comp Y, comp Z, comp W>
+
168  fvec4SIMD swizzle() const;
+
169  template <comp X, comp Y, comp Z>
+
170  fvec4SIMD swizzle() const;
+
171  template <comp X, comp Y>
+
172  fvec4SIMD swizzle() const;
+
173  template <comp X>
+
174  fvec4SIMD swizzle() const;
+
175  };
+
176 }//namespace detail
+
177 
+
178  typedef glm::detail::fvec4SIMD simdVec4;
+
179 
+
182 
+
185  vec4 vec4_cast(
+
186  detail::fvec4SIMD const & x);
+
187 
+
190  detail::fvec4SIMD abs(detail::fvec4SIMD const & x);
+
191 
+
194  detail::fvec4SIMD sign(detail::fvec4SIMD const & x);
+
195 
+
198  detail::fvec4SIMD floor(detail::fvec4SIMD const & x);
+
199 
+
203  detail::fvec4SIMD trunc(detail::fvec4SIMD const & x);
+
204 
+
212  detail::fvec4SIMD round(detail::fvec4SIMD const & x);
+
213 
+
219  //detail::fvec4SIMD roundEven(detail::fvec4SIMD const & x);
+
220 
+
224  detail::fvec4SIMD ceil(detail::fvec4SIMD const & x);
+
225 
+
229  detail::fvec4SIMD fract(detail::fvec4SIMD const & x);
+
230 
+
235  detail::fvec4SIMD mod(
+
236  detail::fvec4SIMD const & x,
+
237  detail::fvec4SIMD const & y);
+
238 
+
243  detail::fvec4SIMD mod(
+
244  detail::fvec4SIMD const & x,
+
245  float const & y);
+
246 
+
252  //detail::fvec4SIMD modf(
+
253  // detail::fvec4SIMD const & x,
+
254  // detail::fvec4SIMD & i);
+
255 
+
259  detail::fvec4SIMD min(
+
260  detail::fvec4SIMD const & x,
+
261  detail::fvec4SIMD const & y);
+
262 
+
263  detail::fvec4SIMD min(
+
264  detail::fvec4SIMD const & x,
+
265  float const & y);
+
266 
+
270  detail::fvec4SIMD max(
+
271  detail::fvec4SIMD const & x,
+
272  detail::fvec4SIMD const & y);
+
273 
+
274  detail::fvec4SIMD max(
+
275  detail::fvec4SIMD const & x,
+
276  float const & y);
+
277 
+
282  detail::fvec4SIMD clamp(
+
283  detail::fvec4SIMD const & x,
+
284  detail::fvec4SIMD const & minVal,
+
285  detail::fvec4SIMD const & maxVal);
+
286 
+
287  detail::fvec4SIMD clamp(
+
288  detail::fvec4SIMD const & x,
+
289  float const & minVal,
+
290  float const & maxVal);
+
291 
+
318  detail::fvec4SIMD mix(
+
319  detail::fvec4SIMD const & x,
+
320  detail::fvec4SIMD const & y,
+
321  detail::fvec4SIMD const & a);
+
322 
+
326  detail::fvec4SIMD step(
+
327  detail::fvec4SIMD const & edge,
+
328  detail::fvec4SIMD const & x);
+
329 
+
330  detail::fvec4SIMD step(
+
331  float const & edge,
+
332  detail::fvec4SIMD const & x);
+
333 
+
345  detail::fvec4SIMD smoothstep(
+
346  detail::fvec4SIMD const & edge0,
+
347  detail::fvec4SIMD const & edge1,
+
348  detail::fvec4SIMD const & x);
+
349 
+
350  detail::fvec4SIMD smoothstep(
+
351  float const & edge0,
+
352  float const & edge1,
+
353  detail::fvec4SIMD const & x);
+
354 
+
362  //bvec4 isnan(detail::fvec4SIMD const & x);
+
363 
+
371  //bvec4 isinf(detail::fvec4SIMD const & x);
+
372 
+
378  //detail::ivec4SIMD floatBitsToInt(detail::fvec4SIMD const & value);
+
379 
+
387  //detail::fvec4SIMD intBitsToFloat(detail::ivec4SIMD const & value);
+
388 
+
392  detail::fvec4SIMD fma(
+
393  detail::fvec4SIMD const & a,
+
394  detail::fvec4SIMD const & b,
+
395  detail::fvec4SIMD const & c);
+
396 
+
407  //detail::fvec4SIMD frexp(detail::fvec4SIMD const & x, detail::ivec4SIMD & exp);
+
408 
+
416  //detail::fvec4SIMD ldexp(detail::fvec4SIMD const & x, detail::ivec4SIMD const & exp);
+
417 
+
421  float length(
+
422  detail::fvec4SIMD const & x);
+
423 
+
428  float fastLength(
+
429  detail::fvec4SIMD const & x);
+
430 
+
435  float niceLength(
+
436  detail::fvec4SIMD const & x);
+
437 
+
441  detail::fvec4SIMD length4(
+
442  detail::fvec4SIMD const & x);
+
443 
+
448  detail::fvec4SIMD fastLength4(
+
449  detail::fvec4SIMD const & x);
+
450 
+
455  detail::fvec4SIMD niceLength4(
+
456  detail::fvec4SIMD const & x);
+
457 
+
461  float distance(
+
462  detail::fvec4SIMD const & p0,
+
463  detail::fvec4SIMD const & p1);
+
464 
+
468  detail::fvec4SIMD distance4(
+
469  detail::fvec4SIMD const & p0,
+
470  detail::fvec4SIMD const & p1);
+
471 
+
475  float simdDot(
+
476  detail::fvec4SIMD const & x,
+
477  detail::fvec4SIMD const & y);
+
478 
+
482  detail::fvec4SIMD dot4(
+
483  detail::fvec4SIMD const & x,
+
484  detail::fvec4SIMD const & y);
+
485 
+
489  detail::fvec4SIMD cross(
+
490  detail::fvec4SIMD const & x,
+
491  detail::fvec4SIMD const & y);
+
492 
+
496  detail::fvec4SIMD normalize(
+
497  detail::fvec4SIMD const & x);
+
498 
+
503  detail::fvec4SIMD fastNormalize(
+
504  detail::fvec4SIMD const & x);
+
505 
+
509  detail::fvec4SIMD simdFaceforward(
+
510  detail::fvec4SIMD const & N,
+
511  detail::fvec4SIMD const & I,
+
512  detail::fvec4SIMD const & Nref);
+
513 
+
518  detail::fvec4SIMD reflect(
+
519  detail::fvec4SIMD const & I,
+
520  detail::fvec4SIMD const & N);
+
521 
+
527  detail::fvec4SIMD refract(
+
528  detail::fvec4SIMD const & I,
+
529  detail::fvec4SIMD const & N,
+
530  float const & eta);
+
531 
+
535  detail::fvec4SIMD sqrt(
+
536  detail::fvec4SIMD const & x);
+
537 
+
542  detail::fvec4SIMD niceSqrt(
+
543  detail::fvec4SIMD const & x);
+
544 
+
549  detail::fvec4SIMD fastSqrt(
+
550  detail::fvec4SIMD const & x);
+
551 
+
555  detail::fvec4SIMD inversesqrt(
+
556  detail::fvec4SIMD const & x);
+
557 
+
562  detail::fvec4SIMD fastInversesqrt(
+
563  detail::fvec4SIMD const & x);
+
564 
+
566 }//namespace glm
+
567 
+
568 #include "simd_vec4.inl"
+
569 
+
570 #if (GLM_COMPILER & GLM_COMPILER_VC)
+
571 # pragma warning(pop)
+
572 #endif
+
573 
+
574 #endif//(GLM_ARCH != GLM_ARCH_PURE)
+
GLM_FUNC_DECL vecType< T, P > refract(vecType< T, P > const &I, vecType< T, P > const &N, T eta)
For the incident vector I and surface normal N, and the ratio of indices of refraction eta...
+
GLM_FUNC_DECL vecType< T, P > inversesqrt(vecType< T, P > const &v)
Returns the reciprocal of the positive square root of v.
+
highp_vec4 vec4
4 components vector of floating-point numbers.
Definition: type_vec.hpp:402
+
GLM_FUNC_DECL vecType< T, P > trunc(vecType< T, P > const &x)
Returns a value equal to the nearest integer to x whose absolute value is not larger than the absolut...
+
GLM_FUNC_DECL genType fastSqrt(genType x)
Faster than the common sqrt function but less accurate.
+
GLM_FUNC_DECL vecType< T, P > floor(vecType< T, P > const &x)
Returns a value equal to the nearest integer that is less then or equal to x.
+
GLM_FUNC_DECL genType min(genType x, genType y)
Returns y if y < x; otherwise, it returns x.
+
GLM_FUNC_DECL genType mod(genType x, genType y)
Modulus.
+
GLM_FUNC_DECL genType clamp(genType x, genType minVal, genType maxVal)
Returns min(max(x, minVal), maxVal) for each component in x using the floating-point values minVal an...
+
GLM_FUNC_DECL genType reflect(genType const &I, genType const &N)
For the incident vector I and surface orientation N, returns the reflection direction : result = I - ...
+
GLM_FUNC_DECL T distance(vecType< T, P > const &p0, vecType< T, P > const &p1)
Returns the distance betwwen p0 and p1, i.e., length(p0 - p1).
+
GLM_FUNC_DECL genType fma(genType const &a, genType const &b, genType const &c)
Computes and returns a * b + c.
+
GLM_FUNC_DECL genType step(genType edge, genType x)
Returns 0.0 if x < edge, otherwise it returns 1.0 for each component of a genType.
+
GLM_FUNC_DECL genType fract(genType x)
Return x - floor(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...
+
GLM_FUNC_DECL T length(vecType< T, P > const &x)
Returns the length of x, i.e., sqrt(x * x).
+
GLM_FUNC_DECL vecType< T, P > normalize(vecType< T, P > const &x)
Returns a vector in the same direction as x but with length of 1.
+
GLM_FUNC_DECL tvec3< T, P > cross(tvec3< T, P > const &x, tvec3< T, P > const &y)
Returns the cross product of x and y.
+
GLM_FUNC_DECL vecType< T, P > mix(vecType< T, P > const &x, vecType< T, P > const &y, vecType< U, P > const &a)
If genTypeU is a floating scalar or vector: Returns x * (1.0 - a) + y * a, i.e., the linear blend of ...
+
GLM_FUNC_DECL genType max(genType x, genType y)
Returns y if x < y; otherwise, it returns x.
+
GLM_FUNC_DECL genType fastNormalize(genType const &x)
Faster than the common normalize function but less accurate.
+
Definition: _noise.hpp:39
+
GLM_FUNC_DECL genType abs(genType x)
Returns x if x >= 0; otherwise, it returns -x.
+
highp_vec3 vec3
3 components vector of floating-point numbers.
Definition: type_vec.hpp:397
+
highp_vec2 vec2
2 components vector of floating-point numbers.
Definition: type_vec.hpp:392
+
GLM_FUNC_DECL vecType< T, P > sqrt(vecType< T, P > const &v)
Returns the positive square root of v.
+
GLM_FUNC_DECL vecType< T, P > sign(vecType< T, P > const &x)
Returns 1.0 if x > 0, 0.0 if x == 0, or -1.0 if x < 0.
+
GLM_FUNC_DECL genType fastLength(genType x)
Faster than the common length function but less accurate.
+
GLM_FUNC_DECL vecType< T, P > ceil(vecType< T, P > const &x)
Returns a value equal to the nearest integer that is greater than or equal to x.
+
GLM_FUNC_DECL vecType< T, P > round(vecType< T, P > const &x)
Returns a value equal to the nearest integer to x.
diff --git a/doc/api/a00108.html b/doc/api/a00108.html new file mode 100644 index 00000000..8a877344 --- /dev/null +++ b/doc/api/a00108.html @@ -0,0 +1,89 @@ + + + + + + +0.9.6: spline.hpp File Reference + + + + + + +
+
+ + + + + + + +
+
0.9.6 +
+
+
+ + + + + +
+
+
+Functions
+
+
spline.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + + + + +

+Functions

template<typename genType >
GLM_FUNC_DECL genType catmullRom (genType const &v1, genType const &v2, genType const &v3, genType const &v4, typename genType::value_type const &s)
 
template<typename genType >
GLM_FUNC_DECL genType cubic (genType const &v1, genType const &v2, genType const &v3, genType const &v4, typename genType::value_type const &s)
 
template<typename genType >
GLM_FUNC_DECL genType hermite (genType const &v1, genType const &t1, genType const &v2, genType const &t2, typename genType::value_type const &s)
 
+

Detailed Description

+

OpenGL Mathematics (glm.g-truc.net)

+

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+

GLM_GTX_spline

+
Date
2007-01-25 / 2011-06-07
+
Author
Christophe Riccio
+
See also
GLM Core (dependence)
+ +

Definition in file spline.hpp.

+
+ + + + diff --git a/doc/api/a00108_source.html b/doc/api/a00108_source.html index 40a7402d..af48ba4f 100644 --- a/doc/api/a00108_source.html +++ b/doc/api/a00108_source.html @@ -3,8 +3,8 @@ - -GLM: setup.hpp Source File + +0.9.6: spline.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,771 +41,65 @@
-
setup.hpp
+
spline.hpp
-
1 
-
29 #ifndef GLM_SETUP_INCLUDED
-
30 #define GLM_SETUP_INCLUDED
-
31 
-
32 #include <cassert>
-
33 
-
35 // Version
-
36 
-
37 #define GLM_VERSION 95
-
38 #define GLM_VERSION_MAJOR 0
-
39 #define GLM_VERSION_MINOR 9
-
40 #define GLM_VERSION_PATCH 5
-
41 #define GLM_VERSION_REVISION 1
-
42 
-
44 // Platform
-
45 
-
46 #define GLM_PLATFORM_UNKNOWN 0x00000000
-
47 #define GLM_PLATFORM_WINDOWS 0x00010000
-
48 #define GLM_PLATFORM_LINUX 0x00020000
-
49 #define GLM_PLATFORM_APPLE 0x00040000
-
50 //#define GLM_PLATFORM_IOS 0x00080000
-
51 #define GLM_PLATFORM_ANDROID 0x00100000
-
52 #define GLM_PLATFORM_CHROME_NACL 0x00200000
-
53 #define GLM_PLATFORM_UNIX 0x00400000
-
54 #define GLM_PLATFORM_QNXNTO 0x00800000
-
55 #define GLM_PLATFORM_WINCE 0x01000000
-
56 
-
57 #ifdef GLM_FORCE_PLATFORM_UNKNOWN
-
58 # define GLM_PLATFORM GLM_PLATFORM_UNKNOWN
-
59 #elif defined(__QNXNTO__)
-
60 # define GLM_PLATFORM GLM_PLATFORM_QNXNTO
-
61 #elif defined(__APPLE__)
-
62 # define GLM_PLATFORM GLM_PLATFORM_APPLE
-
63 #elif defined(WINCE)
-
64 # define GLM_PLATFORM GLM_PLATFORM_WINCE
-
65 #elif defined(_WIN32)
-
66 # define GLM_PLATFORM GLM_PLATFORM_WINDOWS
-
67 #elif defined(__native_client__)
-
68 # define GLM_PLATFORM GLM_PLATFORM_CHROME_NACL
-
69 #elif defined(__ANDROID__)
-
70 # define GLM_PLATFORM GLM_PLATFORM_ANDROID
-
71 #elif defined(__linux)
-
72 # define GLM_PLATFORM GLM_PLATFORM_LINUX
-
73 #elif defined(__unix)
-
74 # define GLM_PLATFORM GLM_PLATFORM_UNIX
-
75 #else
-
76 # define GLM_PLATFORM GLM_PLATFORM_UNKNOWN
-
77 #endif//
-
78 
-
79 // Report platform detection
-
80 #if(defined(GLM_MESSAGES) && !defined(GLM_MESSAGE_PLATFORM_DISPLAYED))
-
81 # define GLM_MESSAGE_PLATFORM_DISPLAYED
-
82 # if(GLM_PLATFORM & GLM_PLATFORM_QNXNTO)
-
83 # pragma message("GLM: QNX platform detected")
-
84 //# elif(GLM_PLATFORM & GLM_PLATFORM_IOS)
-
85 //# pragma message("GLM: iOS platform detected")
-
86 # elif(GLM_PLATFORM & GLM_PLATFORM_APPLE)
-
87 # pragma message("GLM: Apple platform detected")
-
88 # elif(GLM_PLATFORM & GLM_PLATFORM_WINCE)
-
89 # pragma message("GLM: WinCE platform detected")
-
90 # elif(GLM_PLATFORM & GLM_PLATFORM_WINDOWS)
-
91 # pragma message("GLM: Windows platform detected")
-
92 # elif(GLM_PLATFORM & GLM_PLATFORM_CHROME_NACL)
-
93 # pragma message("GLM: Native Client detected")
-
94 # elif(GLM_PLATFORM & GLM_PLATFORM_ANDROID)
-
95 # pragma message("GLM: Android platform detected")
-
96 # elif(GLM_PLATFORM & GLM_PLATFORM_LINUX)
-
97 # pragma message("GLM: Linux platform detected")
-
98 # elif(GLM_PLATFORM & GLM_PLATFORM_UNIX)
-
99 # pragma message("GLM: UNIX platform detected")
-
100 # elif(GLM_PLATFORM & GLM_PLATFORM_UNKNOWN)
-
101 # pragma message("GLM: platform unknown")
-
102 # else
-
103 # pragma message("GLM: platform not detected")
-
104 # endif
-
105 #endif//GLM_MESSAGE
-
106 
-
108 // Compiler
-
109 
-
110 // User defines: GLM_FORCE_COMPILER_UNKNOWN
-
111 // TODO ? __llvm__
-
112 
-
113 #define GLM_COMPILER_UNKNOWN 0x00000000
-
114 
-
115 // Intel
-
116 #define GLM_COMPILER_INTEL 0x00100000
-
117 #define GLM_COMPILER_INTEL9 0x00100010
-
118 #define GLM_COMPILER_INTEL10_0 0x00100020
-
119 #define GLM_COMPILER_INTEL10_1 0x00100030
-
120 #define GLM_COMPILER_INTEL11_0 0x00100040
-
121 #define GLM_COMPILER_INTEL11_1 0x00100050
-
122 #define GLM_COMPILER_INTEL12_0 0x00100060
-
123 #define GLM_COMPILER_INTEL12_1 0x00100070
-
124 #define GLM_COMPILER_INTEL13_0 0x00100080
-
125 
-
126 // Visual C++ defines
-
127 #define GLM_COMPILER_VC 0x01000000
-
128 #define GLM_COMPILER_VC8 0x01000070
-
129 #define GLM_COMPILER_VC9 0x01000080
-
130 #define GLM_COMPILER_VC10 0x01000090
-
131 #define GLM_COMPILER_VC11 0x010000A0
-
132 #define GLM_COMPILER_VC12 0x010000B0
-
133 
-
134 // GCC defines
-
135 #define GLM_COMPILER_GCC 0x02000000
-
136 #define GLM_COMPILER_GCC34 0x02000050
-
137 #define GLM_COMPILER_GCC35 0x02000060
-
138 #define GLM_COMPILER_GCC40 0x02000070
-
139 #define GLM_COMPILER_GCC41 0x02000080
-
140 #define GLM_COMPILER_GCC42 0x02000090
-
141 #define GLM_COMPILER_GCC43 0x020000A0
-
142 #define GLM_COMPILER_GCC44 0x020000B0
-
143 #define GLM_COMPILER_GCC45 0x020000C0
-
144 #define GLM_COMPILER_GCC46 0x020000D0
-
145 #define GLM_COMPILER_GCC47 0x020000E0
-
146 #define GLM_COMPILER_GCC48 0x020000F0
-
147 #define GLM_COMPILER_GCC49 0x02000100
-
148 
-
149 // Borland C++
-
150 #define GLM_COMPILER_BC 0x04000000
-
151 
-
152 // CodeWarrior
-
153 #define GLM_COMPILER_CODEWARRIOR 0x08000000
-
154 
-
155 // CUDA
-
156 #define GLM_COMPILER_CUDA 0x10000000
-
157 #define GLM_COMPILER_CUDA30 0x10000010
-
158 #define GLM_COMPILER_CUDA31 0x10000020
-
159 #define GLM_COMPILER_CUDA32 0x10000030
-
160 #define GLM_COMPILER_CUDA40 0x10000040
-
161 #define GLM_COMPILER_CUDA41 0x10000050
-
162 #define GLM_COMPILER_CUDA42 0x10000060
-
163 
-
164 // Clang
-
165 #define GLM_COMPILER_CLANG 0x20000000
-
166 #define GLM_COMPILER_CLANG26 0x20000010
-
167 #define GLM_COMPILER_CLANG27 0x20000020
-
168 #define GLM_COMPILER_CLANG28 0x20000030
-
169 #define GLM_COMPILER_CLANG29 0x20000040
-
170 #define GLM_COMPILER_CLANG30 0x20000050
-
171 #define GLM_COMPILER_CLANG31 0x20000060
-
172 #define GLM_COMPILER_CLANG32 0x20000070
-
173 #define GLM_COMPILER_CLANG33 0x20000080
-
174 #define GLM_COMPILER_CLANG40 0x20000090
-
175 #define GLM_COMPILER_CLANG41 0x200000A0
-
176 #define GLM_COMPILER_CLANG42 0x200000B0
-
177 #define GLM_COMPILER_CLANG43 0x200000C0
-
178 #define GLM_COMPILER_CLANG50 0x200000D0
-
179 
-
180 // LLVM GCC
-
181 #define GLM_COMPILER_LLVM_GCC 0x40000000
-
182 
-
183 // Build model
-
184 #define GLM_MODEL_32 0x00000010
-
185 #define GLM_MODEL_64 0x00000020
-
186 
-
187 // Force generic C++ compiler
-
188 #ifdef GLM_FORCE_COMPILER_UNKNOWN
-
189 # define GLM_COMPILER GLM_COMPILER_UNKNOWN
-
190 
-
191 #elif defined(__INTEL_COMPILER)
-
192 # if __INTEL_COMPILER == 900
-
193 # define GLM_COMPILER GLM_COMPILER_INTEL9
-
194 # elif __INTEL_COMPILER == 1000
-
195 # define GLM_COMPILER GLM_COMPILER_INTEL10_0
-
196 # elif __INTEL_COMPILER == 1010
-
197 # define GLM_COMPILER GLM_COMPILER_INTEL10_1
-
198 # elif __INTEL_COMPILER == 1100
-
199 # define GLM_COMPILER GLM_COMPILER_INTEL11_0
-
200 # elif __INTEL_COMPILER == 1110
-
201 # define GLM_COMPILER GLM_COMPILER_INTEL11_1
-
202 # elif __INTEL_COMPILER == 1200
-
203 # define GLM_COMPILER GLM_COMPILER_INTEL12_0
-
204 # elif __INTEL_COMPILER == 1210
-
205 # define GLM_COMPILER GLM_COMPILER_INTEL12_1
-
206 # elif __INTEL_COMPILER >= 1300
-
207 # define GLM_COMPILER GLM_COMPILER_INTEL13_0
-
208 # else
-
209 # define GLM_COMPILER GLM_COMPILER_INTEL
-
210 # endif
-
211 
-
212 // CUDA
-
213 #elif defined(__CUDACC__)
-
214 # if CUDA_VERSION < 3000
-
215 # error "GLM requires CUDA 3.0 or higher"
-
216 # else
-
217 # define GLM_COMPILER GLM_COMPILER_CUDA
-
218 # endif
-
219 
-
220 // Visual C++
-
221 #elif defined(_MSC_VER)
-
222 # if _MSC_VER < 1400
-
223 # error "GLM requires Visual C++ 2005 or higher"
-
224 # elif _MSC_VER == 1400
-
225 # define GLM_COMPILER GLM_COMPILER_VC8
-
226 # elif _MSC_VER == 1500
-
227 # define GLM_COMPILER GLM_COMPILER_VC9
-
228 # elif _MSC_VER == 1600
-
229 # define GLM_COMPILER GLM_COMPILER_VC10
-
230 # elif _MSC_VER == 1700
-
231 # define GLM_COMPILER GLM_COMPILER_VC11
-
232 # elif _MSC_VER >= 1800
-
233 # define GLM_COMPILER GLM_COMPILER_VC12
-
234 # else//_MSC_VER
-
235 # define GLM_COMPILER GLM_COMPILER_VC
-
236 # endif//_MSC_VER
-
237 
-
238 // Clang
-
239 #elif defined(__clang__)
-
240 # if (__clang_major__ <= 1) || ((__clang_major__ == 2) && (__clang_minor__ < 6))
-
241 # error "GLM requires Clang 2.6 or higher"
-
242 # elif(__clang_major__ == 2) && (__clang_minor__ == 6)
-
243 # define GLM_COMPILER GLM_COMPILER_CLANG26
-
244 # elif(__clang_major__ == 2) && (__clang_minor__ == 7)
-
245 # define GLM_COMPILER GLM_COMPILER_CLANG27
-
246 # elif(__clang_major__ == 2) && (__clang_minor__ == 8)
-
247 # define GLM_COMPILER GLM_COMPILER_CLANG28
-
248 # elif(__clang_major__ == 2) && (__clang_minor__ == 9)
-
249 # define GLM_COMPILER GLM_COMPILER_CLANG29
-
250 # elif(__clang_major__ == 3) && (__clang_minor__ == 0)
-
251 # define GLM_COMPILER GLM_COMPILER_CLANG30
-
252 # elif(__clang_major__ == 3) && (__clang_minor__ == 1)
-
253 # define GLM_COMPILER GLM_COMPILER_CLANG31
-
254 # elif(__clang_major__ == 3) && (__clang_minor__ == 2)
-
255 # define GLM_COMPILER GLM_COMPILER_CLANG32
-
256 # elif(__clang_major__ == 3) && (__clang_minor__ == 3)
-
257 # define GLM_COMPILER GLM_COMPILER_CLANG33
-
258 # elif(__clang_major__ == 4) && (__clang_minor__ == 0)
-
259 # define GLM_COMPILER GLM_COMPILER_CLANG40
-
260 # elif(__clang_major__ == 4) && (__clang_minor__ == 1)
-
261 # define GLM_COMPILER GLM_COMPILER_CLANG41
-
262 # elif(__clang_major__ == 4) && (__clang_minor__ == 2)
-
263 # define GLM_COMPILER GLM_COMPILER_CLANG42
-
264 # elif(__clang_major__ == 4) && (__clang_minor__ >= 3)
-
265 # define GLM_COMPILER GLM_COMPILER_CLANG43
-
266 # elif(__clang_major__ > 4)
-
267 # define GLM_COMPILER GLM_COMPILER_CLANG50
-
268 # else
-
269 # define GLM_COMPILER GLM_COMPILER_CLANG
-
270 # endif
-
271 
-
272 // G++
-
273 #elif(defined(__GNUC__) || defined(__MINGW32__))// || defined(__llvm__) || defined(__clang__)
-
274 # if (__GNUC__ == 3) && (__GNUC_MINOR__ == 4)
-
275 # define GLM_COMPILER GLM_COMPILER_GCC34
-
276 # elif (__GNUC__ == 3) && (__GNUC_MINOR__ == 5)
-
277 # define GLM_COMPILER GLM_COMPILER_GCC35
-
278 # elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 0)
-
279 # define GLM_COMPILER (GLM_COMPILER_GCC40)
-
280 # elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 1)
-
281 # define GLM_COMPILER (GLM_COMPILER_GCC41)
-
282 # elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 2)
-
283 # define GLM_COMPILER (GLM_COMPILER_GCC42)
-
284 # elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 3)
-
285 # define GLM_COMPILER (GLM_COMPILER_GCC43)
-
286 # elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 4)
-
287 # define GLM_COMPILER (GLM_COMPILER_GCC44)
-
288 # elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 5)
-
289 # define GLM_COMPILER (GLM_COMPILER_GCC45)
-
290 # elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 6)
-
291 # define GLM_COMPILER (GLM_COMPILER_GCC46)
-
292 # elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 7)
-
293 # define GLM_COMPILER (GLM_COMPILER_GCC47)
-
294 # elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 8)
-
295 # define GLM_COMPILER (GLM_COMPILER_GCC48)
-
296 # elif (__GNUC__ == 4) && (__GNUC_MINOR__ >= 9)
-
297 # define GLM_COMPILER (GLM_COMPILER_GCC49)
-
298 # elif (__GNUC__ > 4 )
-
299 # define GLM_COMPILER (GLM_COMPILER_GCC49)
-
300 # else
-
301 # define GLM_COMPILER (GLM_COMPILER_GCC)
-
302 # endif
-
303 
-
304 // Borland C++
-
305 #elif defined(_BORLANDC_)
-
306 # define GLM_COMPILER GLM_COMPILER_BC
-
307 
-
308 // Codewarrior
-
309 #elif defined(__MWERKS__)
-
310 # define GLM_COMPILER GLM_COMPILER_CODEWARRIOR
-
311 
-
312 #else
-
313 # define GLM_COMPILER GLM_COMPILER_UNKNOWN
-
314 #endif
-
315 
-
316 #ifndef GLM_COMPILER
-
317 #error "GLM_COMPILER undefined, your compiler may not be supported by GLM. Add #define GLM_COMPILER 0 to ignore this message."
-
318 #endif//GLM_COMPILER
-
319 
-
320 // Report compiler detection
-
321 #if(defined(GLM_MESSAGES) && !defined(GLM_MESSAGE_COMPILER_DISPLAYED))
-
322 # define GLM_MESSAGE_COMPILER_DISPLAYED
-
323 # if(GLM_COMPILER & GLM_COMPILER_CUDA)
-
324 # pragma message("GLM: CUDA compiler detected")
-
325 # elif(GLM_COMPILER & GLM_COMPILER_VC)
-
326 # pragma message("GLM: Visual C++ compiler detected")
-
327 # elif(GLM_COMPILER & GLM_COMPILER_CLANG)
-
328 # pragma message("GLM: Clang compiler detected")
-
329 # elif(GLM_COMPILER & GLM_COMPILER_LLVM_GCC)
-
330 # pragma message("GLM: LLVM GCC compiler detected")
-
331 # elif(GLM_COMPILER & GLM_COMPILER_INTEL)
-
332 # pragma message("GLM: Intel Compiler detected")
-
333 # elif(GLM_COMPILER & GLM_COMPILER_GCC)
-
334 # if(GLM_COMPILER == GLM_COMPILER_GCC_LLVM)
-
335 # pragma message("GLM: LLVM GCC compiler detected")
-
336 # elif(GLM_COMPILER == GLM_COMPILER_GCC_CLANG)
-
337 # pragma message("GLM: CLANG compiler detected")
-
338 # else
-
339 # pragma message("GLM: GCC compiler detected")
-
340 # endif
-
341 # elif(GLM_COMPILER & GLM_COMPILER_BC)
-
342 # pragma message("GLM: Borland compiler detected but not supported")
-
343 # elif(GLM_COMPILER & GLM_COMPILER_CODEWARRIOR)
-
344 # pragma message("GLM: Codewarrior compiler detected but not supported")
-
345 # else
-
346 # pragma message("GLM: Compiler not detected")
-
347 # endif
-
348 #endif//GLM_MESSAGE
-
349 
-
351 // Build model //
-
352 
-
353 #if(defined(__arch64__) || defined(__LP64__) || defined(_M_X64) || defined(__ppc64__) || defined(__x86_64__))
-
354 # define GLM_MODEL GLM_MODEL_64
-
355 #elif(defined(__i386__) || defined(__ppc__))
-
356 # define GLM_MODEL GLM_MODEL_32
-
357 #else
-
358 # define GLM_MODEL GLM_MODEL_32
-
359 #endif//
-
360 
-
361 #if(!defined(GLM_MODEL) && GLM_COMPILER != 0)
-
362 # error "GLM_MODEL undefined, your compiler may not be supported by GLM. Add #define GLM_MODEL 0 to ignore this message."
-
363 #endif//GLM_MODEL
-
364 
-
365 #if(defined(GLM_MESSAGES) && !defined(GLM_MESSAGE_MODEL_DISPLAYED))
-
366 # define GLM_MESSAGE_MODEL_DISPLAYED
-
367 # if(GLM_MODEL == GLM_MODEL_64)
-
368 # pragma message("GLM: 64 bits model")
-
369 # elif(GLM_MODEL == GLM_MODEL_32)
-
370 # pragma message("GLM: 32 bits model")
-
371 # endif//GLM_MODEL
-
372 #endif//GLM_MESSAGE
-
373 
-
375 // C++ Version //
-
376 
-
377 // User defines: GLM_FORCE_CXX98
-
378 
-
379 #define GLM_LANG_CXX_FLAG (1 << 0)
-
380 #define GLM_LANG_CXX98_FLAG (1 << 1)
-
381 #define GLM_LANG_CXX03_FLAG (1 << 2)
-
382 #define GLM_LANG_CXX0X_FLAG (1 << 3)
-
383 #define GLM_LANG_CXX11_FLAG (1 << 4)
-
384 #define GLM_LANG_CXX1Y_FLAG (1 << 5)
-
385 #define GLM_LANG_CXXMS_FLAG (1 << 6)
-
386 #define GLM_LANG_CXXGNU_FLAG (1 << 7)
-
387 
-
388 #define GLM_LANG_CXX GLM_LANG_CXX_FLAG
-
389 #define GLM_LANG_CXX98 (GLM_LANG_CXX | GLM_LANG_CXX98_FLAG)
-
390 #define GLM_LANG_CXX03 (GLM_LANG_CXX98 | GLM_LANG_CXX03_FLAG)
-
391 #define GLM_LANG_CXX0X (GLM_LANG_CXX03 | GLM_LANG_CXX0X_FLAG)
-
392 #define GLM_LANG_CXX11 (GLM_LANG_CXX0X | GLM_LANG_CXX11_FLAG)
-
393 #define GLM_LANG_CXX1Y (GLM_LANG_CXX11 | GLM_LANG_CXX1Y_FLAG)
-
394 #define GLM_LANG_CXXMS GLM_LANG_CXXMS_FLAG
-
395 #define GLM_LANG_CXXGNU GLM_LANG_CXXGNU_FLAG
-
396 
-
397 #if(defined(GLM_FORCE_CXX1Y))
-
398 # define GLM_LANG GLM_LANG_CXX1Y
-
399 #elif(defined(GLM_FORCE_CXX11))
-
400 # define GLM_LANG GLM_LANG_CXX11
-
401 #elif(defined(GLM_FORCE_CXX03))
-
402 # define GLM_LANG GLM_LANG_CXX03
-
403 #elif(defined(GLM_FORCE_CXX98))
-
404 # define GLM_LANG GLM_LANG_CXX98
-
405 #else
-
406 # if(__cplusplus >= 201103L)
-
407 # define GLM_LANG GLM_LANG_CXX11
-
408 # elif((GLM_COMPILER & GLM_COMPILER_CLANG) == GLM_COMPILER_CLANG)
-
409 # if(GLM_PLATFORM == GLM_PLATFORM_APPLE)
-
410 # define GLM_DETAIL_MAJOR 1
-
411 # else
-
412 # define GLM_DETAIL_MAJOR 0
-
413 # endif
-
414 # if(__clang_major__ < (2 + GLM_DETAIL_MAJOR))
-
415 # define GLM_LANG GLM_LANG_CXX
-
416 # elif(__has_feature(cxx_auto_type))
-
417 # define GLM_LANG GLM_LANG_CXX0X
-
418 # else
-
419 # define GLM_LANG GLM_LANG_CXX98
-
420 # endif
-
421 # elif((GLM_COMPILER & GLM_COMPILER_GCC) == GLM_COMPILER_GCC)
-
422 # if defined(__GXX_EXPERIMENTAL_CXX0X__)
-
423 # define GLM_LANG GLM_LANG_CXX0X
-
424 # else
-
425 # define GLM_LANG GLM_LANG_CXX98
-
426 # endif
-
427 # elif(GLM_COMPILER & GLM_COMPILER_VC)
-
428 # if(defined(_MSC_EXTENSIONS))
-
429 # if(GLM_COMPILER >= GLM_COMPILER_VC10)
-
430 # define GLM_LANG (GLM_LANG_CXX0X | GLM_LANG_CXXMS_FLAG)
-
431 # else
-
432 # define GLM_LANG (GLM_LANG_CXX98 | GLM_LANG_CXXMS_FLAG)
-
433 # endif
-
434 # else
-
435 # if(GLM_COMPILER >= GLM_COMPILER_VC10)
-
436 # define GLM_LANG GLM_LANG_CXX0X
-
437 # else
-
438 # define GLM_LANG GLM_LANG_CXX98
-
439 # endif
-
440 # endif
-
441 # elif(GLM_COMPILER & GLM_COMPILER_INTEL)
-
442 # if(defined(_MSC_EXTENSIONS))
-
443 # if(GLM_COMPILER >= GLM_COMPILER_INTEL13_0)
-
444 # define GLM_LANG (GLM_LANG_CXX0X | GLM_LANG_CXXMS_FLAG)
-
445 # else
-
446 # define GLM_LANG (GLM_LANG_CXX98 | GLM_LANG_CXXMS_FLAG)
-
447 # endif
-
448 # else
-
449 # if(GLM_COMPILER >= GLM_COMPILER_INTEL13_0)
-
450 # define GLM_LANG (GLM_LANG_CXX0X)
-
451 # else
-
452 # define GLM_LANG (GLM_LANG_CXX98)
-
453 # endif
-
454 # endif
-
455 # elif(__cplusplus >= 199711L)
-
456 # define GLM_LANG GLM_LANG_CXX98
-
457 # else
-
458 # define GLM_LANG GLM_LANG_CXX
-
459 # endif
-
460 #endif
-
461 
-
462 #if(defined(GLM_MESSAGES) && !defined(GLM_MESSAGE_LANG_DISPLAYED))
-
463 # define GLM_MESSAGE_LANG_DISPLAYED
-
464 # if(GLM_LANG & GLM_LANG_CXXGNU_FLAG)
-
465 # pragma message("GLM: C++ with language extensions")
-
466 # elif(GLM_LANG & GLM_LANG_CXXMS_FLAG)
-
467 # pragma message("GLM: C++ with language extensions")
-
468 # elif(GLM_LANG & GLM_LANG_CXX11_FLAG)
-
469 # pragma message("GLM: C++11")
-
470 # elif(GLM_LANG & GLM_LANG_CXX0X_FLAG)
-
471 # pragma message("GLM: C++0x")
-
472 # elif(GLM_LANG & GLM_LANG_CXX03_FLAG)
-
473 # pragma message("GLM: C++03")
-
474 # elif(GLM_LANG & GLM_LANG_CXX98_FLAG)
-
475 # pragma message("GLM: C++98")
-
476 # else
-
477 # pragma message("GLM: C++ language undetected")
-
478 # endif//GLM_MODEL
-
479 # pragma message("GLM: #define GLM_FORCE_CXX98, GLM_FORCE_CXX03, GLM_LANG_CXX11 or GLM_FORCE_CXX1Y to force using a specific version of the C++ language")
-
480 #endif//GLM_MESSAGE
-
481 
-
483 // Has of C++ features
-
484 
-
485 #ifndef __has_feature
-
486 # define __has_feature(x) 0 // Compatibility with non-clang compilers.
-
487 #endif
-
488 #ifndef __has_extension
-
489 # define __has_extension __has_feature // Compatibility with pre-3.0 compilers.
-
490 #endif
-
491 
-
492 // http://clang.llvm.org/cxx_status.html
-
493 // http://gcc.gnu.org/projects/cxx0x.html
-
494 // http://msdn.microsoft.com/en-us/library/vstudio/hh567368(v=vs.120).aspx
-
495 
-
496 // N1720
-
497 #define GLM_HAS_STATIC_ASSERT ( \
-
498  (GLM_LANG & GLM_LANG_CXX11_FLAG) || \
-
499  ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC10)) || \
-
500  ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC43)) || \
-
501  __has_feature(cxx_static_assert))
-
502 
-
503 // N1988
-
504 #define GLM_HAS_EXTENDED_INTEGER_TYPE ( \
-
505  (GLM_LANG & GLM_LANG_CXX11_FLAG) || \
-
506  ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC11)) || \
-
507  ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC43)) || \
-
508  ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_CLANG) && (GLM_COMPILER >= GLM_COMPILER_CLANG29)))
-
509 
-
510 // N2235
-
511 #define GLM_HAS_CONSTEXPR ( \
-
512  (GLM_LANG & GLM_LANG_CXX11_FLAG) || \
-
513  ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC46)) || \
-
514  __has_feature(cxx_constexpr))
-
515 
-
516 // N2672
-
517 #define GLM_HAS_INITIALIZER_LISTS ( \
-
518  (GLM_LANG & GLM_LANG_CXX11_FLAG) || \
-
519  ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC12))) || \
-
520  ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC44)) || \
-
521  __has_feature(cxx_generalized_initializers))
-
522 
-
523 // OpenMP
-
524 #ifdef _OPENMP
-
525 # if(GLM_COMPILER & GLM_COMPILER_GCC)
-
526 # if(GLM_COMPILER > GLM_COMPILER_GCC47)
-
527 # define GLM_HAS_OPENMP 31
-
528 # elif(GLM_COMPILER > GLM_COMPILER_GCC44)
-
529 # define GLM_HAS_OPENMP 30
-
530 # elif(GLM_COMPILER > GLM_COMPILER_GCC42)
-
531 # define GLM_HAS_OPENMP 25
-
532 # endif
-
533 # endif//(GLM_COMPILER & GLM_COMPILER_GCC)
-
534 
-
535 # if(GLM_COMPILER & GLM_COMPILER_VC)
-
536 # if(GLM_COMPILER > GLM_COMPILER_VC8)
-
537 # define GLM_HAS_OPENMP 20
-
538 # endif
-
539 # endif//(GLM_COMPILER & GLM_COMPILER_GCC)
-
540 #endif
-
541 
-
542 // Not standard
-
543 #define GLM_HAS_ANONYMOUS_UNION (GLM_LANG & GLM_LANG_CXXMS_FLAG)
-
544 
-
546 // Platform
-
547 
-
548 // User defines: GLM_FORCE_PURE GLM_FORCE_SSE2 GLM_FORCE_AVX
-
549 
-
550 #define GLM_ARCH_PURE 0x0000
-
551 #define GLM_ARCH_SSE2 0x0001
-
552 #define GLM_ARCH_SSE3 0x0002// | GLM_ARCH_SSE2
-
553 #define GLM_ARCH_SSE4 0x0004// | GLM_ARCH_SSE3 | GLM_ARCH_SSE2
-
554 #define GLM_ARCH_AVX 0x0008// | GLM_ARCH_SSE4 | GLM_ARCH_SSE3 | GLM_ARCH_SSE2
-
555 #define GLM_ARCH_AVX2 0x0010// | GLM_ARCH_AVX | GLM_ARCH_SSE4 | GLM_ARCH_SSE3 | GLM_ARCH_SSE2
-
556 
-
557 #if(defined(GLM_FORCE_PURE))
-
558 # define GLM_ARCH GLM_ARCH_PURE
-
559 #elif(defined(GLM_FORCE_AVX2))
-
560 # define GLM_ARCH (GLM_ARCH_AVX2 | GLM_ARCH_AVX | GLM_ARCH_SSE3 | GLM_ARCH_SSE2)
-
561 #elif(defined(GLM_FORCE_AVX))
-
562 # define GLM_ARCH (GLM_ARCH_AVX | GLM_ARCH_SSE3 | GLM_ARCH_SSE2)
-
563 #elif(defined(GLM_FORCE_SSE4))
-
564 # define GLM_ARCH (GLM_ARCH_SSE4 | GLM_ARCH_SSE3 | GLM_ARCH_SSE2)
-
565 #elif(defined(GLM_FORCE_SSE3))
-
566 # define GLM_ARCH (GLM_ARCH_SSE3 | GLM_ARCH_SSE2)
-
567 #elif(defined(GLM_FORCE_SSE2))
-
568 # define GLM_ARCH (GLM_ARCH_SSE2)
-
569 #elif((GLM_COMPILER & GLM_COMPILER_VC) && (defined(_M_IX86) || defined(_M_X64)))
-
570 # if(GLM_PLATFORM == GLM_PLATFORM_WINCE)
-
571 # define GLM_ARCH GLM_ARCH_PURE
-
572 # elif(defined(_M_CEE_PURE))
-
573 # define GLM_ARCH GLM_ARCH_PURE
-
574 /* TODO: Explore auto detection of instruction set support
-
575 # elif(defined(_M_IX86_FP))
-
576 # if(_M_IX86_FP >= 3)
-
577 # define GLM_ARCH (GLM_ARCH_AVX | GLM_ARCH_SSE3 | GLM_ARCH_SSE2)
-
578 # elif(_M_IX86_FP >= 2)
-
579 # define GLM_ARCH (GLM_ARCH_SSE2)
-
580 # else
-
581 # define GLM_ARCH GLM_ARCH_PURE
-
582 # endif
-
583 */
-
584 # elif(GLM_COMPILER >= GLM_COMPILER_VC11)
-
585 # define GLM_ARCH (GLM_ARCH_AVX | GLM_ARCH_SSE3 | GLM_ARCH_SSE2)
-
586 # elif(GLM_COMPILER >= GLM_COMPILER_VC10)
-
587 # if(_MSC_FULL_VER >= 160031118) //160031118: VC2010 SP1 beta full version
-
588 # define GLM_ARCH (GLM_ARCH_AVX | GLM_ARCH_SSE3 | GLM_ARCH_SSE2)//GLM_ARCH_AVX (Require SP1)
-
589 # else
-
590 # define GLM_ARCH (GLM_ARCH_SSE3 | GLM_ARCH_SSE2)
-
591 # endif
-
592 # elif(GLM_COMPILER >= GLM_COMPILER_VC9)
-
593 # define GLM_ARCH (GLM_ARCH_SSE3 | GLM_ARCH_SSE2)
-
594 # elif(GLM_COMPILER >= GLM_COMPILER_VC8)
-
595 # define GLM_ARCH GLM_ARCH_SSE2
-
596 # else
-
597 # define GLM_ARCH GLM_ARCH_PURE
-
598 # endif
-
599 #elif((GLM_PLATFORM & GLM_PLATFORM_APPLE) && (GLM_COMPILER & GLM_COMPILER_GCC))
-
600 # define GLM_ARCH GLM_ARCH_PURE
-
601 #elif(((GLM_COMPILER & GLM_COMPILER_GCC) && (defined(__i386__) || defined(__x86_64__))) || (GLM_COMPILER & GLM_COMPILER_LLVM_GCC))
-
602 # define GLM_ARCH (GLM_ARCH_PURE \
-
603 | (defined(__AVX2__) ? GLM_ARCH_AVX2 : 0) \
-
604 | (defined(__AVX__) ? GLM_ARCH_AVX : 0) \
-
605 | (defined(__SSE4__) ? GLM_ARCH_SSE4 : 0) \
-
606 | (defined(__SSE3__) ? GLM_ARCH_SSE3 : 0) \
-
607 | (defined(__SSE2__) ? GLM_ARCH_SSE2 : 0))
-
608 #else
-
609 # define GLM_ARCH GLM_ARCH_PURE
-
610 #endif
-
611 
-
612 // With MinGW-W64, including intrinsic headers before intrin.h will produce some errors. The problem is
-
613 // that windows.h (and maybe other headers) will silently include intrin.h, which of course causes problems.
-
614 // To fix, we just explicitly include intrin.h here.
-
615 #if defined(__MINGW32__) && (GLM_ARCH != GLM_ARCH_PURE)
-
616 # include <intrin.h>
-
617 #endif
-
618 
-
619 //#if(GLM_ARCH != GLM_ARCH_PURE)
-
620 #if(GLM_ARCH & GLM_ARCH_AVX2)
-
621 # include <immintrin.h>
-
622 #endif//GLM_ARCH
-
623 #if(GLM_ARCH & GLM_ARCH_AVX)
-
624 # include <immintrin.h>
-
625 #endif//GLM_ARCH
-
626 #if(GLM_ARCH & GLM_ARCH_SSE4)
-
627 # include <smmintrin.h>
-
628 #endif//GLM_ARCH
-
629 #if(GLM_ARCH & GLM_ARCH_SSE3)
-
630 # include <pmmintrin.h>
-
631 #endif//GLM_ARCH
-
632 #if(GLM_ARCH & GLM_ARCH_SSE2)
-
633 # include <emmintrin.h>
-
634 # if(GLM_COMPILER == GLM_COMPILER_VC8) // VC8 is missing some intrinsics, workaround
-
635  inline float _mm_cvtss_f32(__m128 A) { return A.m128_f32[0]; }
-
636  inline __m128 _mm_castpd_ps(__m128d PD) { union { __m128 ps; __m128d pd; } c; c.pd = PD; return c.ps; }
-
637  inline __m128d _mm_castps_pd(__m128 PS) { union { __m128 ps; __m128d pd; } c; c.ps = PS; return c.pd; }
-
638  inline __m128i _mm_castps_si128(__m128 PS) { union { __m128 ps; __m128i pi; } c; c.ps = PS; return c.pi; }
-
639  inline __m128 _mm_castsi128_ps(__m128i PI) { union { __m128 ps; __m128i pi; } c; c.pi = PI; return c.ps; }
-
640 # endif
-
641 #endif//GLM_ARCH
-
642 //#endif//(GLM_ARCH != GLM_ARCH_PURE)
-
643 
-
644 #if(defined(GLM_MESSAGES) && !defined(GLM_MESSAGE_ARCH_DISPLAYED))
-
645 # define GLM_MESSAGE_ARCH_DISPLAYED
-
646 # if(GLM_ARCH == GLM_ARCH_PURE)
-
647 # pragma message("GLM: Platform independent")
-
648 # elif(GLM_ARCH & GLM_ARCH_SSE2)
-
649 # pragma message("GLM: SSE2 instruction set")
-
650 # elif(GLM_ARCH & GLM_ARCH_SSE3)
-
651 # pragma message("GLM: SSE3 instruction set")
-
652 # elif(GLM_ARCH & GLM_ARCH_SSE4)
-
653 # pragma message("GLM: SSE4 instruction set")
-
654 # elif(GLM_ARCH & GLM_ARCH_AVX)
-
655 # pragma message("GLM: AVX instruction set")
-
656 # elif(GLM_ARCH & GLM_ARCH_AVX2)
-
657 # pragma message("GLM: AVX2 instruction set")
-
658 # endif//GLM_ARCH
-
659 # pragma message("GLM: #define GLM_FORCE_PURE to avoid using platform specific instruction sets")
-
660 #endif//GLM_MESSAGE
-
661 
-
663 // Radians
-
664 
-
665 //#define GLM_FORCE_RADIANS
-
666 
-
668 // Static assert
-
669 
-
670 #if GLM_HAS_STATIC_ASSERT
-
671 # define GLM_STATIC_ASSERT(x, message) static_assert(x, message)
-
672 #elif(defined(BOOST_STATIC_ASSERT))
-
673 # define GLM_STATIC_ASSERT(x, message) BOOST_STATIC_ASSERT(x)
-
674 #elif(GLM_COMPILER & GLM_COMPILER_VC)
-
675 # define GLM_STATIC_ASSERT(x, message) typedef char __CASSERT__##__LINE__[(x) ? 1 : -1]
-
676 #else
-
677 # define GLM_STATIC_ASSERT(x, message)
-
678 # define GLM_STATIC_ASSERT_NULL
-
679 #endif//GLM_LANG
-
680 
-
682 // Qualifiers
-
683 
-
684 // User defines: GLM_FORCE_INLINE GLM_FORCE_CUDA
-
685 
-
686 #if(defined(GLM_FORCE_CUDA) || (GLM_COMPILER & GLM_COMPILER_CUDA))
-
687 # define GLM_CUDA_FUNC_DEF __device__ __host__
-
688 # define GLM_CUDA_FUNC_DECL __device__ __host__
-
689 #else
-
690 # define GLM_CUDA_FUNC_DEF
-
691 # define GLM_CUDA_FUNC_DECL
-
692 #endif
-
693 
-
694 #if GLM_COMPILER & GLM_COMPILER_GCC
-
695 # define GLM_VAR_USED __attribute__ ((unused))
-
696 #else
-
697 # define GLM_VAR_USED
-
698 #endif
-
699 
-
700 #if(defined(GLM_FORCE_INLINE))
-
701 # if((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC8))
-
702 # define GLM_INLINE __forceinline
-
703 # elif((GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC34))
-
704 # define GLM_INLINE __attribute__((always_inline)) inline
-
705 # elif(GLM_COMPILER & GLM_COMPILER_CLANG)
-
706 # define GLM_INLINE __attribute__((always_inline))
-
707 # else
-
708 # define GLM_INLINE inline
-
709 # endif//GLM_COMPILER
-
710 #else
-
711 # define GLM_INLINE inline
-
712 #endif//defined(GLM_FORCE_INLINE)
-
713 
-
714 #define GLM_FUNC_DECL GLM_CUDA_FUNC_DECL
-
715 #define GLM_FUNC_QUALIFIER GLM_CUDA_FUNC_DEF GLM_INLINE
-
716 
-
718 // Swizzle operators
-
719 
-
720 // User defines: GLM_SWIZZLE
-
721 
-
722 #if(defined(GLM_MESSAGES) && !defined(GLM_MESSAGE_SWIZZLE_DISPLAYED))
-
723 # define GLM_MESSAGE_SWIZZLE_DISPLAYED
-
724 # if defined(GLM_SWIZZLE)
-
725 # pragma message("GLM: Swizzling operators enabled")
-
726 # else
-
727 # pragma message("GLM: Swizzling operators disabled, #define GLM_SWIZZLE to enable swizzle operators")
-
728 # endif
-
729 #endif//GLM_MESSAGE
-
730 
-
732 // Length type
-
733 
-
734 // User defines: GLM_FORCE_SIZE_T_LENGTH
-
735 
-
736 namespace glm
-
737 {
-
738 #if defined(GLM_FORCE_SIZE_T_LENGTH)
-
739  typedef std::size_t length_t;
-
740 #else
-
741  typedef int length_t;
-
742 #endif
-
743 }//namespace glm
-
744 
-
745 #if(defined(GLM_MESSAGES) && !defined(GLM_MESSAGE_FORCE_SIZE_T_LENGTH))
-
746 # define GLM_MESSAGE_FORCE_SIZE_T_LENGTH
-
747 # if defined(GLM_FORCE_SIZE_T_LENGTH)
-
748 # pragma message("GLM: .length() returns glm::length_t, a typedef of std::size_t")
-
749 # else
-
750 # pragma message("GLM: .length() returns glm::length_t, a typedef of int following the GLSL specification")
-
751 # pragma message("GLM: #define GLM_FORCE_SIZE_T_LENGTH for .length() to return a std::size_t")
-
752 # endif
-
753 #endif//GLM_MESSAGE
-
754 
-
756 // Qualifiers
-
757 
-
758 #if((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC8))
-
759 # define GLM_DEPRECATED __declspec(deprecated)
-
760 # define GLM_ALIGN(x) __declspec(align(x))
-
761 # define GLM_ALIGNED_STRUCT(x) __declspec(align(x)) struct
-
762 # define GLM_RESTRICT __declspec(restrict)
-
763 # define GLM_RESTRICT_VAR __restrict
-
764 #elif(GLM_COMPILER & GLM_COMPILER_INTEL)
-
765 # define GLM_DEPRECATED
-
766 # define GLM_ALIGN(x) __declspec(align(x))
-
767 # define GLM_ALIGNED_STRUCT(x) __declspec(align(x)) struct
-
768 # define GLM_RESTRICT
-
769 # define GLM_RESTRICT_VAR __restrict
-
770 #elif(GLM_COMPILER & (GLM_COMPILER_GCC | GLM_COMPILER_CLANG))
-
771 # define GLM_DEPRECATED __attribute__((__deprecated__))
-
772 # define GLM_ALIGN(x) __attribute__((aligned(x)))
-
773 # define GLM_ALIGNED_STRUCT(x) struct __attribute__((aligned(x)))
-
774 # define GLM_RESTRICT __restrict__
-
775 # define GLM_RESTRICT_VAR __restrict__
-
776 #else
-
777 # define GLM_DEPRECATED
-
778 # define GLM_ALIGN
-
779 # define GLM_ALIGNED_STRUCT(x)
-
780 # define GLM_RESTRICT
-
781 # define GLM_RESTRICT_VAR
-
782 #endif//GLM_COMPILER
-
783 
-
784 #if GLM_HAS_CONSTEXPR
-
785 # define GLM_CONSTEXPR constexpr
-
786 #else
-
787 # define GLM_CONSTEXPR
-
788 #endif
-
789 
-
790 #endif//GLM_SETUP_INCLUDED
-
GLM_FUNC_DECL genType pi()
Return the pi constant.
+Go to the documentation of this file.
1 
+
42 #pragma once
+
43 
+
44 // Dependency:
+
45 #include "../glm.hpp"
+
46 #include "../gtx/optimum_pow.hpp"
+
47 
+
48 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+
49 # pragma message("GLM: GLM_GTX_spline extension included")
+
50 #endif
+
51 
+
52 namespace glm
+
53 {
+
56 
+
59  template <typename genType>
+
60  GLM_FUNC_DECL genType catmullRom(
+
61  genType const & v1,
+
62  genType const & v2,
+
63  genType const & v3,
+
64  genType const & v4,
+
65  typename genType::value_type const & s);
+
66 
+
69  template <typename genType>
+
70  GLM_FUNC_DECL genType hermite(
+
71  genType const & v1,
+
72  genType const & t1,
+
73  genType const & v2,
+
74  genType const & t2,
+
75  typename genType::value_type const & s);
+
76 
+
79  template <typename genType>
+
80  GLM_FUNC_DECL genType cubic(
+
81  genType const & v1,
+
82  genType const & v2,
+
83  genType const & v3,
+
84  genType const & v4,
+
85  typename genType::value_type const & s);
+
86 
+
88 }//namespace glm
+
89 
+
90 #include "spline.inl"
+
GLM_FUNC_DECL genType catmullRom(genType const &v1, genType const &v2, genType const &v3, genType const &v4, typename genType::value_type const &s)
Return a point from a catmull rom curve.
+
GLM_FUNC_DECL genType cubic(genType const &v1, genType const &v2, genType const &v3, genType const &v4, typename genType::value_type const &s)
Return a point from a cubic curve.
+
Definition: _noise.hpp:39
+
GLM_FUNC_DECL genType hermite(genType const &v1, genType const &t1, genType const &v2, genType const &t2, typename genType::value_type const &s)
Return a point from a hermite curve.
diff --git a/doc/api/a00109.html b/doc/api/a00109.html new file mode 100644 index 00000000..ddac88bb --- /dev/null +++ b/doc/api/a00109.html @@ -0,0 +1,106 @@ + + + + + + +0.9.6: std_based_type.hpp File Reference + + + + + + +
+
+ + + + + + + +
+
0.9.6 +
+
+
+ + + + + +
+
+ +
+
std_based_type.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + +

+Typedefs

typedef tvec1< std::size_t,
+defaultp > 
size1
 
typedef tvec1< std::size_t,
+defaultp > 
size1_t
 
typedef tvec2< std::size_t,
+defaultp > 
size2
 
typedef tvec2< std::size_t,
+defaultp > 
size2_t
 
typedef tvec3< std::size_t,
+defaultp > 
size3
 
typedef tvec3< std::size_t,
+defaultp > 
size3_t
 
typedef tvec4< std::size_t,
+defaultp > 
size4
 
typedef tvec4< std::size_t,
+defaultp > 
size4_t
 
+

Detailed Description

+

OpenGL Mathematics (glm.g-truc.net)

+

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+

GLM_GTX_std_based_type

+
Date
2008-06-08 / 2011-06-07
+
Author
Christophe Riccio
+
See also
GLM Core (dependence)
+
+GLM_GTX_extented_min_max (dependence)
+ +

Definition in file std_based_type.hpp.

+
+ + + + diff --git a/doc/api/a00109_source.html b/doc/api/a00109_source.html index a3384a69..7fe5fde1 100644 --- a/doc/api/a00109_source.html +++ b/doc/api/a00109_source.html @@ -3,8 +3,8 @@ - -GLM: simd_mat4.hpp Source File + +0.9.6: std_based_type.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,173 +41,62 @@
-
simd_mat4.hpp
+
std_based_type.hpp
-
1 
-
38 #ifndef GLM_GTX_simd_mat4
-
39 #define GLM_GTX_simd_mat4
-
40 
-
41 // Dependencies
-
42 #include "../detail/setup.hpp"
+Go to the documentation of this file.
1 
+
42 #pragma once
43 
-
44 #if(GLM_ARCH != GLM_ARCH_PURE)
-
45 
-
46 #if(GLM_ARCH & GLM_ARCH_SSE2)
-
47 # include "../detail/intrinsic_matrix.hpp"
-
48 # include "../gtx/simd_vec4.hpp"
-
49 #else
-
50 # error "GLM: GLM_GTX_simd_mat4 requires compiler support of SSE2 through intrinsics"
-
51 #endif
-
52 
-
53 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
54 # pragma message("GLM: GLM_GTX_simd_mat4 extension included")
-
55 #endif
-
56 
-
57 namespace glm{
-
58 namespace detail
-
59 {
-
62  GLM_ALIGNED_STRUCT(16) fmat4x4SIMD
-
63  {
-
64  enum ctor{_null};
-
65  typedef float value_type;
-
66  typedef fvec4SIMD col_type;
-
67  typedef fvec4SIMD row_type;
-
68  typedef std::size_t size_type;
-
69  typedef fmat4x4SIMD type;
-
70  typedef fmat4x4SIMD transpose_type;
-
71 
-
72  GLM_FUNC_DECL length_t length() const;
-
73 
-
74  fvec4SIMD Data[4];
-
75 
-
77  // Constructors
-
78 
-
79  fmat4x4SIMD();
-
80  explicit fmat4x4SIMD(float const & s);
-
81  explicit fmat4x4SIMD(
-
82  float const & x0, float const & y0, float const & z0, float const & w0,
-
83  float const & x1, float const & y1, float const & z1, float const & w1,
-
84  float const & x2, float const & y2, float const & z2, float const & w2,
-
85  float const & x3, float const & y3, float const & z3, float const & w3);
-
86  explicit fmat4x4SIMD(
-
87  fvec4SIMD const & v0,
-
88  fvec4SIMD const & v1,
-
89  fvec4SIMD const & v2,
-
90  fvec4SIMD const & v3);
-
91  explicit fmat4x4SIMD(
-
92  mat4x4 const & m);
-
93  explicit fmat4x4SIMD(
-
94  __m128 const in[4]);
-
95 
-
96  // Conversions
-
97  //template <typename U>
-
98  //explicit tmat4x4(tmat4x4<U> const & m);
-
99 
-
100  //explicit tmat4x4(tmat2x2<T> const & x);
-
101  //explicit tmat4x4(tmat3x3<T> const & x);
-
102  //explicit tmat4x4(tmat2x3<T> const & x);
-
103  //explicit tmat4x4(tmat3x2<T> const & x);
-
104  //explicit tmat4x4(tmat2x4<T> const & x);
-
105  //explicit tmat4x4(tmat4x2<T> const & x);
-
106  //explicit tmat4x4(tmat3x4<T> const & x);
-
107  //explicit tmat4x4(tmat4x3<T> const & x);
-
108 
-
109  // Accesses
-
110  fvec4SIMD & operator[](length_t i);
-
111  fvec4SIMD const & operator[](length_t i) const;
-
112 
-
113  // Unary updatable operators
-
114  fmat4x4SIMD & operator= (fmat4x4SIMD const & m);
-
115  fmat4x4SIMD & operator+= (float const & s);
-
116  fmat4x4SIMD & operator+= (fmat4x4SIMD const & m);
-
117  fmat4x4SIMD & operator-= (float const & s);
-
118  fmat4x4SIMD & operator-= (fmat4x4SIMD const & m);
-
119  fmat4x4SIMD & operator*= (float const & s);
-
120  fmat4x4SIMD & operator*= (fmat4x4SIMD const & m);
-
121  fmat4x4SIMD & operator/= (float const & s);
-
122  fmat4x4SIMD & operator/= (fmat4x4SIMD const & m);
-
123  fmat4x4SIMD & operator++ ();
-
124  fmat4x4SIMD & operator-- ();
-
125  };
-
126 
-
127  // Binary operators
-
128  fmat4x4SIMD operator+ (fmat4x4SIMD const & m, float const & s);
-
129  fmat4x4SIMD operator+ (float const & s, fmat4x4SIMD const & m);
-
130  fmat4x4SIMD operator+ (fmat4x4SIMD const & m1, fmat4x4SIMD const & m2);
-
131 
-
132  fmat4x4SIMD operator- (fmat4x4SIMD const & m, float const & s);
-
133  fmat4x4SIMD operator- (float const & s, fmat4x4SIMD const & m);
-
134  fmat4x4SIMD operator- (fmat4x4SIMD const & m1, fmat4x4SIMD const & m2);
-
135 
-
136  fmat4x4SIMD operator* (fmat4x4SIMD const & m, float const & s);
-
137  fmat4x4SIMD operator* (float const & s, fmat4x4SIMD const & m);
-
138 
-
139  fvec4SIMD operator* (fmat4x4SIMD const & m, fvec4SIMD const & v);
-
140  fvec4SIMD operator* (fvec4SIMD const & v, fmat4x4SIMD const & m);
-
141 
-
142  fmat4x4SIMD operator* (fmat4x4SIMD const & m1, fmat4x4SIMD const & m2);
-
143 
-
144  fmat4x4SIMD operator/ (fmat4x4SIMD const & m, float const & s);
-
145  fmat4x4SIMD operator/ (float const & s, fmat4x4SIMD const & m);
-
146 
-
147  fvec4SIMD operator/ (fmat4x4SIMD const & m, fvec4SIMD const & v);
-
148  fvec4SIMD operator/ (fvec4SIMD const & v, fmat4x4SIMD const & m);
-
149 
-
150  fmat4x4SIMD operator/ (fmat4x4SIMD const & m1, fmat4x4SIMD const & m2);
-
151 
-
152  // Unary constant operators
-
153  fmat4x4SIMD const operator- (fmat4x4SIMD const & m);
-
154  fmat4x4SIMD const operator-- (fmat4x4SIMD const & m, int);
-
155  fmat4x4SIMD const operator++ (fmat4x4SIMD const & m, int);
-
156 }//namespace detail
-
157 
-
158  typedef detail::fmat4x4SIMD simdMat4;
-
159 
-
162 
-
165  mat4 mat4_cast(
-
166  detail::fmat4x4SIMD const & x);
-
167 
-
171  detail::fmat4x4SIMD matrixCompMult(
-
172  detail::fmat4x4SIMD const & x,
-
173  detail::fmat4x4SIMD const & y);
-
174 
-
179  detail::fmat4x4SIMD outerProduct(
-
180  detail::fvec4SIMD const & c,
-
181  detail::fvec4SIMD const & r);
-
182 
-
185  detail::fmat4x4SIMD transpose(
-
186  detail::fmat4x4SIMD const & x);
-
187 
-
190  float determinant(
-
191  detail::fmat4x4SIMD const & m);
-
192 
-
195  detail::fmat4x4SIMD inverse(
-
196  detail::fmat4x4SIMD const & m);
-
197 
-
199 }// namespace glm
-
200 
-
201 #include "simd_mat4.inl"
-
202 
-
203 #endif//(GLM_ARCH != GLM_ARCH_PURE)
-
204 
-
205 #endif//GLM_GTX_simd_mat4
-
highp_mat4x4 mat4x4
4 columns of 4 components matrix of floating-point numbers.
Definition: type_mat.hpp:425
-
mat4x4 mat4
4 columns of 4 components matrix of floating-point numbers.
Definition: type_mat.hpp:442
-
GLM_FUNC_DECL detail::tmat4x4< T, P > mat4_cast(detail::tquat< T, P > const &x)
Converts a quaternion to a 4 * 4 matrix.
-
GLM_FUNC_DECL genType::value_type length(genType const &x)
Returns the length of x, i.e., sqrt(x * x).
-
GLM_FUNC_DECL detail::tquat< T, P > inverse(detail::tquat< T, P > const &q)
Returns the q inverse.
+
44 // Dependency:
+
45 #include "../glm.hpp"
+
46 #include <cstdlib>
+
47 
+
48 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+
49 # pragma message("GLM: GLM_GTX_std_based_type extension included")
+
50 #endif
+
51 
+
52 namespace glm
+
53 {
+
56 
+
59  typedef tvec1<std::size_t, defaultp> size1;
+
60 
+
63  typedef tvec2<std::size_t, defaultp> size2;
+
64 
+
67  typedef tvec3<std::size_t, defaultp> size3;
+
68 
+
71  typedef tvec4<std::size_t, defaultp> size4;
+
72 
+
75  typedef tvec1<std::size_t, defaultp> size1_t;
+
76 
+
79  typedef tvec2<std::size_t, defaultp> size2_t;
+
80 
+
83  typedef tvec3<std::size_t, defaultp> size3_t;
+
84 
+
87  typedef tvec4<std::size_t, defaultp> size4_t;
+
88 
+
90 }//namespace glm
+
91 
+
92 #include "std_based_type.inl"
+
tvec1< std::size_t, defaultp > size1
Vector type based of one std::size_t component.
+
tvec2< std::size_t, defaultp > size2
Vector type based of two std::size_t components.
+
tvec4< std::size_t, defaultp > size4
Vector type based of four std::size_t components.
+
tvec2< std::size_t, defaultp > size2_t
Vector type based of two std::size_t components.
+
tvec4< std::size_t, defaultp > size4_t
Vector type based of four std::size_t components.
+
tvec1< std::size_t, defaultp > size1_t
Vector type based of one std::size_t component.
+
tvec3< std::size_t, defaultp > size3
Vector type based of three std::size_t components.
+
tvec3< std::size_t, defaultp > size3_t
Vector type based of three std::size_t components.
+
Definition: _noise.hpp:39
diff --git a/doc/api/a00110.html b/doc/api/a00110.html index d7858be6..ff4cbeea 100644 --- a/doc/api/a00110.html +++ b/doc/api/a00110.html @@ -3,8 +3,8 @@ - -GLM: simd_quat.hpp File Reference + +0.9.6: string_cast.hpp File Reference @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,33 +41,49 @@
+
+Functions
-
simd_quat.hpp File Reference
+
string_cast.hpp File Reference

Go to the source code of this file.

+ + + + + +

+Functions

template<template< typename, precision > class matType, typename T , precision P>
GLM_FUNC_DECL std::string to_string (matType< T, P > const &x)
 

Detailed Description

OpenGL Mathematics (glm.g-truc.net)

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

gtx_simd_quat

-
Date
2009-05-07 / 2011-06-07
+

GLM_GTX_string_cast

+
Date
2008-04-26 / 2014-05-10
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
+
See also
GLM Core (dependence)
+
+gtc_half_float (dependence)
+
+GLM_GTX_integer (dependence)
+
+GLM_GTX_quaternion (dependence)
-

Definition in file simd_quat.hpp.

+

Definition in file string_cast.hpp.

diff --git a/doc/api/a00110_source.html b/doc/api/a00110_source.html index e30c8532..bb9d9e79 100644 --- a/doc/api/a00110_source.html +++ b/doc/api/a00110_source.html @@ -3,8 +3,8 @@ - -GLM: simd_quat.hpp Source File + +0.9.6: string_cast.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,251 +41,47 @@
-
simd_quat.hpp
+
string_cast.hpp
Go to the documentation of this file.
1 
-
38 #ifndef GLM_GTX_simd_quat
-
39 #define GLM_GTX_simd_quat
-
40 
-
41 // Dependency:
-
42 #include "../glm.hpp"
-
43 #include "../gtc/quaternion.hpp"
-
44 #include "../gtx/fast_trigonometry.hpp"
-
45 
-
46 #if(GLM_ARCH != GLM_ARCH_PURE)
-
47 
-
48 #if(GLM_ARCH & GLM_ARCH_SSE2)
-
49 # include "../core/intrinsic_common.hpp"
-
50 # include "../core/intrinsic_geometric.hpp"
-
51 # include "../gtx/simd_mat4.hpp"
-
52 #else
-
53 # error "GLM: GLM_GTX_simd_quat requires compiler support of SSE2 through intrinsics"
-
54 #endif
-
55 
-
56 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
57 # pragma message("GLM: GLM_GTX_simd_quat extension included")
-
58 #endif
-
59 
+
46 #pragma once
+
47 
+
48 // Dependency:
+
49 #include "../glm.hpp"
+
50 #include "../gtc/type_precision.hpp"
+
51 #include <string>
+
52 
+
53 #if(GLM_COMPILER & GLM_COMPILER_CUDA)
+
54 # error "GLM_GTX_string_cast is not supported on CUDA compiler"
+
55 #endif
+
56 
+
57 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+
58 # pragma message("GLM: GLM_GTX_string_cast extension included")
+
59 #endif
60 
-
61 // Warning silencer for nameless struct/union.
-
62 #if (GLM_COMPILER & GLM_COMPILER_VC)
-
63 # pragma warning(push)
-
64 # pragma warning(disable:4201) // warning C4201: nonstandard extension used : nameless struct/union
-
65 #endif
-
66 
-
67 
-
68 namespace glm{
-
69 namespace detail
-
70 {
-
73  GLM_ALIGNED_STRUCT(16) fquatSIMD
-
74  {
-
75  enum ctor{null};
-
76  typedef __m128 value_type;
-
77  typedef std::size_t size_type;
-
78  static size_type value_size();
-
79 
-
80  typedef fquatSIMD type;
-
81  typedef tquat<bool, defaultp> bool_type;
-
82 
-
83 #ifdef GLM_SIMD_ENABLE_XYZW_UNION
-
84  union
-
85  {
-
86  __m128 Data;
-
87  struct {float x, y, z, w;};
-
88  };
-
89 #else
-
90  __m128 Data;
-
91 #endif
-
92 
-
94  // Implicit basic constructors
-
95 
-
96  fquatSIMD();
-
97  fquatSIMD(__m128 const & Data);
-
98  fquatSIMD(fquatSIMD const & q);
-
99 
-
101  // Explicit basic constructors
-
102 
-
103  explicit fquatSIMD(
-
104  ctor);
-
105  explicit fquatSIMD(
-
106  float const & w,
-
107  float const & x,
-
108  float const & y,
-
109  float const & z);
-
110  explicit fquatSIMD(
-
111  quat const & v);
-
112  explicit fquatSIMD(
-
113  vec3 const & eulerAngles);
-
114 
-
115 
-
117  // Unary arithmetic operators
-
118 
-
119  fquatSIMD& operator =(fquatSIMD const & q);
-
120  fquatSIMD& operator*=(float const & s);
-
121  fquatSIMD& operator/=(float const & s);
-
122  };
-
123 
-
124 
-
126  // Arithmetic operators
-
127 
-
128  detail::fquatSIMD operator- (
-
129  detail::fquatSIMD const & q);
-
130 
-
131  detail::fquatSIMD operator+ (
-
132  detail::fquatSIMD const & q,
-
133  detail::fquatSIMD const & p);
-
134 
-
135  detail::fquatSIMD operator* (
-
136  detail::fquatSIMD const & q,
-
137  detail::fquatSIMD const & p);
-
138 
-
139  detail::fvec4SIMD operator* (
-
140  detail::fquatSIMD const & q,
-
141  detail::fvec4SIMD const & v);
-
142 
-
143  detail::fvec4SIMD operator* (
-
144  detail::fvec4SIMD const & v,
-
145  detail::fquatSIMD const & q);
-
146 
-
147  detail::fquatSIMD operator* (
-
148  detail::fquatSIMD const & q,
-
149  float s);
-
150 
-
151  detail::fquatSIMD operator* (
-
152  float s,
-
153  detail::fquatSIMD const & q);
-
154 
-
155  detail::fquatSIMD operator/ (
-
156  detail::fquatSIMD const & q,
-
157  float s);
-
158 
-
159 }//namespace detail
-
160 
-
161  typedef glm::detail::fquatSIMD simdQuat;
-
162 
-
165 
-
168  quat quat_cast(
-
169  detail::fquatSIMD const & x);
-
170 
-
173  detail::fquatSIMD quatSIMD_cast(
-
174  detail::fmat4x4SIMD const & m);
-
175 
-
178  template <typename T, precision P>
-
179  detail::fquatSIMD quatSIMD_cast(
-
180  detail::tmat4x4<T, P> const & m);
-
181 
-
184  template <typename T, precision P>
-
185  detail::fquatSIMD quatSIMD_cast(
-
186  detail::tmat3x3<T, P> const & m);
-
187 
-
190  detail::fmat4x4SIMD mat4SIMD_cast(
-
191  detail::fquatSIMD const & q);
-
192 
-
195  mat4 mat4_cast(
-
196  detail::fquatSIMD const & q);
-
197 
-
198 
-
202  float length(
-
203  detail::fquatSIMD const & x);
-
204 
-
208  detail::fquatSIMD normalize(
-
209  detail::fquatSIMD const & x);
-
210 
-
214  float dot(
-
215  detail::fquatSIMD const & q1,
-
216  detail::fquatSIMD const & q2);
-
217 
-
228  detail::fquatSIMD mix(
-
229  detail::fquatSIMD const & x,
-
230  detail::fquatSIMD const & y,
-
231  float const & a);
-
232 
-
241  detail::fquatSIMD lerp(
-
242  detail::fquatSIMD const & x,
-
243  detail::fquatSIMD const & y,
-
244  float const & a);
-
245 
-
254  detail::fquatSIMD slerp(
-
255  detail::fquatSIMD const & x,
-
256  detail::fquatSIMD const & y,
-
257  float const & a);
-
258 
-
259 
-
270  detail::fquatSIMD fastMix(
-
271  detail::fquatSIMD const & x,
-
272  detail::fquatSIMD const & y,
-
273  float const & a);
-
274 
-
282  detail::fquatSIMD fastSlerp(
-
283  detail::fquatSIMD const & x,
-
284  detail::fquatSIMD const & y,
-
285  float const & a);
-
286 
-
287 
-
291  detail::fquatSIMD conjugate(
-
292  detail::fquatSIMD const & q);
-
293 
-
297  detail::fquatSIMD inverse(
-
298  detail::fquatSIMD const & q);
-
299 
-
306  detail::fquatSIMD angleAxisSIMD(
-
307  float const & angle,
-
308  vec3 const & axis);
-
309 
-
318  detail::fquatSIMD angleAxisSIMD(
-
319  float const & angle,
-
320  float const & x,
-
321  float const & y,
-
322  float const & z);
-
323 
-
324 
-
325  // TODO: Move this to somewhere more appropriate. Used with fastMix() and fastSlerp().
-
327  __m128 fastSin(__m128 x);
-
328 
-
329 
-
331 }//namespace glm
-
332 
-
333 #include "simd_quat.inl"
-
334 
-
335 
-
336 #if (GLM_COMPILER & GLM_COMPILER_VC)
-
337 # pragma warning(pop)
-
338 #endif
-
339 
-
340 
-
341 #endif//(GLM_ARCH != GLM_ARCH_PURE)
-
342 
-
343 #endif//GLM_GTX_simd_quat
-
GLM_FUNC_DECL T dot(vecType< T, P > const &x, vecType< T, P > const &y)
Returns the dot product of x and y, i.e., result = x * y.
-
highp_vec3 vec3
3 components vector of floating-point numbers.
Definition: type_vec.hpp:393
-
GLM_FUNC_DECL detail::tquat< T, P > lerp(detail::tquat< T, P > const &x, detail::tquat< T, P > const &y, T const &a)
Linear interpolation of two quaternions.
-
GLM_FUNC_DECL detail::tquat< T, P > quat_cast(detail::tmat3x3< T, P > const &x)
Converts a 3 * 3 matrix to a quaternion.
-
GLM_FUNC_DECL genTypeT mix(genTypeT const &x, genTypeT const &y, genTypeU const &a)
If genTypeU is a floating scalar or vector: Returns x * (1.0 - a) + y * a, i.e., the linear blend of ...
-
GLM_FUNC_DECL T angle(detail::tquat< T, P > const &x)
Returns the quaternion rotation angle.
-
GLM_FUNC_DECL detail::tvec3< T, P > eulerAngles(detail::tquat< T, P > const &x)
Returns euler angles, yitch as x, yaw as y, roll as z.
-
mat4x4 mat4
4 columns of 4 components matrix of floating-point numbers.
Definition: type_mat.hpp:442
-
T fastSin(const T &angle)
Faster than the common sin function but less accurate.
-
GLM_FUNC_DECL genType normalize(genType const &x)
Returns a vector in the same direction as x but with length of 1.
-
GLM_FUNC_DECL detail::tmat4x4< T, P > mat4_cast(detail::tquat< T, P > const &x)
Converts a quaternion to a 4 * 4 matrix.
-
GLM_FUNC_DECL genType::value_type length(genType const &x)
Returns the length of x, i.e., sqrt(x * x).
-
highp_quat quat
Quaternion of default single-precision floating-point numbers.
Definition: fwd.hpp:69
-
detail::tquat< T, P > fastMix(detail::tquat< T, P > const &x, detail::tquat< T, P > const &y, T const &a)
Quaternion normalized linear interpolation.
-
GLM_FUNC_DECL detail::tvec3< T, P > axis(detail::tquat< T, P > const &x)
Returns the q rotation axis.
-
GLM_FUNC_DECL detail::tquat< T, P > slerp(detail::tquat< T, P > const &x, detail::tquat< T, P > const &y, T const &a)
Spherical linear interpolation of two quaternions.
-
GLM_FUNC_DECL detail::tquat< T, P > conjugate(detail::tquat< T, P > const &q)
Returns the q conjugate.
-
GLM_FUNC_DECL detail::tquat< T, P > inverse(detail::tquat< T, P > const &q)
Returns the q inverse.
+
61 namespace glm
+
62 {
+
65 
+
68  template <template <typename, precision> class matType, typename T, precision P>
+
69  GLM_FUNC_DECL std::string to_string(matType<T, P> const & x);
+
70 
+
72 }//namespace glm
+
73 
+
74 #include "string_cast.inl"
+
GLM_FUNC_DECL std::string to_string(matType< T, P > const &x)
Create a string from a GLM vector or matrix typed variable.
+
Definition: _noise.hpp:39
diff --git a/doc/api/a00111.html b/doc/api/a00111.html index 850209c5..e7bfc19f 100644 --- a/doc/api/a00111.html +++ b/doc/api/a00111.html @@ -3,8 +3,8 @@ - -GLM: simd_vec4.hpp File Reference + +0.9.6: transform.hpp File Reference @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,33 +41,55 @@
+
+Functions
-
simd_vec4.hpp File Reference
+
transform.hpp File Reference

Go to the source code of this file.

+ + + + + + + + + + + +

+Functions

template<typename T , precision P>
GLM_FUNC_DECL tmat4x4< T, P > rotate (T angle, tvec3< T, P > const &v)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat4x4< T, P > scale (tvec3< T, P > const &v)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat4x4< T, P > translate (tvec3< T, P > const &v)
 

Detailed Description

OpenGL Mathematics (glm.g-truc.net)

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_simd_quat

-
Date
2009-05-07 / 2011-06-07
+

GLM_GTX_transform

+
Date
2005-12-21 / 2011-06-07
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
+
See also
GLM Core (dependence)
+
+GLM_GTC_matrix_transform (dependence)
+
+GLM_GTX_transform
+
+GLM_GTX_transform2
-

Definition in file simd_vec4.hpp.

+

Definition in file transform.hpp.

diff --git a/doc/api/a00111_source.html b/doc/api/a00111_source.html index d35b87b9..0ec27fdf 100644 --- a/doc/api/a00111_source.html +++ b/doc/api/a00111_source.html @@ -3,8 +3,8 @@ - -GLM: simd_vec4.hpp Source File + +0.9.6: transform.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,364 +41,55 @@
-
simd_vec4.hpp
+
transform.hpp
Go to the documentation of this file.
1 
-
38 #ifndef GLM_GTX_simd_vec4
-
39 #define GLM_GTX_simd_vec4
-
40 
-
41 // Dependency:
-
42 #include "../glm.hpp"
-
43 
-
44 #if(GLM_ARCH != GLM_ARCH_PURE)
-
45 
-
46 #if(GLM_ARCH & GLM_ARCH_SSE2)
-
47 # include "../detail/intrinsic_common.hpp"
-
48 # include "../detail/intrinsic_geometric.hpp"
-
49 # include "../detail/intrinsic_integer.hpp"
-
50 #else
-
51 # error "GLM: GLM_GTX_simd_vec4 requires compiler support of SSE2 through intrinsics"
-
52 #endif
-
53 
-
54 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
55 # pragma message("GLM: GLM_GTX_simd_vec4 extension included")
-
56 #endif
-
57 
-
58 
-
59 // Warning silencer for nameless struct/union.
-
60 #if (GLM_COMPILER & GLM_COMPILER_VC)
-
61 # pragma warning(push)
-
62 # pragma warning(disable:4201) // warning C4201: nonstandard extension used : nameless struct/union
-
63 #endif
-
64 
-
65 namespace glm
-
66 {
-
67  enum comp
-
68  {
-
69  X = 0,
-
70  R = 0,
-
71  S = 0,
-
72  Y = 1,
-
73  G = 1,
-
74  T = 1,
-
75  Z = 2,
-
76  B = 2,
-
77  P = 2,
-
78  W = 3,
-
79  A = 3,
-
80  Q = 3
-
81  };
-
82 
-
83 }//namespace glm
+
45 #pragma once
+
46 
+
47 // Dependency:
+
48 #include "../glm.hpp"
+
49 #include "../gtc/matrix_transform.hpp"
+
50 
+
51 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+
52 # pragma message("GLM: GLM_GTX_transform extension included")
+
53 #endif
+
54 
+
55 namespace glm
+
56 {
+
59 
+
63  template <typename T, precision P>
+
64  GLM_FUNC_DECL tmat4x4<T, P> translate(
+
65  tvec3<T, P> const & v);
+
66 
+
70  template <typename T, precision P>
+
71  GLM_FUNC_DECL tmat4x4<T, P> rotate(
+
72  T angle,
+
73  tvec3<T, P> const & v);
+
74 
+
78  template <typename T, precision P>
+
79  GLM_FUNC_DECL tmat4x4<T, P> scale(
+
80  tvec3<T, P> const & v);
+
81 
+
83 }// namespace glm
84 
-
85 namespace glm{
-
86 namespace detail
-
87 {
-
90  GLM_ALIGNED_STRUCT(16) fvec4SIMD
-
91  {
-
92  enum ctor{null};
-
93  typedef __m128 value_type;
-
94  typedef std::size_t size_type;
-
95  static size_type value_size();
-
96 
-
97  typedef fvec4SIMD type;
-
98  typedef tvec4<bool, highp> bool_type;
-
99 
-
100 #ifdef GLM_SIMD_ENABLE_XYZW_UNION
-
101  union
-
102  {
-
103  __m128 Data;
-
104  struct {float x, y, z, w;};
-
105  };
-
106 #else
-
107  __m128 Data;
-
108 #endif
-
109 
-
111  // Implicit basic constructors
-
112 
-
113  fvec4SIMD();
-
114  fvec4SIMD(__m128 const & Data);
-
115  fvec4SIMD(fvec4SIMD const & v);
-
116 
-
118  // Explicit basic constructors
-
119 
-
120  explicit fvec4SIMD(
-
121  ctor);
-
122  explicit fvec4SIMD(
-
123  float const & s);
-
124  explicit fvec4SIMD(
-
125  float const & x,
-
126  float const & y,
-
127  float const & z,
-
128  float const & w);
-
129  explicit fvec4SIMD(
-
130  vec4 const & v);
-
131 
-
134 
-
135  fvec4SIMD(vec2 const & v, float const & s1, float const & s2);
-
136  fvec4SIMD(float const & s1, vec2 const & v, float const & s2);
-
137  fvec4SIMD(float const & s1, float const & s2, vec2 const & v);
-
138  fvec4SIMD(vec3 const & v, float const & s);
-
139  fvec4SIMD(float const & s, vec3 const & v);
-
140  fvec4SIMD(vec2 const & v1, vec2 const & v2);
-
141  //fvec4SIMD(ivec4SIMD const & v);
-
142 
-
144  // Unary arithmetic operators
-
145 
-
146  fvec4SIMD& operator= (fvec4SIMD const & v);
-
147  fvec4SIMD& operator+=(fvec4SIMD const & v);
-
148  fvec4SIMD& operator-=(fvec4SIMD const & v);
-
149  fvec4SIMD& operator*=(fvec4SIMD const & v);
-
150  fvec4SIMD& operator/=(fvec4SIMD const & v);
-
151 
-
152  fvec4SIMD& operator+=(float const & s);
-
153  fvec4SIMD& operator-=(float const & s);
-
154  fvec4SIMD& operator*=(float const & s);
-
155  fvec4SIMD& operator/=(float const & s);
-
156 
-
157  fvec4SIMD& operator++();
-
158  fvec4SIMD& operator--();
-
159 
-
161  // Swizzle operators
-
162 
-
163  template <comp X, comp Y, comp Z, comp W>
-
164  fvec4SIMD& swizzle();
-
165  template <comp X, comp Y, comp Z, comp W>
-
166  fvec4SIMD swizzle() const;
-
167  template <comp X, comp Y, comp Z>
-
168  fvec4SIMD swizzle() const;
-
169  template <comp X, comp Y>
-
170  fvec4SIMD swizzle() const;
-
171  template <comp X>
-
172  fvec4SIMD swizzle() const;
-
173  };
-
174 }//namespace detail
-
175 
-
176  typedef glm::detail::fvec4SIMD simdVec4;
-
177 
-
180 
-
183  vec4 vec4_cast(
-
184  detail::fvec4SIMD const & x);
-
185 
-
188  detail::fvec4SIMD abs(detail::fvec4SIMD const & x);
-
189 
-
192  detail::fvec4SIMD sign(detail::fvec4SIMD const & x);
-
193 
-
196  detail::fvec4SIMD floor(detail::fvec4SIMD const & x);
-
197 
-
201  detail::fvec4SIMD trunc(detail::fvec4SIMD const & x);
-
202 
-
210  detail::fvec4SIMD round(detail::fvec4SIMD const & x);
-
211 
-
217  //detail::fvec4SIMD roundEven(detail::fvec4SIMD const & x);
-
218 
-
222  detail::fvec4SIMD ceil(detail::fvec4SIMD const & x);
-
223 
-
227  detail::fvec4SIMD fract(detail::fvec4SIMD const & x);
-
228 
-
233  detail::fvec4SIMD mod(
-
234  detail::fvec4SIMD const & x,
-
235  detail::fvec4SIMD const & y);
-
236 
-
241  detail::fvec4SIMD mod(
-
242  detail::fvec4SIMD const & x,
-
243  float const & y);
-
244 
-
250  //detail::fvec4SIMD modf(
-
251  // detail::fvec4SIMD const & x,
-
252  // detail::fvec4SIMD & i);
-
253 
-
257  detail::fvec4SIMD min(
-
258  detail::fvec4SIMD const & x,
-
259  detail::fvec4SIMD const & y);
-
260 
-
261  detail::fvec4SIMD min(
-
262  detail::fvec4SIMD const & x,
-
263  float const & y);
-
264 
-
268  detail::fvec4SIMD max(
-
269  detail::fvec4SIMD const & x,
-
270  detail::fvec4SIMD const & y);
-
271 
-
272  detail::fvec4SIMD max(
-
273  detail::fvec4SIMD const & x,
-
274  float const & y);
-
275 
-
280  detail::fvec4SIMD clamp(
-
281  detail::fvec4SIMD const & x,
-
282  detail::fvec4SIMD const & minVal,
-
283  detail::fvec4SIMD const & maxVal);
-
284 
-
285  detail::fvec4SIMD clamp(
-
286  detail::fvec4SIMD const & x,
-
287  float const & minVal,
-
288  float const & maxVal);
-
289 
-
316  detail::fvec4SIMD mix(
-
317  detail::fvec4SIMD const & x,
-
318  detail::fvec4SIMD const & y,
-
319  detail::fvec4SIMD const & a);
-
320 
-
324  detail::fvec4SIMD step(
-
325  detail::fvec4SIMD const & edge,
-
326  detail::fvec4SIMD const & x);
-
327 
-
328  detail::fvec4SIMD step(
-
329  float const & edge,
-
330  detail::fvec4SIMD const & x);
-
331 
-
343  detail::fvec4SIMD smoothstep(
-
344  detail::fvec4SIMD const & edge0,
-
345  detail::fvec4SIMD const & edge1,
-
346  detail::fvec4SIMD const & x);
-
347 
-
348  detail::fvec4SIMD smoothstep(
-
349  float const & edge0,
-
350  float const & edge1,
-
351  detail::fvec4SIMD const & x);
-
352 
-
360  //bvec4 isnan(detail::fvec4SIMD const & x);
-
361 
-
369  //bvec4 isinf(detail::fvec4SIMD const & x);
-
370 
-
376  //detail::ivec4SIMD floatBitsToInt(detail::fvec4SIMD const & value);
-
377 
-
385  //detail::fvec4SIMD intBitsToFloat(detail::ivec4SIMD const & value);
-
386 
-
390  detail::fvec4SIMD fma(
-
391  detail::fvec4SIMD const & a,
-
392  detail::fvec4SIMD const & b,
-
393  detail::fvec4SIMD const & c);
-
394 
-
405  //detail::fvec4SIMD frexp(detail::fvec4SIMD const & x, detail::ivec4SIMD & exp);
-
406 
-
414  //detail::fvec4SIMD ldexp(detail::fvec4SIMD const & x, detail::ivec4SIMD const & exp);
-
415 
-
419  float length(
-
420  detail::fvec4SIMD const & x);
-
421 
-
426  float fastLength(
-
427  detail::fvec4SIMD const & x);
-
428 
-
433  float niceLength(
-
434  detail::fvec4SIMD const & x);
-
435 
-
439  detail::fvec4SIMD length4(
-
440  detail::fvec4SIMD const & x);
-
441 
-
446  detail::fvec4SIMD fastLength4(
-
447  detail::fvec4SIMD const & x);
-
448 
-
453  detail::fvec4SIMD niceLength4(
-
454  detail::fvec4SIMD const & x);
-
455 
-
459  float distance(
-
460  detail::fvec4SIMD const & p0,
-
461  detail::fvec4SIMD const & p1);
-
462 
-
466  detail::fvec4SIMD distance4(
-
467  detail::fvec4SIMD const & p0,
-
468  detail::fvec4SIMD const & p1);
-
469 
-
473  float simdDot(
-
474  detail::fvec4SIMD const & x,
-
475  detail::fvec4SIMD const & y);
-
476 
-
480  detail::fvec4SIMD dot4(
-
481  detail::fvec4SIMD const & x,
-
482  detail::fvec4SIMD const & y);
-
483 
-
487  detail::fvec4SIMD cross(
-
488  detail::fvec4SIMD const & x,
-
489  detail::fvec4SIMD const & y);
-
490 
-
494  detail::fvec4SIMD normalize(
-
495  detail::fvec4SIMD const & x);
-
496 
-
501  detail::fvec4SIMD fastNormalize(
-
502  detail::fvec4SIMD const & x);
-
503 
-
507  detail::fvec4SIMD simdFaceforward(
-
508  detail::fvec4SIMD const & N,
-
509  detail::fvec4SIMD const & I,
-
510  detail::fvec4SIMD const & Nref);
-
511 
-
516  detail::fvec4SIMD reflect(
-
517  detail::fvec4SIMD const & I,
-
518  detail::fvec4SIMD const & N);
-
519 
-
525  detail::fvec4SIMD refract(
-
526  detail::fvec4SIMD const & I,
-
527  detail::fvec4SIMD const & N,
-
528  float const & eta);
-
529 
-
533  detail::fvec4SIMD sqrt(
-
534  detail::fvec4SIMD const & x);
-
535 
-
540  detail::fvec4SIMD niceSqrt(
-
541  detail::fvec4SIMD const & x);
-
542 
-
547  detail::fvec4SIMD fastSqrt(
-
548  detail::fvec4SIMD const & x);
-
549 
-
553  detail::fvec4SIMD inversesqrt(
-
554  detail::fvec4SIMD const & x);
-
555 
-
560  detail::fvec4SIMD fastInversesqrt(
-
561  detail::fvec4SIMD const & x);
-
562 
-
564 }//namespace glm
-
565 
-
566 #include "simd_vec4.inl"
-
567 
-
568 #if (GLM_COMPILER & GLM_COMPILER_VC)
-
569 # pragma warning(pop)
-
570 #endif
-
571 
-
572 #endif//(GLM_ARCH != GLM_ARCH_PURE)
-
573 
-
574 #endif//GLM_GTX_simd_vec4
-
GLM_FUNC_DECL genType sqrt(genType const &x)
Returns the positive square root of x.
-
highp_vec3 vec3
3 components vector of floating-point numbers.
Definition: type_vec.hpp:393
-
GLM_FUNC_DECL genType floor(genType const &x)
Returns a value equal to the nearest integer that is less then or equal to x.
-
GLM_FUNC_DECL detail::tvec3< T, P > cross(detail::tvec3< T, P > const &x, detail::tvec3< T, P > const &y)
Returns the cross product of x and y.
-
GLM_FUNC_DECL genTypeT mix(genTypeT const &x, genTypeT const &y, genTypeU const &a)
If genTypeU is a floating scalar or vector: Returns x * (1.0 - a) + y * a, i.e., the linear blend of ...
-
highp_vec4 vec4
4 components vector of floating-point numbers.
Definition: type_vec.hpp:398
-
genType fastSqrt(genType const &x)
Faster than the common sqrt function but less accurate.
-
GLM_FUNC_DECL genType mod(genType const &x, genType const &y)
Modulus.
-
GLM_FUNC_DECL genType inversesqrt(genType const &x)
Returns the reciprocal of the positive square root of x.
-
GLM_FUNC_DECL genType normalize(genType const &x)
Returns a vector in the same direction as x but with length of 1.
-
GLM_FUNC_DECL genType fract(genType const &x)
Return x - floor(x).
-
GLM_FUNC_DECL genType ceil(genType const &x)
Returns a value equal to the nearest integer that is greater than or equal to x.
-
GLM_FUNC_DECL genType fma(genType const &a, genType const &b, genType const &c)
Computes and returns a * b + c.
-
genType fastNormalize(genType const &x)
Faster than the common normalize function but less accurate.
-
GLM_FUNC_DECL genType step(genType const &edge, genType const &x)
Returns 0.0 if x &lt; edge, otherwise it returns 1.0 for each component of a genType.
-
GLM_FUNC_DECL genType trunc(genType const &x)
Returns a value equal to the nearest integer to x whose absolute value is not larger than the absolut...
-
GLM_FUNC_DECL genType::value_type length(genType const &x)
Returns the length of x, i.e., sqrt(x * x).
-
GLM_FUNC_DECL genType round(genType const &x)
Returns a value equal to the nearest integer to x.
-
GLM_FUNC_DECL vecType< T, P > refract(vecType< T, P > const &I, vecType< T, P > const &N, T const &eta)
For the incident vector I and surface normal N, and the ratio of indices of refraction eta...
-
GLM_FUNC_DECL genType abs(genType const &x)
Returns x if x &gt;= 0; otherwise, it returns -x.
-
GLM_FUNC_DECL genType smoothstep(genType const &edge0, genType const &edge1, genType const &x)
Returns 0.0 if x &lt;= edge0 and 1.0 if x &gt;= edge1 and performs smooth Hermite interpolation between 0 a...
-
GLM_FUNC_DECL genType clamp(genType const &x, genType const &minVal, genType const &maxVal)
Returns min(max(x, minVal), maxVal) for each component in x using the floating-point values minVal an...
-
GLM_FUNC_DECL genType reflect(genType const &I, genType const &N)
For the incident vector I and surface orientation N, returns the reflection direction : result = I - ...
-
GLM_FUNC_DECL genType max(genType const &x, genType const &y)
Returns y if x &lt; y; otherwise, it returns x.
-
GLM_FUNC_DECL genType::value_type distance(genType const &p0, genType const &p1)
Returns the distance betwwen p0 and p1, i.e., length(p0 - p1).
-
GLM_FUNC_DECL genType sign(genType const &x)
Returns 1.0 if x &gt; 0, 0.0 if x == 0, or -1.0 if x &lt; 0.
-
genType::value_type fastLength(genType const &x)
Faster than the common length function but less accurate.
-
GLM_FUNC_DECL genType min(genType const &x, genType const &y)
Returns y if y &lt; x; otherwise, it returns x.
-
highp_vec2 vec2
2 components vector of floating-point numbers.
Definition: type_vec.hpp:388
+
85 #include "transform.inl"
+
GLM_FUNC_DECL tmat4x4< T, P > scale(tvec3< T, P > const &v)
Transforms a matrix with a scale 4 * 4 matrix created from a vector of 3 components.
+
GLM_FUNC_DECL T angle(tquat< T, P > const &x)
Returns the quaternion rotation angle.
+
GLM_FUNC_DECL tmat4x4< T, P > rotate(T angle, tvec3< T, P > const &v)
Builds a rotation 4 * 4 matrix created from an axis of 3 scalars and an angle expressed in degrees...
+
Definition: _noise.hpp:39
+
GLM_FUNC_DECL tmat4x4< T, P > translate(tvec3< T, P > const &v)
Transforms a matrix with a translation 4 * 4 matrix created from 3 scalars.
diff --git a/doc/api/a00112.html b/doc/api/a00112.html index 83bd954e..8dc58dc8 100644 --- a/doc/api/a00112.html +++ b/doc/api/a00112.html @@ -3,8 +3,8 @@ - -GLM: spline.hpp File Reference + +0.9.6: transform2.hpp File Reference @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,54 +41,69 @@
-Namespaces | Functions
-
spline.hpp File Reference
+
transform2.hpp File Reference

Go to the source code of this file.

- - - -

-Namespaces

 glm
 
- - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + +

Functions

template<typename genType >
GLM_FUNC_DECL genType catmullRom (genType const &v1, genType const &v2, genType const &v3, genType const &v4, typename genType::value_type const &s)
 
template<typename genType >
GLM_FUNC_DECL genType cubic (genType const &v1, genType const &v2, genType const &v3, genType const &v4, typename genType::value_type const &s)
 
template<typename genType >
GLM_FUNC_DECL genType hermite (genType const &v1, genType const &t1, genType const &v2, genType const &t2, typename genType::value_type const &s)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat3x3< T, P > proj2D (const tmat3x3< T, P > &m, const tvec3< T, P > &normal)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat4x4< T, P > proj3D (const tmat4x4< T, P > &m, const tvec3< T, P > &normal)
 
template<typename valType , precision P>
GLM_FUNC_DECL tmat4x4< valType, P > scaleBias (valType scale, valType bias)
 
template<typename valType , precision P>
GLM_FUNC_DECL tmat4x4< valType, P > scaleBias (tmat4x4< valType, P > const &m, valType scale, valType bias)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat3x3< T, P > shearX2D (tmat3x3< T, P > const &m, T y)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat4x4< T, P > shearX3D (const tmat4x4< T, P > &m, T y, T z)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat3x3< T, P > shearY2D (tmat3x3< T, P > const &m, T x)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat4x4< T, P > shearY3D (const tmat4x4< T, P > &m, T x, T z)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat4x4< T, P > shearZ3D (const tmat4x4< T, P > &m, T x, T y)
 

Detailed Description

OpenGL Mathematics (glm.g-truc.net)

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_spline

-
Date
2007-01-25 / 2011-06-07
+

GLM_GTX_transform2

+
Date
2005-12-21 / 2011-06-07
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
+
See also
GLM Core (dependence)
+
+GLM_GTX_transform (dependence)
-

Definition in file spline.hpp.

+

Definition in file transform2.hpp.

diff --git a/doc/api/a00112_source.html b/doc/api/a00112_source.html index 2d7f5f86..fa794c54 100644 --- a/doc/api/a00112_source.html +++ b/doc/api/a00112_source.html @@ -3,8 +3,8 @@ - -GLM: spline.hpp Source File + +0.9.6: transform2.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,68 +41,104 @@
-
spline.hpp
+
transform2.hpp
Go to the documentation of this file.
1 
-
38 #ifndef GLM_GTX_spline
-
39 #define GLM_GTX_spline
-
40 
-
41 // Dependency:
-
42 #include "../glm.hpp"
-
43 #include "../gtx/optimum_pow.hpp"
+
43 #pragma once
44 
-
45 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
46 # pragma message("GLM: GLM_GTX_spline extension included")
-
47 #endif
-
48 
-
49 namespace glm
-
50 {
-
53 
-
56  template <typename genType>
-
57  GLM_FUNC_DECL genType catmullRom(
-
58  genType const & v1,
-
59  genType const & v2,
-
60  genType const & v3,
-
61  genType const & v4,
-
62  typename genType::value_type const & s);
-
63 
-
66  template <typename genType>
-
67  GLM_FUNC_DECL genType hermite(
-
68  genType const & v1,
-
69  genType const & t1,
-
70  genType const & v2,
-
71  genType const & t2,
-
72  typename genType::value_type const & s);
-
73 
-
76  template <typename genType>
-
77  GLM_FUNC_DECL genType cubic(
-
78  genType const & v1,
-
79  genType const & v2,
-
80  genType const & v3,
-
81  genType const & v4,
-
82  typename genType::value_type const & s);
-
83 
-
85 }//namespace glm
-
86 
-
87 #include "spline.inl"
-
88 
-
89 #endif//GLM_GTX_spline
-
90 
-
GLM_FUNC_DECL genType catmullRom(genType const &v1, genType const &v2, genType const &v3, genType const &v4, typename genType::value_type const &s)
Return a point from a catmull rom curve.
-
GLM_FUNC_DECL genType cubic(genType const &v1, genType const &v2, genType const &v3, genType const &v4, typename genType::value_type const &s)
Return a point from a cubic curve.
-
GLM_FUNC_DECL genType hermite(genType const &v1, genType const &t1, genType const &v2, genType const &t2, typename genType::value_type const &s)
Return a point from a hermite curve.
+
45 // Dependency:
+
46 #include "../glm.hpp"
+
47 #include "../gtx/transform.hpp"
+
48 
+
49 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+
50 # pragma message("GLM: GLM_GTX_transform2 extension included")
+
51 #endif
+
52 
+
53 namespace glm
+
54 {
+
57 
+
60  template <typename T, precision P>
+
61  GLM_FUNC_DECL tmat3x3<T, P> shearX2D(
+
62  tmat3x3<T, P> const & m,
+
63  T y);
+
64 
+
67  template <typename T, precision P>
+
68  GLM_FUNC_DECL tmat3x3<T, P> shearY2D(
+
69  tmat3x3<T, P> const & m,
+
70  T x);
+
71 
+
74  template <typename T, precision P>
+
75  GLM_FUNC_DECL tmat4x4<T, P> shearX3D(
+
76  const tmat4x4<T, P> & m,
+
77  T y,
+
78  T z);
+
79 
+
82  template <typename T, precision P>
+
83  GLM_FUNC_DECL tmat4x4<T, P> shearY3D(
+
84  const tmat4x4<T, P> & m,
+
85  T x,
+
86  T z);
+
87 
+
90  template <typename T, precision P>
+
91  GLM_FUNC_DECL tmat4x4<T, P> shearZ3D(
+
92  const tmat4x4<T, P> & m,
+
93  T x,
+
94  T y);
+
95 
+
96  //template <typename T> GLM_FUNC_QUALIFIER tmat4x4<T, P> shear(const tmat4x4<T, P> & m, shearPlane, planePoint, angle)
+
97  // Identity + tan(angle) * cross(Normal, OnPlaneVector) 0
+
98  // - dot(PointOnPlane, normal) * OnPlaneVector 1
+
99 
+
100  // Reflect functions seem to don't work
+
101  //template <typename T> tmat3x3<T, P> reflect2D(const tmat3x3<T, P> & m, const tvec3<T, P>& normal){return reflect2DGTX(m, normal);} //!< \brief Build a reflection matrix (from GLM_GTX_transform2 extension)
+
102  //template <typename T> tmat4x4<T, P> reflect3D(const tmat4x4<T, P> & m, const tvec3<T, P>& normal){return reflect3DGTX(m, normal);} //!< \brief Build a reflection matrix (from GLM_GTX_transform2 extension)
+
103 
+
106  template <typename T, precision P>
+
107  GLM_FUNC_DECL tmat3x3<T, P> proj2D(
+
108  const tmat3x3<T, P> & m,
+
109  const tvec3<T, P>& normal);
+
110 
+
113  template <typename T, precision P>
+
114  GLM_FUNC_DECL tmat4x4<T, P> proj3D(
+
115  const tmat4x4<T, P> & m,
+
116  const tvec3<T, P>& normal);
+
117 
+
120  template <typename valType, precision P>
+
121  GLM_FUNC_DECL tmat4x4<valType, P> scaleBias(
+
122  valType scale,
+
123  valType bias);
+
124 
+
127  template <typename valType, precision P>
+
128  GLM_FUNC_DECL tmat4x4<valType, P> scaleBias(
+
129  tmat4x4<valType, P> const & m,
+
130  valType scale,
+
131  valType bias);
+
132 
+
134 }// namespace glm
+
135 
+
136 #include "transform2.inl"
+
GLM_FUNC_DECL tmat4x4< T, P > shearZ3D(const tmat4x4< T, P > &m, T x, T y)
Transforms a matrix with a shearing on Z axis.
+
GLM_FUNC_DECL tmat4x4< T, P > shearY3D(const tmat4x4< T, P > &m, T x, T z)
Transforms a matrix with a shearing on Y axis.
+
GLM_FUNC_DECL tmat4x4< T, P > scale(tmat4x4< T, P > const &m, tvec3< T, P > const &v)
Builds a scale 4 * 4 matrix created from 3 scalars.
+
GLM_FUNC_DECL tmat3x3< T, P > proj2D(const tmat3x3< T, P > &m, const tvec3< T, P > &normal)
Build planar projection matrix along normal axis.
+
GLM_FUNC_DECL tmat4x4< valType, P > scaleBias(tmat4x4< valType, P > const &m, valType scale, valType bias)
Build a scale bias matrix.
+
GLM_FUNC_DECL tmat3x3< T, P > shearY2D(tmat3x3< T, P > const &m, T x)
Transforms a matrix with a shearing on Y axis.
+
GLM_FUNC_DECL tmat4x4< T, P > proj3D(const tmat4x4< T, P > &m, const tvec3< T, P > &normal)
Build planar projection matrix along normal axis.
+
Definition: _noise.hpp:39
+
GLM_FUNC_DECL tmat3x3< T, P > shearX2D(tmat3x3< T, P > const &m, T y)
Transforms a matrix with a shearing on X axis.
+
GLM_FUNC_DECL tmat4x4< T, P > shearX3D(const tmat4x4< T, P > &m, T y, T z)
Transforms a matrix with a shearing on X axis From GLM_GTX_transform2 extension.
diff --git a/doc/api/a00113.html b/doc/api/a00113.html index 5680b5c8..c4e3e56b 100644 --- a/doc/api/a00113.html +++ b/doc/api/a00113.html @@ -3,8 +3,8 @@ - -GLM: std_based_type.hpp File Reference + +0.9.6: trigonometric.hpp File Reference @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,65 +41,33 @@
-
-Namespaces | -Typedefs
-
std_based_type.hpp File Reference
+
trigonometric.hpp File Reference

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
- - - - - - - - - - - - - -

-Typedefs

typedef detail::tvec2
-< std::size_t, defaultp > 
size2
 
typedef detail::tvec2
-< std::size_t, defaultp > 
size2_t
 
typedef detail::tvec3
-< std::size_t, defaultp > 
size3
 
typedef detail::tvec3
-< std::size_t, defaultp > 
size3_t
 
typedef detail::tvec4
-< std::size_t, defaultp > 
size4
 
typedef detail::tvec4
-< std::size_t, defaultp > 
size4_t
 

Detailed Description

OpenGL Mathematics (glm.g-truc.net)

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_std_based_type

-
Date
2008-06-08 / 2011-06-07
-
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
-
-GLM_GTX_extented_min_max (dependence)
+

GLM Core

+
Date
2013-12-24 / 2013-12-24
+
Author
Christophe Riccio
-

Definition in file std_based_type.hpp.

+

Definition in file trigonometric.hpp.

diff --git a/doc/api/a00113_source.html b/doc/api/a00113_source.html index 8de7cba8..85aad132 100644 --- a/doc/api/a00113_source.html +++ b/doc/api/a00113_source.html @@ -3,8 +3,8 @@ - -GLM: std_based_type.hpp Source File + +0.9.6: trigonometric.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,58 +41,25 @@
-
std_based_type.hpp
+
trigonometric.hpp
Go to the documentation of this file.
1 
-
38 #ifndef GLM_GTX_std_based_type
-
39 #define GLM_GTX_std_based_type
-
40 
-
41 // Dependency:
-
42 #include "../glm.hpp"
-
43 #include <cstdlib>
-
44 
-
45 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
46 # pragma message("GLM: GLM_GTX_std_based_type extension included")
-
47 #endif
-
48 
-
49 namespace glm
-
50 {
-
53 
-
56  typedef detail::tvec2<std::size_t, defaultp> size2;
-
57 
-
60  typedef detail::tvec3<std::size_t, defaultp> size3;
-
61 
-
64  typedef detail::tvec4<std::size_t, defaultp> size4;
-
65 
-
68  typedef detail::tvec2<std::size_t, defaultp> size2_t;
-
69 
-
72  typedef detail::tvec3<std::size_t, defaultp> size3_t;
-
73 
-
76  typedef detail::tvec4<std::size_t, defaultp> size4_t;
-
77 
-
79 }//namespace glm
-
80 
-
81 #include "std_based_type.inl"
-
82 
-
83 #endif//GLM_GTX_std_based_type
-
detail::tvec4< std::size_t, defaultp > size4
Vector type based of four std::size_t components.
-
detail::tvec4< std::size_t, defaultp > size4_t
Vector type based of four std::size_t components.
-
detail::tvec3< std::size_t, defaultp > size3_t
Vector type based of three std::size_t components.
-
detail::tvec3< std::size_t, defaultp > size3
Vector type based of three std::size_t components.
-
detail::tvec2< std::size_t, defaultp > size2_t
Vector type based of two std::size_t components.
-
detail::tvec2< std::size_t, defaultp > size2
Vector type based of two std::size_t components.
+
33 #pragma once
+
34 
+ +
OpenGL Mathematics (glm.g-truc.net)
diff --git a/doc/api/a00114.html b/doc/api/a00114.html index 4da289d4..3d9e74a7 100644 --- a/doc/api/a00114.html +++ b/doc/api/a00114.html @@ -3,8 +3,8 @@ - -GLM: string_cast.hpp File Reference + +0.9.6: type_aligned.hpp File Reference @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,54 +41,460 @@
-Namespaces | Functions
-
string_cast.hpp File Reference
+
type_aligned.hpp File Reference

Go to the source code of this file.

- - - -

-Namespaces

 glm
 
- - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Functions

template<typename genType >
std::string to_string (genType const &x)
 
 GLM_ALIGNED_TYPEDEF (lowp_int8, aligned_lowp_int8, 1)
 
 GLM_ALIGNED_TYPEDEF (lowp_int16, aligned_lowp_int16, 2)
 
 GLM_ALIGNED_TYPEDEF (lowp_int32, aligned_lowp_int32, 4)
 
 GLM_ALIGNED_TYPEDEF (lowp_int64, aligned_lowp_int64, 8)
 
 GLM_ALIGNED_TYPEDEF (lowp_int8_t, aligned_lowp_int8_t, 1)
 
 GLM_ALIGNED_TYPEDEF (lowp_int16_t, aligned_lowp_int16_t, 2)
 
 GLM_ALIGNED_TYPEDEF (lowp_int32_t, aligned_lowp_int32_t, 4)
 
 GLM_ALIGNED_TYPEDEF (lowp_int64_t, aligned_lowp_int64_t, 8)
 
 GLM_ALIGNED_TYPEDEF (lowp_i8, aligned_lowp_i8, 1)
 
 GLM_ALIGNED_TYPEDEF (lowp_i16, aligned_lowp_i16, 2)
 
 GLM_ALIGNED_TYPEDEF (lowp_i32, aligned_lowp_i32, 4)
 
 GLM_ALIGNED_TYPEDEF (lowp_i64, aligned_lowp_i64, 8)
 
 GLM_ALIGNED_TYPEDEF (mediump_int8, aligned_mediump_int8, 1)
 
 GLM_ALIGNED_TYPEDEF (mediump_int16, aligned_mediump_int16, 2)
 
 GLM_ALIGNED_TYPEDEF (mediump_int32, aligned_mediump_int32, 4)
 
 GLM_ALIGNED_TYPEDEF (mediump_int64, aligned_mediump_int64, 8)
 
 GLM_ALIGNED_TYPEDEF (mediump_int8_t, aligned_mediump_int8_t, 1)
 
 GLM_ALIGNED_TYPEDEF (mediump_int16_t, aligned_mediump_int16_t, 2)
 
 GLM_ALIGNED_TYPEDEF (mediump_int32_t, aligned_mediump_int32_t, 4)
 
 GLM_ALIGNED_TYPEDEF (mediump_int64_t, aligned_mediump_int64_t, 8)
 
 GLM_ALIGNED_TYPEDEF (mediump_i8, aligned_mediump_i8, 1)
 
 GLM_ALIGNED_TYPEDEF (mediump_i16, aligned_mediump_i16, 2)
 
 GLM_ALIGNED_TYPEDEF (mediump_i32, aligned_mediump_i32, 4)
 
 GLM_ALIGNED_TYPEDEF (mediump_i64, aligned_mediump_i64, 8)
 
 GLM_ALIGNED_TYPEDEF (highp_int8, aligned_highp_int8, 1)
 
 GLM_ALIGNED_TYPEDEF (highp_int16, aligned_highp_int16, 2)
 
 GLM_ALIGNED_TYPEDEF (highp_int32, aligned_highp_int32, 4)
 
 GLM_ALIGNED_TYPEDEF (highp_int64, aligned_highp_int64, 8)
 
 GLM_ALIGNED_TYPEDEF (highp_int8_t, aligned_highp_int8_t, 1)
 
 GLM_ALIGNED_TYPEDEF (highp_int16_t, aligned_highp_int16_t, 2)
 
 GLM_ALIGNED_TYPEDEF (highp_int32_t, aligned_highp_int32_t, 4)
 
 GLM_ALIGNED_TYPEDEF (highp_int64_t, aligned_highp_int64_t, 8)
 
 GLM_ALIGNED_TYPEDEF (highp_i8, aligned_highp_i8, 1)
 
 GLM_ALIGNED_TYPEDEF (highp_i16, aligned_highp_i16, 2)
 
 GLM_ALIGNED_TYPEDEF (highp_i32, aligned_highp_i32, 4)
 
 GLM_ALIGNED_TYPEDEF (highp_i64, aligned_highp_i64, 8)
 
 GLM_ALIGNED_TYPEDEF (int8, aligned_int8, 1)
 
 GLM_ALIGNED_TYPEDEF (int16, aligned_int16, 2)
 
 GLM_ALIGNED_TYPEDEF (int32, aligned_int32, 4)
 
 GLM_ALIGNED_TYPEDEF (int64, aligned_int64, 8)
 
 GLM_ALIGNED_TYPEDEF (int8_t, aligned_int8_t, 1)
 
 GLM_ALIGNED_TYPEDEF (int16_t, aligned_int16_t, 2)
 
 GLM_ALIGNED_TYPEDEF (int32_t, aligned_int32_t, 4)
 
 GLM_ALIGNED_TYPEDEF (int64_t, aligned_int64_t, 8)
 
 GLM_ALIGNED_TYPEDEF (i8, aligned_i8, 1)
 
 GLM_ALIGNED_TYPEDEF (i16, aligned_i16, 2)
 
 GLM_ALIGNED_TYPEDEF (i32, aligned_i32, 4)
 
 GLM_ALIGNED_TYPEDEF (i64, aligned_i64, 8)
 
 GLM_ALIGNED_TYPEDEF (ivec1, aligned_ivec1, 4)
 
 GLM_ALIGNED_TYPEDEF (ivec2, aligned_ivec2, 8)
 
 GLM_ALIGNED_TYPEDEF (ivec3, aligned_ivec3, 16)
 
 GLM_ALIGNED_TYPEDEF (ivec4, aligned_ivec4, 16)
 
 GLM_ALIGNED_TYPEDEF (i8vec1, aligned_i8vec1, 1)
 
 GLM_ALIGNED_TYPEDEF (i8vec2, aligned_i8vec2, 2)
 
 GLM_ALIGNED_TYPEDEF (i8vec3, aligned_i8vec3, 4)
 
 GLM_ALIGNED_TYPEDEF (i8vec4, aligned_i8vec4, 4)
 
 GLM_ALIGNED_TYPEDEF (i16vec1, aligned_i16vec1, 2)
 
 GLM_ALIGNED_TYPEDEF (i16vec2, aligned_i16vec2, 4)
 
 GLM_ALIGNED_TYPEDEF (i16vec3, aligned_i16vec3, 8)
 
 GLM_ALIGNED_TYPEDEF (i16vec4, aligned_i16vec4, 8)
 
 GLM_ALIGNED_TYPEDEF (i32vec1, aligned_i32vec1, 4)
 
 GLM_ALIGNED_TYPEDEF (i32vec2, aligned_i32vec2, 8)
 
 GLM_ALIGNED_TYPEDEF (i32vec3, aligned_i32vec3, 16)
 
 GLM_ALIGNED_TYPEDEF (i32vec4, aligned_i32vec4, 16)
 
 GLM_ALIGNED_TYPEDEF (i64vec1, aligned_i64vec1, 8)
 
 GLM_ALIGNED_TYPEDEF (i64vec2, aligned_i64vec2, 16)
 
 GLM_ALIGNED_TYPEDEF (i64vec3, aligned_i64vec3, 32)
 
 GLM_ALIGNED_TYPEDEF (i64vec4, aligned_i64vec4, 32)
 
 GLM_ALIGNED_TYPEDEF (lowp_uint8, aligned_lowp_uint8, 1)
 
 GLM_ALIGNED_TYPEDEF (lowp_uint16, aligned_lowp_uint16, 2)
 
 GLM_ALIGNED_TYPEDEF (lowp_uint32, aligned_lowp_uint32, 4)
 
 GLM_ALIGNED_TYPEDEF (lowp_uint64, aligned_lowp_uint64, 8)
 
 GLM_ALIGNED_TYPEDEF (lowp_uint8_t, aligned_lowp_uint8_t, 1)
 
 GLM_ALIGNED_TYPEDEF (lowp_uint16_t, aligned_lowp_uint16_t, 2)
 
 GLM_ALIGNED_TYPEDEF (lowp_uint32_t, aligned_lowp_uint32_t, 4)
 
 GLM_ALIGNED_TYPEDEF (lowp_uint64_t, aligned_lowp_uint64_t, 8)
 
 GLM_ALIGNED_TYPEDEF (lowp_u8, aligned_lowp_u8, 1)
 
 GLM_ALIGNED_TYPEDEF (lowp_u16, aligned_lowp_u16, 2)
 
 GLM_ALIGNED_TYPEDEF (lowp_u32, aligned_lowp_u32, 4)
 
 GLM_ALIGNED_TYPEDEF (lowp_u64, aligned_lowp_u64, 8)
 
 GLM_ALIGNED_TYPEDEF (mediump_uint8, aligned_mediump_uint8, 1)
 
 GLM_ALIGNED_TYPEDEF (mediump_uint16, aligned_mediump_uint16, 2)
 
 GLM_ALIGNED_TYPEDEF (mediump_uint32, aligned_mediump_uint32, 4)
 
 GLM_ALIGNED_TYPEDEF (mediump_uint64, aligned_mediump_uint64, 8)
 
 GLM_ALIGNED_TYPEDEF (mediump_uint8_t, aligned_mediump_uint8_t, 1)
 
 GLM_ALIGNED_TYPEDEF (mediump_uint16_t, aligned_mediump_uint16_t, 2)
 
 GLM_ALIGNED_TYPEDEF (mediump_uint32_t, aligned_mediump_uint32_t, 4)
 
 GLM_ALIGNED_TYPEDEF (mediump_uint64_t, aligned_mediump_uint64_t, 8)
 
 GLM_ALIGNED_TYPEDEF (mediump_u8, aligned_mediump_u8, 1)
 
 GLM_ALIGNED_TYPEDEF (mediump_u16, aligned_mediump_u16, 2)
 
 GLM_ALIGNED_TYPEDEF (mediump_u32, aligned_mediump_u32, 4)
 
 GLM_ALIGNED_TYPEDEF (mediump_u64, aligned_mediump_u64, 8)
 
 GLM_ALIGNED_TYPEDEF (highp_uint8, aligned_highp_uint8, 1)
 
 GLM_ALIGNED_TYPEDEF (highp_uint16, aligned_highp_uint16, 2)
 
 GLM_ALIGNED_TYPEDEF (highp_uint32, aligned_highp_uint32, 4)
 
 GLM_ALIGNED_TYPEDEF (highp_uint64, aligned_highp_uint64, 8)
 
 GLM_ALIGNED_TYPEDEF (highp_uint8_t, aligned_highp_uint8_t, 1)
 
 GLM_ALIGNED_TYPEDEF (highp_uint16_t, aligned_highp_uint16_t, 2)
 
 GLM_ALIGNED_TYPEDEF (highp_uint32_t, aligned_highp_uint32_t, 4)
 
 GLM_ALIGNED_TYPEDEF (highp_uint64_t, aligned_highp_uint64_t, 8)
 
 GLM_ALIGNED_TYPEDEF (highp_u8, aligned_highp_u8, 1)
 
 GLM_ALIGNED_TYPEDEF (highp_u16, aligned_highp_u16, 2)
 
 GLM_ALIGNED_TYPEDEF (highp_u32, aligned_highp_u32, 4)
 
 GLM_ALIGNED_TYPEDEF (highp_u64, aligned_highp_u64, 8)
 
 GLM_ALIGNED_TYPEDEF (uint8, aligned_uint8, 1)
 
 GLM_ALIGNED_TYPEDEF (uint16, aligned_uint16, 2)
 
 GLM_ALIGNED_TYPEDEF (uint32, aligned_uint32, 4)
 
 GLM_ALIGNED_TYPEDEF (uint64, aligned_uint64, 8)
 
 GLM_ALIGNED_TYPEDEF (uint8_t, aligned_uint8_t, 1)
 
 GLM_ALIGNED_TYPEDEF (uint16_t, aligned_uint16_t, 2)
 
 GLM_ALIGNED_TYPEDEF (uint32_t, aligned_uint32_t, 4)
 
 GLM_ALIGNED_TYPEDEF (uint64_t, aligned_uint64_t, 8)
 
 GLM_ALIGNED_TYPEDEF (u8, aligned_u8, 1)
 
 GLM_ALIGNED_TYPEDEF (u16, aligned_u16, 2)
 
 GLM_ALIGNED_TYPEDEF (u32, aligned_u32, 4)
 
 GLM_ALIGNED_TYPEDEF (u64, aligned_u64, 8)
 
 GLM_ALIGNED_TYPEDEF (uvec1, aligned_uvec1, 4)
 
 GLM_ALIGNED_TYPEDEF (uvec2, aligned_uvec2, 8)
 
 GLM_ALIGNED_TYPEDEF (uvec3, aligned_uvec3, 16)
 
 GLM_ALIGNED_TYPEDEF (uvec4, aligned_uvec4, 16)
 
 GLM_ALIGNED_TYPEDEF (u8vec1, aligned_u8vec1, 1)
 
 GLM_ALIGNED_TYPEDEF (u8vec2, aligned_u8vec2, 2)
 
 GLM_ALIGNED_TYPEDEF (u8vec3, aligned_u8vec3, 4)
 
 GLM_ALIGNED_TYPEDEF (u8vec4, aligned_u8vec4, 4)
 
 GLM_ALIGNED_TYPEDEF (u16vec1, aligned_u16vec1, 2)
 
 GLM_ALIGNED_TYPEDEF (u16vec2, aligned_u16vec2, 4)
 
 GLM_ALIGNED_TYPEDEF (u16vec3, aligned_u16vec3, 8)
 
 GLM_ALIGNED_TYPEDEF (u16vec4, aligned_u16vec4, 8)
 
 GLM_ALIGNED_TYPEDEF (u32vec1, aligned_u32vec1, 4)
 
 GLM_ALIGNED_TYPEDEF (u32vec2, aligned_u32vec2, 8)
 
 GLM_ALIGNED_TYPEDEF (u32vec3, aligned_u32vec3, 16)
 
 GLM_ALIGNED_TYPEDEF (u32vec4, aligned_u32vec4, 16)
 
 GLM_ALIGNED_TYPEDEF (u64vec1, aligned_u64vec1, 8)
 
 GLM_ALIGNED_TYPEDEF (u64vec2, aligned_u64vec2, 16)
 
 GLM_ALIGNED_TYPEDEF (u64vec3, aligned_u64vec3, 32)
 
 GLM_ALIGNED_TYPEDEF (u64vec4, aligned_u64vec4, 32)
 
 GLM_ALIGNED_TYPEDEF (float32, aligned_float32, 4)
 
 GLM_ALIGNED_TYPEDEF (float64, aligned_float64, 8)
 
 GLM_ALIGNED_TYPEDEF (float32_t, aligned_float32_t, 4)
 
 GLM_ALIGNED_TYPEDEF (float64_t, aligned_float64_t, 8)
 
 GLM_ALIGNED_TYPEDEF (float32, aligned_f32, 4)
 
 GLM_ALIGNED_TYPEDEF (float64, aligned_f64, 8)
 
 GLM_ALIGNED_TYPEDEF (vec1, aligned_vec1, 4)
 
 GLM_ALIGNED_TYPEDEF (vec2, aligned_vec2, 8)
 
 GLM_ALIGNED_TYPEDEF (vec3, aligned_vec3, 16)
 
 GLM_ALIGNED_TYPEDEF (vec4, aligned_vec4, 16)
 
 GLM_ALIGNED_TYPEDEF (fvec1, aligned_fvec1, 4)
 
 GLM_ALIGNED_TYPEDEF (fvec2, aligned_fvec2, 8)
 
 GLM_ALIGNED_TYPEDEF (fvec3, aligned_fvec3, 16)
 
 GLM_ALIGNED_TYPEDEF (fvec4, aligned_fvec4, 16)
 
 GLM_ALIGNED_TYPEDEF (f32vec1, aligned_f32vec1, 4)
 
 GLM_ALIGNED_TYPEDEF (f32vec2, aligned_f32vec2, 8)
 
 GLM_ALIGNED_TYPEDEF (f32vec3, aligned_f32vec3, 16)
 
 GLM_ALIGNED_TYPEDEF (f32vec4, aligned_f32vec4, 16)
 
 GLM_ALIGNED_TYPEDEF (dvec1, aligned_dvec1, 8)
 
 GLM_ALIGNED_TYPEDEF (dvec2, aligned_dvec2, 16)
 
 GLM_ALIGNED_TYPEDEF (dvec3, aligned_dvec3, 32)
 
 GLM_ALIGNED_TYPEDEF (dvec4, aligned_dvec4, 32)
 
 GLM_ALIGNED_TYPEDEF (f64vec1, aligned_f64vec1, 8)
 
 GLM_ALIGNED_TYPEDEF (f64vec2, aligned_f64vec2, 16)
 
 GLM_ALIGNED_TYPEDEF (f64vec3, aligned_f64vec3, 32)
 
 GLM_ALIGNED_TYPEDEF (f64vec4, aligned_f64vec4, 32)
 
 GLM_ALIGNED_TYPEDEF (mat2, aligned_mat2, 16)
 
 GLM_ALIGNED_TYPEDEF (mat3, aligned_mat3, 16)
 
 GLM_ALIGNED_TYPEDEF (mat4, aligned_mat4, 16)
 
 GLM_ALIGNED_TYPEDEF (mat2x2, aligned_mat2x2, 16)
 
 GLM_ALIGNED_TYPEDEF (mat3x3, aligned_mat3x3, 16)
 
 GLM_ALIGNED_TYPEDEF (mat4x4, aligned_mat4x4, 16)
 
 GLM_ALIGNED_TYPEDEF (fmat2x2, aligned_fmat2, 16)
 
 GLM_ALIGNED_TYPEDEF (fmat3x3, aligned_fmat3, 16)
 
 GLM_ALIGNED_TYPEDEF (fmat4x4, aligned_fmat4, 16)
 
 GLM_ALIGNED_TYPEDEF (fmat2x2, aligned_fmat2x2, 16)
 
 GLM_ALIGNED_TYPEDEF (fmat2x3, aligned_fmat2x3, 16)
 
 GLM_ALIGNED_TYPEDEF (fmat2x4, aligned_fmat2x4, 16)
 
 GLM_ALIGNED_TYPEDEF (fmat3x2, aligned_fmat3x2, 16)
 
 GLM_ALIGNED_TYPEDEF (fmat3x3, aligned_fmat3x3, 16)
 
 GLM_ALIGNED_TYPEDEF (fmat3x4, aligned_fmat3x4, 16)
 
 GLM_ALIGNED_TYPEDEF (fmat4x2, aligned_fmat4x2, 16)
 
 GLM_ALIGNED_TYPEDEF (fmat4x3, aligned_fmat4x3, 16)
 
 GLM_ALIGNED_TYPEDEF (fmat4x4, aligned_fmat4x4, 16)
 
 GLM_ALIGNED_TYPEDEF (f32mat2x2, aligned_f32mat2, 16)
 
 GLM_ALIGNED_TYPEDEF (f32mat3x3, aligned_f32mat3, 16)
 
 GLM_ALIGNED_TYPEDEF (f32mat4x4, aligned_f32mat4, 16)
 
 GLM_ALIGNED_TYPEDEF (f32mat2x2, aligned_f32mat2x2, 16)
 
 GLM_ALIGNED_TYPEDEF (f32mat2x3, aligned_f32mat2x3, 16)
 
 GLM_ALIGNED_TYPEDEF (f32mat2x4, aligned_f32mat2x4, 16)
 
 GLM_ALIGNED_TYPEDEF (f32mat3x2, aligned_f32mat3x2, 16)
 
 GLM_ALIGNED_TYPEDEF (f32mat3x3, aligned_f32mat3x3, 16)
 
 GLM_ALIGNED_TYPEDEF (f32mat3x4, aligned_f32mat3x4, 16)
 
 GLM_ALIGNED_TYPEDEF (f32mat4x2, aligned_f32mat4x2, 16)
 
 GLM_ALIGNED_TYPEDEF (f32mat4x3, aligned_f32mat4x3, 16)
 
 GLM_ALIGNED_TYPEDEF (f32mat4x4, aligned_f32mat4x4, 16)
 
 GLM_ALIGNED_TYPEDEF (f64mat2x2, aligned_f64mat2, 32)
 
 GLM_ALIGNED_TYPEDEF (f64mat3x3, aligned_f64mat3, 32)
 
 GLM_ALIGNED_TYPEDEF (f64mat4x4, aligned_f64mat4, 32)
 
 GLM_ALIGNED_TYPEDEF (f64mat2x2, aligned_f64mat2x2, 32)
 
 GLM_ALIGNED_TYPEDEF (f64mat2x3, aligned_f64mat2x3, 32)
 
 GLM_ALIGNED_TYPEDEF (f64mat2x4, aligned_f64mat2x4, 32)
 
 GLM_ALIGNED_TYPEDEF (f64mat3x2, aligned_f64mat3x2, 32)
 
 GLM_ALIGNED_TYPEDEF (f64mat3x3, aligned_f64mat3x3, 32)
 
 GLM_ALIGNED_TYPEDEF (f64mat3x4, aligned_f64mat3x4, 32)
 
 GLM_ALIGNED_TYPEDEF (f64mat4x2, aligned_f64mat4x2, 32)
 
 GLM_ALIGNED_TYPEDEF (f64mat4x3, aligned_f64mat4x3, 32)
 
 GLM_ALIGNED_TYPEDEF (f64mat4x4, aligned_f64mat4x4, 32)
 
 GLM_ALIGNED_TYPEDEF (quat, aligned_quat, 16)
 
 GLM_ALIGNED_TYPEDEF (fquat, aligned_fquat, 16)
 
 GLM_ALIGNED_TYPEDEF (dquat, aligned_dquat, 32)
 
 GLM_ALIGNED_TYPEDEF (f32quat, aligned_f32quat, 16)
 
 GLM_ALIGNED_TYPEDEF (f64quat, aligned_f64quat, 32)
 

Detailed Description

OpenGL Mathematics (glm.g-truc.net)

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_string_cast

-
Date
2008-04-26 / 2011-06-07
+

GLM_GTX_type_aligned

+
Date
2014-11-23 / 2014-12-23
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
+
See also
GLM Core (dependence)
-gtc_half_float (dependence)
-
-GLM_GTX_integer (dependence)
-
-GLM_GTX_quaternion (dependence)
+GLM_GTC_quaternion (dependence)
-

Definition in file string_cast.hpp.

+

Definition in file type_aligned.hpp.

diff --git a/doc/api/a00114_source.html b/doc/api/a00114_source.html index 51b49154..2fbcd11e 100644 --- a/doc/api/a00114_source.html +++ b/doc/api/a00114_source.html @@ -3,8 +3,8 @@ - -GLM: string_cast.hpp Source File + +0.9.6: type_aligned.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,46 +41,714 @@
-
string_cast.hpp
+
type_aligned.hpp
Go to the documentation of this file.
1 
-
41 #ifndef GLM_GTX_string_cast
-
42 #define GLM_GTX_string_cast
-
43 
-
44 // Dependency:
-
45 #include "../glm.hpp"
-
46 #include "../gtx/integer.hpp"
-
47 #include "../gtx/quaternion.hpp"
-
48 #include <string>
+
45 #pragma once
+
46 
+
47 // Dependency:
+
48 #include "../gtc/type_precision.hpp"
49 
50 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
51 # pragma message("GLM: GLM_GTX_string_cast extension included")
-
52 #endif
-
53 
-
54 namespace glm
+
51 # pragma message("GLM: GLM_GTX_type_aligned extension included")
+
52 #endif
+
53 
+
54 namespace glm
55 {
+
57  // Signed int vector types
58 
-
61  template <typename genType>
-
62  std::string to_string(genType const & x);
-
63 
-
65 }//namespace glm
-
66 
-
67 #include "string_cast.inl"
-
68 
-
69 #endif//GLM_GTX_string_cast
-
std::string to_string(genType const &x)
Create a string from a GLM type value.
+
61 
+
64  GLM_ALIGNED_TYPEDEF(lowp_int8, aligned_lowp_int8, 1);
+
65 
+
68  GLM_ALIGNED_TYPEDEF(lowp_int16, aligned_lowp_int16, 2);
+
69 
+
72  GLM_ALIGNED_TYPEDEF(lowp_int32, aligned_lowp_int32, 4);
+
73 
+
76  GLM_ALIGNED_TYPEDEF(lowp_int64, aligned_lowp_int64, 8);
+
77 
+
78 
+
81  GLM_ALIGNED_TYPEDEF(lowp_int8_t, aligned_lowp_int8_t, 1);
+
82 
+
85  GLM_ALIGNED_TYPEDEF(lowp_int16_t, aligned_lowp_int16_t, 2);
+
86 
+
89  GLM_ALIGNED_TYPEDEF(lowp_int32_t, aligned_lowp_int32_t, 4);
+
90 
+
93  GLM_ALIGNED_TYPEDEF(lowp_int64_t, aligned_lowp_int64_t, 8);
+
94 
+
95 
+
98  GLM_ALIGNED_TYPEDEF(lowp_i8, aligned_lowp_i8, 1);
+
99 
+
102  GLM_ALIGNED_TYPEDEF(lowp_i16, aligned_lowp_i16, 2);
+
103 
+
106  GLM_ALIGNED_TYPEDEF(lowp_i32, aligned_lowp_i32, 4);
+
107 
+
110  GLM_ALIGNED_TYPEDEF(lowp_i64, aligned_lowp_i64, 8);
+
111 
+
112 
+
115  GLM_ALIGNED_TYPEDEF(mediump_int8, aligned_mediump_int8, 1);
+
116 
+
119  GLM_ALIGNED_TYPEDEF(mediump_int16, aligned_mediump_int16, 2);
+
120 
+
123  GLM_ALIGNED_TYPEDEF(mediump_int32, aligned_mediump_int32, 4);
+
124 
+
127  GLM_ALIGNED_TYPEDEF(mediump_int64, aligned_mediump_int64, 8);
+
128 
+
129 
+
132  GLM_ALIGNED_TYPEDEF(mediump_int8_t, aligned_mediump_int8_t, 1);
+
133 
+
136  GLM_ALIGNED_TYPEDEF(mediump_int16_t, aligned_mediump_int16_t, 2);
+
137 
+
140  GLM_ALIGNED_TYPEDEF(mediump_int32_t, aligned_mediump_int32_t, 4);
+
141 
+
144  GLM_ALIGNED_TYPEDEF(mediump_int64_t, aligned_mediump_int64_t, 8);
+
145 
+
146 
+
149  GLM_ALIGNED_TYPEDEF(mediump_i8, aligned_mediump_i8, 1);
+
150 
+
153  GLM_ALIGNED_TYPEDEF(mediump_i16, aligned_mediump_i16, 2);
+
154 
+
157  GLM_ALIGNED_TYPEDEF(mediump_i32, aligned_mediump_i32, 4);
+
158 
+
161  GLM_ALIGNED_TYPEDEF(mediump_i64, aligned_mediump_i64, 8);
+
162 
+
163 
+
166  GLM_ALIGNED_TYPEDEF(highp_int8, aligned_highp_int8, 1);
+
167 
+
170  GLM_ALIGNED_TYPEDEF(highp_int16, aligned_highp_int16, 2);
+
171 
+
174  GLM_ALIGNED_TYPEDEF(highp_int32, aligned_highp_int32, 4);
+
175 
+
178  GLM_ALIGNED_TYPEDEF(highp_int64, aligned_highp_int64, 8);
+
179 
+
180 
+
183  GLM_ALIGNED_TYPEDEF(highp_int8_t, aligned_highp_int8_t, 1);
+
184 
+
187  GLM_ALIGNED_TYPEDEF(highp_int16_t, aligned_highp_int16_t, 2);
+
188 
+
191  GLM_ALIGNED_TYPEDEF(highp_int32_t, aligned_highp_int32_t, 4);
+
192 
+
195  GLM_ALIGNED_TYPEDEF(highp_int64_t, aligned_highp_int64_t, 8);
+
196 
+
197 
+
200  GLM_ALIGNED_TYPEDEF(highp_i8, aligned_highp_i8, 1);
+
201 
+
204  GLM_ALIGNED_TYPEDEF(highp_i16, aligned_highp_i16, 2);
+
205 
+
208  GLM_ALIGNED_TYPEDEF(highp_i32, aligned_highp_i32, 4);
+
209 
+
212  GLM_ALIGNED_TYPEDEF(highp_i64, aligned_highp_i64, 8);
+
213 
+
214 
+
217  GLM_ALIGNED_TYPEDEF(int8, aligned_int8, 1);
+
218 
+
221  GLM_ALIGNED_TYPEDEF(int16, aligned_int16, 2);
+
222 
+
225  GLM_ALIGNED_TYPEDEF(int32, aligned_int32, 4);
+
226 
+
229  GLM_ALIGNED_TYPEDEF(int64, aligned_int64, 8);
+
230 
+
231 
+
234  GLM_ALIGNED_TYPEDEF(int8_t, aligned_int8_t, 1);
+
235 
+
238  GLM_ALIGNED_TYPEDEF(int16_t, aligned_int16_t, 2);
+
239 
+
242  GLM_ALIGNED_TYPEDEF(int32_t, aligned_int32_t, 4);
+
243 
+
246  GLM_ALIGNED_TYPEDEF(int64_t, aligned_int64_t, 8);
+
247 
+
248 
+
251  GLM_ALIGNED_TYPEDEF(i8, aligned_i8, 1);
+
252 
+
255  GLM_ALIGNED_TYPEDEF(i16, aligned_i16, 2);
+
256 
+
259  GLM_ALIGNED_TYPEDEF(i32, aligned_i32, 4);
+
260 
+
263  GLM_ALIGNED_TYPEDEF(i64, aligned_i64, 8);
+
264 
+
265 
+
268  GLM_ALIGNED_TYPEDEF(ivec1, aligned_ivec1, 4);
+
269 
+
272  GLM_ALIGNED_TYPEDEF(ivec2, aligned_ivec2, 8);
+
273 
+
276  GLM_ALIGNED_TYPEDEF(ivec3, aligned_ivec3, 16);
+
277 
+
280  GLM_ALIGNED_TYPEDEF(ivec4, aligned_ivec4, 16);
+
281 
+
282 
+
285  GLM_ALIGNED_TYPEDEF(i8vec1, aligned_i8vec1, 1);
+
286 
+
289  GLM_ALIGNED_TYPEDEF(i8vec2, aligned_i8vec2, 2);
+
290 
+
293  GLM_ALIGNED_TYPEDEF(i8vec3, aligned_i8vec3, 4);
+
294 
+
297  GLM_ALIGNED_TYPEDEF(i8vec4, aligned_i8vec4, 4);
+
298 
+
299 
+
302  GLM_ALIGNED_TYPEDEF(i16vec1, aligned_i16vec1, 2);
+
303 
+
306  GLM_ALIGNED_TYPEDEF(i16vec2, aligned_i16vec2, 4);
+
307 
+
310  GLM_ALIGNED_TYPEDEF(i16vec3, aligned_i16vec3, 8);
+
311 
+
314  GLM_ALIGNED_TYPEDEF(i16vec4, aligned_i16vec4, 8);
+
315 
+
316 
+
319  GLM_ALIGNED_TYPEDEF(i32vec1, aligned_i32vec1, 4);
+
320 
+
323  GLM_ALIGNED_TYPEDEF(i32vec2, aligned_i32vec2, 8);
+
324 
+
327  GLM_ALIGNED_TYPEDEF(i32vec3, aligned_i32vec3, 16);
+
328 
+
331  GLM_ALIGNED_TYPEDEF(i32vec4, aligned_i32vec4, 16);
+
332 
+
333 
+
336  GLM_ALIGNED_TYPEDEF(i64vec1, aligned_i64vec1, 8);
+
337 
+
340  GLM_ALIGNED_TYPEDEF(i64vec2, aligned_i64vec2, 16);
+
341 
+
344  GLM_ALIGNED_TYPEDEF(i64vec3, aligned_i64vec3, 32);
+
345 
+
348  GLM_ALIGNED_TYPEDEF(i64vec4, aligned_i64vec4, 32);
+
349 
+
350 
+
352  // Unsigned int vector types
+
353 
+
356  GLM_ALIGNED_TYPEDEF(lowp_uint8, aligned_lowp_uint8, 1);
+
357 
+
360  GLM_ALIGNED_TYPEDEF(lowp_uint16, aligned_lowp_uint16, 2);
+
361 
+
364  GLM_ALIGNED_TYPEDEF(lowp_uint32, aligned_lowp_uint32, 4);
+
365 
+
368  GLM_ALIGNED_TYPEDEF(lowp_uint64, aligned_lowp_uint64, 8);
+
369 
+
370 
+
373  GLM_ALIGNED_TYPEDEF(lowp_uint8_t, aligned_lowp_uint8_t, 1);
+
374 
+
377  GLM_ALIGNED_TYPEDEF(lowp_uint16_t, aligned_lowp_uint16_t, 2);
+
378 
+
381  GLM_ALIGNED_TYPEDEF(lowp_uint32_t, aligned_lowp_uint32_t, 4);
+
382 
+
385  GLM_ALIGNED_TYPEDEF(lowp_uint64_t, aligned_lowp_uint64_t, 8);
+
386 
+
387 
+
390  GLM_ALIGNED_TYPEDEF(lowp_u8, aligned_lowp_u8, 1);
+
391 
+
394  GLM_ALIGNED_TYPEDEF(lowp_u16, aligned_lowp_u16, 2);
+
395 
+
398  GLM_ALIGNED_TYPEDEF(lowp_u32, aligned_lowp_u32, 4);
+
399 
+
402  GLM_ALIGNED_TYPEDEF(lowp_u64, aligned_lowp_u64, 8);
+
403 
+
404 
+
407  GLM_ALIGNED_TYPEDEF(mediump_uint8, aligned_mediump_uint8, 1);
+
408 
+
411  GLM_ALIGNED_TYPEDEF(mediump_uint16, aligned_mediump_uint16, 2);
+
412 
+
415  GLM_ALIGNED_TYPEDEF(mediump_uint32, aligned_mediump_uint32, 4);
+
416 
+
419  GLM_ALIGNED_TYPEDEF(mediump_uint64, aligned_mediump_uint64, 8);
+
420 
+
421 
+
424  GLM_ALIGNED_TYPEDEF(mediump_uint8_t, aligned_mediump_uint8_t, 1);
+
425 
+
428  GLM_ALIGNED_TYPEDEF(mediump_uint16_t, aligned_mediump_uint16_t, 2);
+
429 
+
432  GLM_ALIGNED_TYPEDEF(mediump_uint32_t, aligned_mediump_uint32_t, 4);
+
433 
+
436  GLM_ALIGNED_TYPEDEF(mediump_uint64_t, aligned_mediump_uint64_t, 8);
+
437 
+
438 
+
441  GLM_ALIGNED_TYPEDEF(mediump_u8, aligned_mediump_u8, 1);
+
442 
+
445  GLM_ALIGNED_TYPEDEF(mediump_u16, aligned_mediump_u16, 2);
+
446 
+
449  GLM_ALIGNED_TYPEDEF(mediump_u32, aligned_mediump_u32, 4);
+
450 
+
453  GLM_ALIGNED_TYPEDEF(mediump_u64, aligned_mediump_u64, 8);
+
454 
+
455 
+
458  GLM_ALIGNED_TYPEDEF(highp_uint8, aligned_highp_uint8, 1);
+
459 
+
462  GLM_ALIGNED_TYPEDEF(highp_uint16, aligned_highp_uint16, 2);
+
463 
+
466  GLM_ALIGNED_TYPEDEF(highp_uint32, aligned_highp_uint32, 4);
+
467 
+
470  GLM_ALIGNED_TYPEDEF(highp_uint64, aligned_highp_uint64, 8);
+
471 
+
472 
+
475  GLM_ALIGNED_TYPEDEF(highp_uint8_t, aligned_highp_uint8_t, 1);
+
476 
+
479  GLM_ALIGNED_TYPEDEF(highp_uint16_t, aligned_highp_uint16_t, 2);
+
480 
+
483  GLM_ALIGNED_TYPEDEF(highp_uint32_t, aligned_highp_uint32_t, 4);
+
484 
+
487  GLM_ALIGNED_TYPEDEF(highp_uint64_t, aligned_highp_uint64_t, 8);
+
488 
+
489 
+
492  GLM_ALIGNED_TYPEDEF(highp_u8, aligned_highp_u8, 1);
+
493 
+
496  GLM_ALIGNED_TYPEDEF(highp_u16, aligned_highp_u16, 2);
+
497 
+
500  GLM_ALIGNED_TYPEDEF(highp_u32, aligned_highp_u32, 4);
+
501 
+
504  GLM_ALIGNED_TYPEDEF(highp_u64, aligned_highp_u64, 8);
+
505 
+
506 
+
509  GLM_ALIGNED_TYPEDEF(uint8, aligned_uint8, 1);
+
510 
+
513  GLM_ALIGNED_TYPEDEF(uint16, aligned_uint16, 2);
+
514 
+
517  GLM_ALIGNED_TYPEDEF(uint32, aligned_uint32, 4);
+
518 
+
521  GLM_ALIGNED_TYPEDEF(uint64, aligned_uint64, 8);
+
522 
+
523 
+
526  GLM_ALIGNED_TYPEDEF(uint8_t, aligned_uint8_t, 1);
+
527 
+
530  GLM_ALIGNED_TYPEDEF(uint16_t, aligned_uint16_t, 2);
+
531 
+
534  GLM_ALIGNED_TYPEDEF(uint32_t, aligned_uint32_t, 4);
+
535 
+
538  GLM_ALIGNED_TYPEDEF(uint64_t, aligned_uint64_t, 8);
+
539 
+
540 
+
543  GLM_ALIGNED_TYPEDEF(u8, aligned_u8, 1);
+
544 
+
547  GLM_ALIGNED_TYPEDEF(u16, aligned_u16, 2);
+
548 
+
551  GLM_ALIGNED_TYPEDEF(u32, aligned_u32, 4);
+
552 
+
555  GLM_ALIGNED_TYPEDEF(u64, aligned_u64, 8);
+
556 
+
557 
+
560  GLM_ALIGNED_TYPEDEF(uvec1, aligned_uvec1, 4);
+
561 
+
564  GLM_ALIGNED_TYPEDEF(uvec2, aligned_uvec2, 8);
+
565 
+
568  GLM_ALIGNED_TYPEDEF(uvec3, aligned_uvec3, 16);
+
569 
+
572  GLM_ALIGNED_TYPEDEF(uvec4, aligned_uvec4, 16);
+
573 
+
574 
+
577  GLM_ALIGNED_TYPEDEF(u8vec1, aligned_u8vec1, 1);
+
578 
+
581  GLM_ALIGNED_TYPEDEF(u8vec2, aligned_u8vec2, 2);
+
582 
+
585  GLM_ALIGNED_TYPEDEF(u8vec3, aligned_u8vec3, 4);
+
586 
+
589  GLM_ALIGNED_TYPEDEF(u8vec4, aligned_u8vec4, 4);
+
590 
+
591 
+
594  GLM_ALIGNED_TYPEDEF(u16vec1, aligned_u16vec1, 2);
+
595 
+
598  GLM_ALIGNED_TYPEDEF(u16vec2, aligned_u16vec2, 4);
+
599 
+
602  GLM_ALIGNED_TYPEDEF(u16vec3, aligned_u16vec3, 8);
+
603 
+
606  GLM_ALIGNED_TYPEDEF(u16vec4, aligned_u16vec4, 8);
+
607 
+
608 
+
611  GLM_ALIGNED_TYPEDEF(u32vec1, aligned_u32vec1, 4);
+
612 
+
615  GLM_ALIGNED_TYPEDEF(u32vec2, aligned_u32vec2, 8);
+
616 
+
619  GLM_ALIGNED_TYPEDEF(u32vec3, aligned_u32vec3, 16);
+
620 
+
623  GLM_ALIGNED_TYPEDEF(u32vec4, aligned_u32vec4, 16);
+
624 
+
625 
+
628  GLM_ALIGNED_TYPEDEF(u64vec1, aligned_u64vec1, 8);
+
629 
+
632  GLM_ALIGNED_TYPEDEF(u64vec2, aligned_u64vec2, 16);
+
633 
+
636  GLM_ALIGNED_TYPEDEF(u64vec3, aligned_u64vec3, 32);
+
637 
+
640  GLM_ALIGNED_TYPEDEF(u64vec4, aligned_u64vec4, 32);
+
641 
+
642 
+
644  // Float vector types
+
645 
+
648  GLM_ALIGNED_TYPEDEF(float32, aligned_float32, 4);
+
649 
+
652  GLM_ALIGNED_TYPEDEF(float64, aligned_float64, 8);
+
653 
+
654 
+
657  GLM_ALIGNED_TYPEDEF(float32_t, aligned_float32_t, 4);
+
658 
+
661  GLM_ALIGNED_TYPEDEF(float64_t, aligned_float64_t, 8);
+
662 
+
663 
+
666  GLM_ALIGNED_TYPEDEF(float32, aligned_f32, 4);
+
667 
+
670  GLM_ALIGNED_TYPEDEF(float64, aligned_f64, 8);
+
671 
+
672 
+
675  GLM_ALIGNED_TYPEDEF(vec1, aligned_vec1, 4);
+
676 
+
679  GLM_ALIGNED_TYPEDEF(vec2, aligned_vec2, 8);
+
680 
+
683  GLM_ALIGNED_TYPEDEF(vec3, aligned_vec3, 16);
+
684 
+
687  GLM_ALIGNED_TYPEDEF(vec4, aligned_vec4, 16);
+
688 
+
689 
+
692  GLM_ALIGNED_TYPEDEF(fvec1, aligned_fvec1, 4);
+
693 
+
696  GLM_ALIGNED_TYPEDEF(fvec2, aligned_fvec2, 8);
+
697 
+
700  GLM_ALIGNED_TYPEDEF(fvec3, aligned_fvec3, 16);
+
701 
+
704  GLM_ALIGNED_TYPEDEF(fvec4, aligned_fvec4, 16);
+
705 
+
706 
+
709  GLM_ALIGNED_TYPEDEF(f32vec1, aligned_f32vec1, 4);
+
710 
+
713  GLM_ALIGNED_TYPEDEF(f32vec2, aligned_f32vec2, 8);
+
714 
+
717  GLM_ALIGNED_TYPEDEF(f32vec3, aligned_f32vec3, 16);
+
718 
+
721  GLM_ALIGNED_TYPEDEF(f32vec4, aligned_f32vec4, 16);
+
722 
+
723 
+
726  GLM_ALIGNED_TYPEDEF(dvec1, aligned_dvec1, 8);
+
727 
+
730  GLM_ALIGNED_TYPEDEF(dvec2, aligned_dvec2, 16);
+
731 
+
734  GLM_ALIGNED_TYPEDEF(dvec3, aligned_dvec3, 32);
+
735 
+
738  GLM_ALIGNED_TYPEDEF(dvec4, aligned_dvec4, 32);
+
739 
+
740 
+
743  GLM_ALIGNED_TYPEDEF(f64vec1, aligned_f64vec1, 8);
+
744 
+
747  GLM_ALIGNED_TYPEDEF(f64vec2, aligned_f64vec2, 16);
+
748 
+
751  GLM_ALIGNED_TYPEDEF(f64vec3, aligned_f64vec3, 32);
+
752 
+
755  GLM_ALIGNED_TYPEDEF(f64vec4, aligned_f64vec4, 32);
+
756 
+
757 
+
759  // Float matrix types
+
760 
+
763  //typedef detail::tmat1<f32> mat1;
+
764 
+
767  GLM_ALIGNED_TYPEDEF(mat2, aligned_mat2, 16);
+
768 
+
771  GLM_ALIGNED_TYPEDEF(mat3, aligned_mat3, 16);
+
772 
+
775  GLM_ALIGNED_TYPEDEF(mat4, aligned_mat4, 16);
+
776 
+
777 
+
780  //typedef detail::tmat1x1<f32> mat1;
+
781 
+
784  GLM_ALIGNED_TYPEDEF(mat2x2, aligned_mat2x2, 16);
+
785 
+
788  GLM_ALIGNED_TYPEDEF(mat3x3, aligned_mat3x3, 16);
+
789 
+
792  GLM_ALIGNED_TYPEDEF(mat4x4, aligned_mat4x4, 16);
+
793 
+
794 
+
797  //typedef detail::tmat1x1<f32> fmat1;
+
798 
+
801  GLM_ALIGNED_TYPEDEF(fmat2x2, aligned_fmat2, 16);
+
802 
+
805  GLM_ALIGNED_TYPEDEF(fmat3x3, aligned_fmat3, 16);
+
806 
+
809  GLM_ALIGNED_TYPEDEF(fmat4x4, aligned_fmat4, 16);
+
810 
+
811 
+
814  //typedef f32 fmat1x1;
+
815 
+
818  GLM_ALIGNED_TYPEDEF(fmat2x2, aligned_fmat2x2, 16);
+
819 
+
822  GLM_ALIGNED_TYPEDEF(fmat2x3, aligned_fmat2x3, 16);
+
823 
+
826  GLM_ALIGNED_TYPEDEF(fmat2x4, aligned_fmat2x4, 16);
+
827 
+
830  GLM_ALIGNED_TYPEDEF(fmat3x2, aligned_fmat3x2, 16);
+
831 
+
834  GLM_ALIGNED_TYPEDEF(fmat3x3, aligned_fmat3x3, 16);
+
835 
+
838  GLM_ALIGNED_TYPEDEF(fmat3x4, aligned_fmat3x4, 16);
+
839 
+
842  GLM_ALIGNED_TYPEDEF(fmat4x2, aligned_fmat4x2, 16);
+
843 
+
846  GLM_ALIGNED_TYPEDEF(fmat4x3, aligned_fmat4x3, 16);
+
847 
+
850  GLM_ALIGNED_TYPEDEF(fmat4x4, aligned_fmat4x4, 16);
+
851 
+
852 
+
855  //typedef detail::tmat1x1<f32, defaultp> f32mat1;
+
856 
+
859  GLM_ALIGNED_TYPEDEF(f32mat2x2, aligned_f32mat2, 16);
+
860 
+
863  GLM_ALIGNED_TYPEDEF(f32mat3x3, aligned_f32mat3, 16);
+
864 
+
867  GLM_ALIGNED_TYPEDEF(f32mat4x4, aligned_f32mat4, 16);
+
868 
+
869 
+
872  //typedef f32 f32mat1x1;
+
873 
+
876  GLM_ALIGNED_TYPEDEF(f32mat2x2, aligned_f32mat2x2, 16);
+
877 
+
880  GLM_ALIGNED_TYPEDEF(f32mat2x3, aligned_f32mat2x3, 16);
+
881 
+
884  GLM_ALIGNED_TYPEDEF(f32mat2x4, aligned_f32mat2x4, 16);
+
885 
+
888  GLM_ALIGNED_TYPEDEF(f32mat3x2, aligned_f32mat3x2, 16);
+
889 
+
892  GLM_ALIGNED_TYPEDEF(f32mat3x3, aligned_f32mat3x3, 16);
+
893 
+
896  GLM_ALIGNED_TYPEDEF(f32mat3x4, aligned_f32mat3x4, 16);
+
897 
+
900  GLM_ALIGNED_TYPEDEF(f32mat4x2, aligned_f32mat4x2, 16);
+
901 
+
904  GLM_ALIGNED_TYPEDEF(f32mat4x3, aligned_f32mat4x3, 16);
+
905 
+
908  GLM_ALIGNED_TYPEDEF(f32mat4x4, aligned_f32mat4x4, 16);
+
909 
+
910 
+
913  //typedef detail::tmat1x1<f64, defaultp> f64mat1;
+
914 
+
917  GLM_ALIGNED_TYPEDEF(f64mat2x2, aligned_f64mat2, 32);
+
918 
+
921  GLM_ALIGNED_TYPEDEF(f64mat3x3, aligned_f64mat3, 32);
+
922 
+
925  GLM_ALIGNED_TYPEDEF(f64mat4x4, aligned_f64mat4, 32);
+
926 
+
927 
+
930  //typedef f64 f64mat1x1;
+
931 
+
934  GLM_ALIGNED_TYPEDEF(f64mat2x2, aligned_f64mat2x2, 32);
+
935 
+
938  GLM_ALIGNED_TYPEDEF(f64mat2x3, aligned_f64mat2x3, 32);
+
939 
+
942  GLM_ALIGNED_TYPEDEF(f64mat2x4, aligned_f64mat2x4, 32);
+
943 
+
946  GLM_ALIGNED_TYPEDEF(f64mat3x2, aligned_f64mat3x2, 32);
+
947 
+
950  GLM_ALIGNED_TYPEDEF(f64mat3x3, aligned_f64mat3x3, 32);
+
951 
+
954  GLM_ALIGNED_TYPEDEF(f64mat3x4, aligned_f64mat3x4, 32);
+
955 
+
958  GLM_ALIGNED_TYPEDEF(f64mat4x2, aligned_f64mat4x2, 32);
+
959 
+
962  GLM_ALIGNED_TYPEDEF(f64mat4x3, aligned_f64mat4x3, 32);
+
963 
+
966  GLM_ALIGNED_TYPEDEF(f64mat4x4, aligned_f64mat4x4, 32);
+
967 
+
968 
+
970  // Quaternion types
+
971 
+
974  GLM_ALIGNED_TYPEDEF(quat, aligned_quat, 16);
+
975 
+
978  GLM_ALIGNED_TYPEDEF(fquat, aligned_fquat, 16);
+
979 
+
982  GLM_ALIGNED_TYPEDEF(dquat, aligned_dquat, 32);
+
983 
+
986  GLM_ALIGNED_TYPEDEF(f32quat, aligned_f32quat, 16);
+
987 
+
990  GLM_ALIGNED_TYPEDEF(f64quat, aligned_f64quat, 32);
+
991 
+
993 }//namespace glm
+
994 
+
995 #include "type_aligned.inl"
+
detail::int8 highp_int8
High precision 8 bit signed integer type.
Definition: fwd.hpp:228
+
detail::uint64 lowp_uint64
Low precision 64 bit unsigned integer type.
Definition: fwd.hpp:747
+
highp_i16vec4 i16vec4
Default precision 16 bit signed integer vector of 4 components type.
Definition: fwd.hpp:488
+
highp_f32vec2 f32vec2
Default single-precision floating-point vector of 2 components.
Definition: fwd.hpp:2433
+
detail::uint8 lowp_uint8_t
Low precision 8 bit unsigned integer type.
Definition: fwd.hpp:752
+
detail::int16 highp_i16
High precision 16 bit signed integer type.
Definition: fwd.hpp:264
+
highp_f32mat3x4 f32mat3x4
Default single-precision floating-point 3x4 matrix.
Definition: fwd.hpp:2465
+
detail::uint64 uint64_t
64 bit unsigned integer type.
Definition: fwd.hpp:921
+
highp_f32mat4x2 f32mat4x2
Default single-precision floating-point 4x2 matrix.
Definition: fwd.hpp:2469
+
highp_u16vec1 u16vec1
Default precision 16 bit unsigned integer scalar type.
Definition: fwd.hpp:1085
+
highp_f32vec1 fvec1
Default single-precision floating-point vector of 1 components.
Definition: fwd.hpp:2359
+
detail::uint16 highp_u16
Medium precision 16 bit unsigned integer type.
Definition: fwd.hpp:873
+
highp_i32vec1 i32vec1
Default precision 32 bit signed integer scalar type.
Definition: fwd.hpp:555
+
detail::int16 mediump_int16
Medium precision 16 bit signed integer type.
Definition: fwd.hpp:184
+
highp_float64_t float64_t
Default 64 bit double-precision floating-point scalar.
Definition: fwd.hpp:1533
+
detail::uint32 lowp_u32
Low precision 32 bit unsigned integer type.
Definition: fwd.hpp:777
+
highp_u64vec2 u64vec2
Default precision 64 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:1327
+
highp_i16vec2 i16vec2
Default precision 16 bit signed integer vector of 2 components type.
Definition: fwd.hpp:480
+
detail::uint32 uint32_t
32 bit unsigned integer type.
Definition: fwd.hpp:917
+
detail::int32 int32_t
32 bit signed integer type.
Definition: fwd.hpp:308
+
highp_u16vec2 u16vec2
Default precision 16 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:1089
+
highp_f32mat4x4 f32mat4x4
Default single-precision floating-point 4x4 matrix.
Definition: fwd.hpp:2477
+
highp_vec4 vec4
4 components vector of floating-point numbers.
Definition: type_vec.hpp:402
+
highp_i32vec4 i32vec4
Default precision 32 bit signed integer vector of 4 components type.
Definition: fwd.hpp:567
+
highp_f32mat3x2 fmat3x2
Default single-precision floating-point 3x2 matrix.
Definition: fwd.hpp:2387
+
detail::uint64 mediump_uint64
Medium precision 64 bit unsigned integer type.
Definition: fwd.hpp:799
+
highp_u64vec1 u64vec1
Default precision 64 bit unsigned integer scalar type.
Definition: fwd.hpp:1323
+
detail::int64 lowp_i64
Low precision 64 bit signed integer type.
Definition: fwd.hpp:176
+
detail::int32 highp_int32_t
32 bit signed integer type.
Definition: fwd.hpp:252
+
detail::int64 lowp_int64
Low precision 64 bit signed integer type.
Definition: fwd.hpp:144
+
detail::int16 lowp_int16_t
Low precision 16 bit signed integer type.
Definition: fwd.hpp:152
+
detail::int32 lowp_int32
Low precision 32 bit signed integer type.
Definition: fwd.hpp:140
+
detail::uint8 lowp_u8
Low precision 8 bit unsigned integer type.
Definition: fwd.hpp:769
+
detail::uint16 mediump_uint16_t
Medium precision 16 bit unsigned integer type.
Definition: fwd.hpp:807
+
highp_f32mat3x2 f32mat3x2
Default single-precision floating-point 3x2 matrix.
Definition: fwd.hpp:2457
+
detail::uint8 u8
8 bit unsigned integer type.
Definition: fwd.hpp:926
+
detail::uint16 uint16_t
16 bit unsigned integer type.
Definition: fwd.hpp:913
+
detail::uint8 highp_uint8_t
Medium precision 8 bit unsigned integer type.
Definition: fwd.hpp:853
+
highp_f64mat4x2 f64mat4x2
Default double-precision floating-point 4x2 matrix.
Definition: fwd.hpp:2575
+
highp_i32vec3 i32vec3
Default precision 32 bit signed integer vector of 3 components type.
Definition: fwd.hpp:563
+
highp_f32mat4x4 fmat4x4
Default single-precision floating-point 4x4 matrix.
Definition: fwd.hpp:2407
+
highp_u8vec1 u8vec1
Default precision 8 bit unsigned integer scalar type.
Definition: fwd.hpp:1005
+
detail::int8 lowp_i8
Low precision 8 bit signed integer type.
Definition: fwd.hpp:164
+
detail::int8 highp_i8
High precision 8 bit signed integer type.
Definition: fwd.hpp:260
+
highp_ivec4 ivec4
4 components vector of signed integer numbers.
Definition: type_vec.hpp:458
+
highp_f32mat3x3 f32mat3x3
Default single-precision floating-point 3x3 matrix.
Definition: fwd.hpp:2461
+
detail::int16 lowp_i16
Low precision 16 bit signed integer type.
Definition: fwd.hpp:168
+
detail::int64 highp_i64
High precision 64 bit signed integer type.
Definition: fwd.hpp:272
+
highp_f32vec3 fvec3
Default single-precision floating-point vector of 3 components.
Definition: fwd.hpp:2367
+
highp_u32vec4 u32vec4
Default precision 32 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:1176
+
detail::int16 int16_t
16 bit signed integer type.
Definition: fwd.hpp:304
+
highp_i16vec3 i16vec3
Default precision 16 bit signed integer vector of 3 components type.
Definition: fwd.hpp:484
+
detail::int16 highp_int16
High precision 16 bit signed integer type.
Definition: fwd.hpp:232
+
detail::int8 lowp_int8
Low precision 8 bit signed integer type.
Definition: fwd.hpp:132
+
detail::int16 lowp_int16
Low precision 16 bit signed integer type.
Definition: fwd.hpp:136
+
highp_f64vec2 f64vec2
Default double-precision floating-point vector of 2 components.
Definition: fwd.hpp:2539
+
detail::int64 i64
64 bit signed integer type.
Definition: fwd.hpp:329
+
detail::int64 mediump_int64_t
Medium precision 64 bit signed integer type.
Definition: fwd.hpp:208
+
highp_f64mat2x4 f64mat2x4
Default double-precision floating-point 2x4 matrix.
Definition: fwd.hpp:2559
+
detail::uint32 mediump_uint32
Medium precision 32 bit unsigned integer type.
Definition: fwd.hpp:795
+
detail::uint8 mediump_u8
Medium precision 8 bit unsigned integer type.
Definition: fwd.hpp:819
+
detail::uint64 u64
64 bit unsigned integer type.
Definition: fwd.hpp:938
+
mat3x3 mat3
3 columns of 3 components matrix of floating-point numbers.
Definition: type_mat.hpp:437
+
highp_u64vec3 u64vec3
Default precision 64 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:1331
+
highp_f64quat f64quat
Default double-precision floating-point quaternion.
Definition: fwd.hpp:2599
+
highp_f32mat2x3 f32mat2x3
Default single-precision floating-point 2x3 matrix.
Definition: fwd.hpp:2449
+
highp_uvec3 uvec3
3 components vector of unsigned integer numbers.
Definition: type_vec.hpp:481
+
detail::uint64 highp_u64
Medium precision 64 bit unsigned integer type.
Definition: fwd.hpp:881
+
detail::int64 highp_int64
High precision 64 bit signed integer type.
Definition: fwd.hpp:240
+
detail::uint32 mediump_u32
Medium precision 32 bit unsigned integer type.
Definition: fwd.hpp:827
+
detail::int8 mediump_int8
Medium precision 8 bit signed integer type.
Definition: fwd.hpp:180
+
detail::uint32 mediump_uint32_t
Medium precision 32 bit unsigned integer type.
Definition: fwd.hpp:811
+
detail::uint8 mediump_uint8
Medium precision 8 bit unsigned integer type.
Definition: fwd.hpp:787
+
highp_f32vec3 f32vec3
Default single-precision floating-point vector of 3 components.
Definition: fwd.hpp:2437
+
highp_f32mat4x3 f32mat4x3
Default single-precision floating-point 4x3 matrix.
Definition: fwd.hpp:2473
+
highp_f32mat2x4 f32mat2x4
Default single-precision floating-point 2x4 matrix.
Definition: fwd.hpp:2453
+
highp_f64vec4 f64vec4
Default double-precision floating-point vector of 4 components.
Definition: fwd.hpp:2547
+
detail::uint8 mediump_uint8_t
Medium precision 8 bit unsigned integer type.
Definition: fwd.hpp:803
+
detail::uint16 u16
16 bit unsigned integer type.
Definition: fwd.hpp:930
+
detail::uint32 u32
32 bit unsigned integer type.
Definition: fwd.hpp:934
+
highp_f32mat4x2 fmat4x2
Default single-precision floating-point 4x2 matrix.
Definition: fwd.hpp:2399
+
detail::int8 mediump_i8
Medium precision 8 bit signed integer type.
Definition: fwd.hpp:212
+
highp_dvec2 dvec2
2 components vector of double-precision floating-point numbers.
Definition: type_vec.hpp:420
+
highp_f64mat3x3 f64mat3x3
Default double-precision floating-point 3x3 matrix.
Definition: fwd.hpp:2567
+
detail::int16 mediump_int16_t
Medium precision 16 bit signed integer type.
Definition: fwd.hpp:200
+
detail::uint16 mediump_uint16
Medium precision 16 bit unsigned integer type.
Definition: fwd.hpp:791
+
detail::int32 highp_i32
High precision 32 bit signed integer type.
Definition: fwd.hpp:268
+
highp_i64vec2 i64vec2
Default precision 64 bit signed integer vector of 2 components type.
Definition: fwd.hpp:718
+
highp_i8vec2 i8vec2
Default precision 8 bit signed integer vector of 2 components type.
Definition: fwd.hpp:400
+
mat4x4 mat4
4 columns of 4 components matrix of floating-point numbers.
Definition: type_mat.hpp:442
+
highp_float32_t float32_t
Default 32 bit single-precision floating-point scalar.
Definition: fwd.hpp:1529
+
detail::uint8 lowp_uint8
Low precision 8 bit unsigned integer type.
Definition: fwd.hpp:735
+
highp_u8vec3 u8vec3
Default precision 8 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:1013
+
detail::uint32 highp_u32
Medium precision 32 bit unsigned integer type.
Definition: fwd.hpp:877
+
highp_f32mat3x3 fmat3x3
Default single-precision floating-point 3x3 matrix.
Definition: fwd.hpp:2391
+
highp_i8vec4 i8vec4
Default precision 8 bit signed integer vector of 4 components type.
Definition: fwd.hpp:408
+
highp_u64vec4 u64vec4
Default precision 64 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:1335
+
detail::uint32 highp_uint32
Medium precision 32 bit unsigned integer type.
Definition: fwd.hpp:845
+
mat2x2 mat2
2 columns of 2 components matrix of floating-point numbers.
Definition: type_mat.hpp:432
+
GLM_ALIGNED_TYPEDEF(f64quat, aligned_f64quat, 32)
Double-precision floating-point aligned quaternion.
+
detail::uint64 mediump_uint64_t
Medium precision 64 bit unsigned integer type.
Definition: fwd.hpp:815
+
quat fquat
Quaternion of default single-precision floating-point numbers.
Definition: fwd.hpp:90
+
highp_f64mat2x3 f64mat2x3
Default double-precision floating-point 2x3 matrix.
Definition: fwd.hpp:2555
+
highp_u16vec3 u16vec3
Default precision 16 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:1093
+
detail::uint8 highp_u8
Medium precision 8 bit unsigned integer type.
Definition: fwd.hpp:869
+
detail::int32 lowp_int32_t
Low precision 32 bit signed integer type.
Definition: fwd.hpp:156
+
detail::int8 mediump_int8_t
Medium precision 8 bit signed integer type.
Definition: fwd.hpp:196
+
highp_i64vec1 i64vec1
Default precision 64 bit signed integer scalar type.
Definition: fwd.hpp:714
+
highp_uvec2 uvec2
2 components vector of unsigned integer numbers.
Definition: type_vec.hpp:476
+
highp_i8vec1 i8vec1
Default precision 8 bit signed integer scalar type.
Definition: fwd.hpp:396
+
detail::uint32 highp_uint32_t
Medium precision 32 bit unsigned integer type.
Definition: fwd.hpp:861
+
highp_f32vec2 fvec2
Default single-precision floating-point vector of 2 components.
Definition: fwd.hpp:2363
+
detail::int8 lowp_int8_t
Low precision 8 bit signed integer type.
Definition: fwd.hpp:148
+
highp_f32vec4 f32vec4
Default single-precision floating-point vector of 4 components.
Definition: fwd.hpp:2441
+
detail::int64 mediump_int64
Medium precision 64 bit signed integer type.
Definition: fwd.hpp:192
+
detail::uint64 mediump_u64
Medium precision 64 bit unsigned integer type.
Definition: fwd.hpp:831
+
highp_f32mat2x2 fmat2x2
Default single-precision floating-point 2x2 matrix.
Definition: fwd.hpp:2375
+
highp_i64vec3 i64vec3
Default precision 64 bit signed integer vector of 3 components type.
Definition: fwd.hpp:722
+
detail::uint64 lowp_uint64_t
Low precision 64 bit unsigned integer type.
Definition: fwd.hpp:764
+
highp_u32vec1 u32vec1
Default precision 32 bit unsigned integer scalar type.
Definition: fwd.hpp:1164
+
detail::int64 int64_t
64 bit signed integer type.
Definition: fwd.hpp:312
+
detail::int32 i32
32 bit signed integer type.
Definition: fwd.hpp:325
+
detail::uint32 lowp_uint32_t
Low precision 32 bit unsigned integer type.
Definition: fwd.hpp:760
+
highp_f32mat2x2 f32mat2x2
Default single-precision floating-point 2x2 matrix.
Definition: fwd.hpp:2445
+
highp_f32quat f32quat
Default single-precision floating-point quaternion.
Definition: fwd.hpp:2493
+
detail::int16 i16
16 bit signed integer type.
Definition: fwd.hpp:321
+
highp_u8vec4 u8vec4
Default precision 8 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:1017
+
highp_i64vec4 i64vec4
Default precision 64 bit signed integer vector of 4 components type.
Definition: fwd.hpp:726
+
detail::int64 highp_int64_t
High precision 64 bit signed integer type.
Definition: fwd.hpp:256
+
highp_ivec3 ivec3
3 components vector of signed integer numbers.
Definition: type_vec.hpp:453
+
detail::uint16 highp_uint16
Medium precision 16 bit unsigned integer type.
Definition: fwd.hpp:841
+
detail::int64 lowp_int64_t
Low precision 64 bit signed integer type.
Definition: fwd.hpp:160
+
detail::int16 highp_int16_t
High precision 16 bit signed integer type.
Definition: fwd.hpp:248
+
detail::int32 mediump_i32
Medium precision 32 bit signed integer type.
Definition: fwd.hpp:220
+
detail::uint8 highp_uint8
Medium precision 8 bit unsigned integer type.
Definition: fwd.hpp:837
+
detail::int8 highp_int8_t
High precision 8 bit signed integer type.
Definition: fwd.hpp:244
+
detail::int8 int8_t
8 bit signed integer type.
Definition: fwd.hpp:300
+
highp_u32vec3 u32vec3
Default precision 32 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:1172
+
highp_mat4x4 mat4x4
4 columns of 4 components matrix of floating-point numbers.
Definition: type_mat.hpp:425
+
highp_i16vec1 i16vec1
Default precision 16 bit signed integer scalar type.
Definition: fwd.hpp:476
+
detail::uint64 lowp_u64
Low precision 64 bit unsigned integer type.
Definition: fwd.hpp:781
+
Definition: _noise.hpp:39
+
highp_f32vec1 f32vec1
Default single-precision floating-point vector of 1 components.
Definition: fwd.hpp:2429
+
highp_f32mat4x3 fmat4x3
Default single-precision floating-point 4x3 matrix.
Definition: fwd.hpp:2403
+
detail::int64 mediump_i64
Medium precision 64 bit signed integer type.
Definition: fwd.hpp:224
+
highp_f64mat4x4 f64mat4x4
Default double-precision floating-point 4x4 matrix.
Definition: fwd.hpp:2583
+
detail::uint16 lowp_uint16_t
Low precision 16 bit unsigned integer type.
Definition: fwd.hpp:756
+
highp_vec3 vec3
3 components vector of floating-point numbers.
Definition: type_vec.hpp:397
+
highp_f64mat3x2 f64mat3x2
Default double-precision floating-point 3x2 matrix.
Definition: fwd.hpp:2563
+
highp_dvec3 dvec3
3 components vector of double-precision floating-point numbers.
Definition: type_vec.hpp:425
+
highp_vec2 vec2
2 components vector of floating-point numbers.
Definition: type_vec.hpp:392
+
highp_f64mat3x4 f64mat3x4
Default double-precision floating-point 3x4 matrix.
Definition: fwd.hpp:2571
+
highp_mat3x3 mat3x3
3 columns of 3 components matrix of floating-point numbers.
Definition: type_mat.hpp:405
+
detail::uint16 lowp_u16
Low precision 16 bit unsigned integer type.
Definition: fwd.hpp:773
+
detail::uint64 highp_uint64
Medium precision 64 bit unsigned integer type.
Definition: fwd.hpp:849
+
detail::uint16 lowp_uint16
Low precision 16 bit unsigned integer type.
Definition: fwd.hpp:739
+
detail::int8 i8
8 bit signed integer type.
Definition: fwd.hpp:317
+
highp_f64vec3 f64vec3
Default double-precision floating-point vector of 3 components.
Definition: fwd.hpp:2543
+
highp_u16vec4 u16vec4
Default precision 16 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:1097
+
highp_f32mat3x4 fmat3x4
Default single-precision floating-point 3x4 matrix.
Definition: fwd.hpp:2395
+
highp_f32vec4 fvec4
Default single-precision floating-point vector of 4 components.
Definition: fwd.hpp:2371
+
highp_ivec2 ivec2
2 components vector of signed integer numbers.
Definition: type_vec.hpp:448
+
highp_uvec4 uvec4
4 components vector of unsigned integer numbers.
Definition: type_vec.hpp:486
+
detail::int32 highp_int32
High precision 32 bit signed integer type.
Definition: fwd.hpp:236
+
highp_u8vec2 u8vec2
Default precision 8 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:1009
+
detail::int32 mediump_int32
Medium precision 32 bit signed integer type.
Definition: fwd.hpp:188
+
detail::int32 mediump_int32_t
Medium precision 32 bit signed integer type.
Definition: fwd.hpp:204
+
detail::int32 lowp_i32
Low precision 32 bit signed integer type.
Definition: fwd.hpp:172
+
detail::uint8 uint8_t
8 bit unsigned integer type.
Definition: fwd.hpp:909
+
highp_i8vec3 i8vec3
Default precision 8 bit signed integer vector of 3 components type.
Definition: fwd.hpp:404
+
detail::uint64 highp_uint64_t
Medium precision 64 bit unsigned integer type.
Definition: fwd.hpp:865
+
detail::uint32 lowp_uint32
Low precision 32 bit unsigned integer type.
Definition: fwd.hpp:743
+
highp_f64mat2x2 f64mat2x2
Default double-precision floating-point 2x2 matrix.
Definition: fwd.hpp:2551
+
detail::uint16 mediump_u16
Medium precision 16 bit unsigned integer type.
Definition: fwd.hpp:823
+
detail::uint16 highp_uint16_t
Medium precision 16 bit unsigned integer type.
Definition: fwd.hpp:857
+
highp_f32mat2x3 fmat2x3
Default single-precision floating-point 2x3 matrix.
Definition: fwd.hpp:2379
+
highp_dvec4 dvec4
4 components vector of double-precision floating-point numbers.
Definition: type_vec.hpp:430
+
highp_f64mat4x3 f64mat4x3
Default double-precision floating-point 4x3 matrix.
Definition: fwd.hpp:2579
+
highp_mat2x2 mat2x2
2 columns of 2 components matrix of floating-point numbers.
Definition: type_mat.hpp:385
+
highp_f32mat2x4 fmat2x4
Default single-precision floating-point 2x4 matrix.
Definition: fwd.hpp:2383
+
highp_f64vec1 f64vec1
Default double-precision floating-point vector of 1 components.
Definition: fwd.hpp:2535
+
highp_i32vec2 i32vec2
Default precision 32 bit signed integer vector of 2 components type.
Definition: fwd.hpp:559
+
detail::int16 mediump_i16
Medium precision 16 bit signed integer type.
Definition: fwd.hpp:216
+
highp_u32vec2 u32vec2
Default precision 32 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:1168
diff --git a/doc/api/a00115.html b/doc/api/a00115.html index 7c26c868..9a5695b6 100644 --- a/doc/api/a00115.html +++ b/doc/api/a00115.html @@ -3,8 +3,8 @@ - -GLM: transform.hpp File Reference + +0.9.6: type_float.hpp File Reference @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,60 +41,49 @@
-Namespaces | -Functions
+Typedefs
-
transform.hpp File Reference
+
type_float.hpp File Reference

Go to the source code of this file.

- - - -

-Namespaces

 glm
 
- - - - - - - - - - + + + + + + + + + + +

-Functions

template<typename T , precision P>
detail::tmat4x4< T, P > rotate (T angle, detail::tvec3< T, P > const &v)
 
template<typename T , precision P>
detail::tmat4x4< T, P > scale (detail::tvec3< T, P > const &v)
 
template<typename T , precision P>
detail::tmat4x4< T, P > translate (detail::tvec3< T, P > const &v)
 

+Typedefs

typedef float float32
 
typedef double float64
 
typedef highp_float_t highp_float
 
typedef lowp_float_t lowp_float
 
typedef mediump_float_t mediump_float
 

Detailed Description

OpenGL Mathematics (glm.g-truc.net)

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_transform

-
Date
2005-12-21 / 2011-06-07
-
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
-
-GLM_GTC_matrix_transform (dependence)
-
-GLM_GTX_transform
-
-GLM_GTX_transform2
+

GLM Core

+
Date
2008-08-22 / 2011-06-15
+
Author
Christophe Riccio
-

Definition in file transform.hpp.

+

Definition in file type_float.hpp.

diff --git a/doc/api/a00115_source.html b/doc/api/a00115_source.html index 1be83a0c..05eb7d79 100644 --- a/doc/api/a00115_source.html +++ b/doc/api/a00115_source.html @@ -3,8 +3,8 @@ - -GLM: transform.hpp Source File + +0.9.6: type_float.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,57 +41,73 @@
-
transform.hpp
+
type_float.hpp
Go to the documentation of this file.
1 
-
41 #ifndef GLM_GTX_transform
-
42 #define GLM_GTX_transform
-
43 
-
44 // Dependency:
-
45 #include "../glm.hpp"
-
46 #include "../gtc/matrix_transform.hpp"
+
33 #pragma once
+
34 
+
35 #include "setup.hpp"
+
36 
+
37 namespace glm{
+
38 namespace detail
+
39 {
+
40  typedef float float32;
+
41  typedef double float64;
+
42 }//namespace detail
+
43 
+
44  typedef float lowp_float_t;
+
45  typedef float mediump_float_t;
+
46  typedef double highp_float_t;
47 
-
48 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
49 # pragma message("GLM: GLM_GTX_transform extension included")
-
50 #endif
-
51 
-
52 namespace glm
-
53 {
-
56 
-
60  template <typename T, precision P>
-
61  detail::tmat4x4<T, P> translate(
-
62  detail::tvec3<T, P> const & v);
-
63 
-
67  template <typename T, precision P>
-
68  detail::tmat4x4<T, P> rotate(
-
69  T angle,
-
70  detail::tvec3<T, P> const & v);
+
50 
+
56  typedef lowp_float_t lowp_float;
+
57 
+
63  typedef mediump_float_t mediump_float;
+
64 
+
70  typedef highp_float_t highp_float;
71 
-
75  template <typename T, precision P>
-
76  detail::tmat4x4<T, P> scale(
-
77  detail::tvec3<T, P> const & v);
-
78 
-
80 }// namespace glm
-
81 
-
82 #include "transform.inl"
+
72 #if(!defined(GLM_PRECISION_HIGHP_FLOAT) && !defined(GLM_PRECISION_MEDIUMP_FLOAT) && !defined(GLM_PRECISION_LOWP_FLOAT))
+
73  typedef mediump_float float_t;
+
74 #elif(defined(GLM_PRECISION_HIGHP_FLOAT) && !defined(GLM_PRECISION_MEDIUMP_FLOAT) && !defined(GLM_PRECISION_LOWP_FLOAT))
+
75  typedef highp_float float_t;
+
76 #elif(!defined(GLM_PRECISION_HIGHP_FLOAT) && defined(GLM_PRECISION_MEDIUMP_FLOAT) && !defined(GLM_PRECISION_LOWP_FLOAT))
+
77  typedef mediump_float float_t;
+
78 #elif(!defined(GLM_PRECISION_HIGHP_FLOAT) && !defined(GLM_PRECISION_MEDIUMP_FLOAT) && defined(GLM_PRECISION_LOWP_FLOAT))
+
79  typedef lowp_float float_t;
+
80 #else
+
81 # error "GLM error: multiple default precision requested for floating-point types"
+
82 #endif
83 
-
84 #endif//GLM_GTX_transform
-
GLM_FUNC_DECL detail::tmat4x4< T, P > rotate(detail::tmat4x4< T, P > const &m, T const &angle, detail::tvec3< T, P > const &axis)
Builds a rotation 4 * 4 matrix created from an axis vector and an angle.
-
GLM_FUNC_DECL T angle(detail::tquat< T, P > const &x)
Returns the quaternion rotation angle.
-
GLM_FUNC_DECL detail::tmat4x4< T, P > scale(detail::tmat4x4< T, P > const &m, detail::tvec3< T, P > const &v)
Builds a scale 4 * 4 matrix created from 3 scalars.
-
GLM_FUNC_DECL detail::tmat4x4< T, P > translate(detail::tmat4x4< T, P > const &m, detail::tvec3< T, P > const &v)
Builds a translation 4 * 4 matrix created from a vector of 3 components.
+
84  typedef float float32;
+
85  typedef double float64;
+
86 
+
88 // check type sizes
+
89 #ifndef GLM_STATIC_ASSERT_NULL
+
90  GLM_STATIC_ASSERT(sizeof(glm::float32) == 4, "float32 size isn't 4 bytes on this platform");
+
91  GLM_STATIC_ASSERT(sizeof(glm::float64) == 8, "float64 size isn't 8 bytes on this platform");
+
92 #endif//GLM_STATIC_ASSERT_NULL
+
93 
+
95 
+
96 }//namespace glm
+
highp_float_t highp_float
High precision floating-point numbers.
Definition: type_float.hpp:70
+
float float32
Default 32 bit single-precision floating-point scalar.
Definition: type_float.hpp:84
+
Definition: _noise.hpp:39
+
lowp_float_t lowp_float
Low precision floating-point numbers.
Definition: type_float.hpp:56
+
mediump_float_t mediump_float
Medium precision floating-point numbers.
Definition: type_float.hpp:63
+
OpenGL Mathematics (glm.g-truc.net)
+
double float64
Default 64 bit double-precision floating-point scalar.
Definition: type_float.hpp:85
diff --git a/doc/api/a00116.html b/doc/api/a00116.html index e7b1afcb..1547ad3b 100644 --- a/doc/api/a00116.html +++ b/doc/api/a00116.html @@ -3,8 +3,8 @@ - -GLM: transform2.hpp File Reference + +0.9.6: type_gentype.hpp File Reference @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,74 +41,33 @@
-
-Namespaces | -Functions
-
transform2.hpp File Reference
+
type_gentype.hpp File Reference

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename T , precision P>
detail::tmat3x3< T, P > proj2D (const detail::tmat3x3< T, P > &m, const detail::tvec3< T, P > &normal)
 
template<typename T , precision P>
detail::tmat4x4< T, P > proj3D (const detail::tmat4x4< T, P > &m, const detail::tvec3< T, P > &normal)
 
template<typename valType , precision P>
detail::tmat4x4< valType, P > scaleBias (valType scale, valType bias)
 
template<typename valType , precision P>
detail::tmat4x4< valType, P > scaleBias (detail::tmat4x4< valType, P > const &m, valType scale, valType bias)
 
template<typename T , precision P>
detail::tmat3x3< T, P > shearX2D (detail::tmat3x3< T, P > const &m, T y)
 
template<typename T , precision P>
detail::tmat4x4< T, P > shearX3D (const detail::tmat4x4< T, P > &m, T y, T z)
 
template<typename T , precision P>
detail::tmat3x3< T, P > shearY2D (detail::tmat3x3< T, P > const &m, T x)
 
template<typename T , precision P>
detail::tmat4x4< T, P > shearY3D (const detail::tmat4x4< T, P > &m, T x, T z)
 
template<typename T , precision P>
detail::tmat4x4< T, P > shearZ3D (const detail::tmat4x4< T, P > &m, T x, T y)
 

Detailed Description

OpenGL Mathematics (glm.g-truc.net)

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_transform2

-
Date
2005-12-21 / 2011-06-07
-
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
-
-GLM_GTX_transform (dependence)
+

GLM Core

+
Date
2008-10-05 / 2011-06-15
+
Author
Christophe Riccio
-

Definition in file transform2.hpp.

+

Definition in file type_gentype.hpp.

diff --git a/doc/api/a00116_source.html b/doc/api/a00116_source.html index 3049a1ab..e0a36357 100644 --- a/doc/api/a00116_source.html +++ b/doc/api/a00116_source.html @@ -3,8 +3,8 @@ - -GLM: transform2.hpp Source File + +0.9.6: type_gentype.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,106 +41,208 @@
-
transform2.hpp
+
type_gentype.hpp
Go to the documentation of this file.
1 
-
39 #ifndef GLM_GTX_transform2
-
40 #define GLM_GTX_transform2
-
41 
-
42 // Dependency:
-
43 #include "../glm.hpp"
-
44 #include "../gtx/transform.hpp"
-
45 
-
46 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
47 # pragma message("GLM: GLM_GTX_transform2 extension included")
-
48 #endif
-
49 
-
50 namespace glm
-
51 {
-
54 
-
57  template <typename T, precision P>
-
58  detail::tmat3x3<T, P> shearX2D(
-
59  detail::tmat3x3<T, P> const & m,
-
60  T y);
-
61 
-
64  template <typename T, precision P>
-
65  detail::tmat3x3<T, P> shearY2D(
-
66  detail::tmat3x3<T, P> const & m,
-
67  T x);
-
68 
-
71  template <typename T, precision P>
-
72  detail::tmat4x4<T, P> shearX3D(
-
73  const detail::tmat4x4<T, P> & m,
-
74  T y,
-
75  T z);
+
33 #pragma once
+
34 
+
35 namespace glm
+
36 {
+
37  enum profile
+
38  {
+
39  nice,
+
40  fast,
+
41  simd
+
42  };
+
43 
+
44  typedef std::size_t sizeType;
+
45 
+
46 namespace detail
+
47 {
+
48  template
+
49  <
+
50  typename VALTYPE,
+
51  template <typename> class TYPE
+
52  >
+
53  struct genType
+
54  {
+
55  public:
+
56  enum ctor{null};
+
57 
+
58  typedef VALTYPE value_type;
+
59  typedef VALTYPE & value_reference;
+
60  typedef VALTYPE * value_pointer;
+
61  typedef VALTYPE const * value_const_pointer;
+
62  typedef TYPE<bool> bool_type;
+
63 
+
64  typedef sizeType size_type;
+
65  static bool is_vector();
+
66  static bool is_matrix();
+
67 
+
68  typedef TYPE<VALTYPE> type;
+
69  typedef TYPE<VALTYPE> * pointer;
+
70  typedef TYPE<VALTYPE> const * const_pointer;
+
71  typedef TYPE<VALTYPE> const * const const_pointer_const;
+
72  typedef TYPE<VALTYPE> * const pointer_const;
+
73  typedef TYPE<VALTYPE> & reference;
+
74  typedef TYPE<VALTYPE> const & const_reference;
+
75  typedef TYPE<VALTYPE> const & param_type;
76 
-
79  template <typename T, precision P>
-
80  detail::tmat4x4<T, P> shearY3D(
-
81  const detail::tmat4x4<T, P> & m,
-
82  T x,
-
83  T z);
-
84 
-
87  template <typename T, precision P>
-
88  detail::tmat4x4<T, P> shearZ3D(
-
89  const detail::tmat4x4<T, P> & m,
-
90  T x,
-
91  T y);
-
92 
-
93  //template <typename T> GLM_FUNC_QUALIFIER detail::tmat4x4<T, P> shear(const detail::tmat4x4<T, P> & m, shearPlane, planePoint, angle)
-
94  // Identity + tan(angle) * cross(Normal, OnPlaneVector) 0
-
95  // - dot(PointOnPlane, normal) * OnPlaneVector 1
-
96 
-
97  // Reflect functions seem to don't work
-
98  //template <typename T> detail::tmat3x3<T, P> reflect2D(const detail::tmat3x3<T, P> & m, const detail::tvec3<T, P>& normal){return reflect2DGTX(m, normal);} //!< \brief Build a reflection matrix (from GLM_GTX_transform2 extension)
-
99  //template <typename T> detail::tmat4x4<T, P> reflect3D(const detail::tmat4x4<T, P> & m, const detail::tvec3<T, P>& normal){return reflect3DGTX(m, normal);} //!< \brief Build a reflection matrix (from GLM_GTX_transform2 extension)
-
100 
-
103  template <typename T, precision P>
-
104  detail::tmat3x3<T, P> proj2D(
-
105  const detail::tmat3x3<T, P> & m,
-
106  const detail::tvec3<T, P>& normal);
-
107 
-
110  template <typename T, precision P>
-
111  detail::tmat4x4<T, P> proj3D(
-
112  const detail::tmat4x4<T, P> & m,
-
113  const detail::tvec3<T, P>& normal);
-
114 
-
117  template <typename valType, precision P>
-
118  detail::tmat4x4<valType, P> scaleBias(
-
119  valType scale,
-
120  valType bias);
-
121 
-
124  template <typename valType, precision P>
-
125  detail::tmat4x4<valType, P> scaleBias(
-
126  detail::tmat4x4<valType, P> const & m,
-
127  valType scale,
-
128  valType bias);
-
129 
-
131 }// namespace glm
-
132 
-
133 #include "transform2.inl"
-
134 
-
135 #endif//GLM_GTX_transform2
-
detail::tmat4x4< valType, P > scaleBias(valType scale, valType bias)
Build a scale bias matrix.
-
detail::tmat3x3< T, P > shearX2D(detail::tmat3x3< T, P > const &m, T y)
Transforms a matrix with a shearing on X axis.
-
detail::tmat3x3< T, P > proj2D(const detail::tmat3x3< T, P > &m, const detail::tvec3< T, P > &normal)
Build planar projection matrix along normal axis.
-
GLM_FUNC_DECL detail::tmat4x4< T, P > scale(detail::tmat4x4< T, P > const &m, detail::tvec3< T, P > const &v)
Builds a scale 4 * 4 matrix created from 3 scalars.
-
detail::tmat4x4< T, P > shearY3D(const detail::tmat4x4< T, P > &m, T x, T z)
Transforms a matrix with a shearing on Y axis.
-
detail::tmat4x4< T, P > proj3D(const detail::tmat4x4< T, P > &m, const detail::tvec3< T, P > &normal)
Build planar projection matrix along normal axis.
-
detail::tmat4x4< T, P > shearZ3D(const detail::tmat4x4< T, P > &m, T x, T y)
Transforms a matrix with a shearing on Z axis.
-
detail::tmat3x3< T, P > shearY2D(detail::tmat3x3< T, P > const &m, T x)
Transforms a matrix with a shearing on Y axis.
-
detail::tmat4x4< T, P > shearX3D(const detail::tmat4x4< T, P > &m, T y, T z)
Transforms a matrix with a shearing on X axis From GLM_GTX_transform2 extension.
+
78  // Address (Implementation details)
+
79 
+
80  value_const_pointer value_address() const{return value_pointer(this);}
+
81  value_pointer value_address(){return value_pointer(this);}
+
82 
+
83  //protected:
+
84  // enum kind
+
85  // {
+
86  // GEN_TYPE,
+
87  // VEC_TYPE,
+
88  // MAT_TYPE
+
89  // };
+
90 
+
91  // typedef typename TYPE::kind kind;
+
92  };
+
93 
+
94  template
+
95  <
+
96  typename VALTYPE,
+
97  template <typename> class TYPE
+
98  >
+
99  bool genType<VALTYPE, TYPE>::is_vector()
+
100  {
+
101  return true;
+
102  }
+
103 /*
+
104  template <typename valTypeT, unsigned int colT, unsigned int rowT, profile proT = nice>
+
105  class base
+
106  {
+
107  public:
+
109  // Traits
+
110 
+
111  typedef sizeType size_type;
+
112  typedef valTypeT value_type;
+
113 
+
114  typedef base<value_type, colT, rowT> class_type;
+
115 
+
116  typedef base<bool, colT, rowT> bool_type;
+
117  typedef base<value_type, rowT, 1> col_type;
+
118  typedef base<value_type, colT, 1> row_type;
+
119  typedef base<value_type, rowT, colT> transpose_type;
+
120 
+
121  static size_type col_size();
+
122  static size_type row_size();
+
123  static size_type value_size();
+
124  static bool is_scalar();
+
125  static bool is_vector();
+
126  static bool is_matrix();
+
127 
+
128  private:
+
129  // Data
+
130  col_type value[colT];
+
131 
+
132  public:
+
134  // Constructors
+
135  base();
+
136  base(class_type const & m);
+
137 
+
138  explicit base(T const & x);
+
139  explicit base(value_type const * const x);
+
140  explicit base(col_type const * const x);
+
141 
+
143  // Conversions
+
144  template <typename vU, uint cU, uint rU, profile pU>
+
145  explicit base(base<vU, cU, rU, pU> const & m);
+
146 
+
148  // Accesses
+
149  col_type& operator[](size_type i);
+
150  col_type const & operator[](size_type i) const;
+
151 
+
153  // Unary updatable operators
+
154  class_type& operator= (class_type const & x);
+
155  class_type& operator+= (T const & x);
+
156  class_type& operator+= (class_type const & x);
+
157  class_type& operator-= (T const & x);
+
158  class_type& operator-= (class_type const & x);
+
159  class_type& operator*= (T const & x);
+
160  class_type& operator*= (class_type const & x);
+
161  class_type& operator/= (T const & x);
+
162  class_type& operator/= (class_type const & x);
+
163  class_type& operator++ ();
+
164  class_type& operator-- ();
+
165  };
+
166 */
+
167 
+
168  //template <typename T>
+
169  //struct traits
+
170  //{
+
171  // static const bool is_signed = false;
+
172  // static const bool is_float = false;
+
173  // static const bool is_vector = false;
+
174  // static const bool is_matrix = false;
+
175  // static const bool is_genType = false;
+
176  // static const bool is_genIType = false;
+
177  // static const bool is_genUType = false;
+
178  //};
+
179 
+
180  //template <>
+
181  //struct traits<half>
+
182  //{
+
183  // static const bool is_float = true;
+
184  // static const bool is_genType = true;
+
185  //};
+
186 
+
187  //template <>
+
188  //struct traits<float>
+
189  //{
+
190  // static const bool is_float = true;
+
191  // static const bool is_genType = true;
+
192  //};
+
193 
+
194  //template <>
+
195  //struct traits<double>
+
196  //{
+
197  // static const bool is_float = true;
+
198  // static const bool is_genType = true;
+
199  //};
+
200 
+
201  //template <typename genType>
+
202  //struct desc
+
203  //{
+
204  // typedef genType type;
+
205  // typedef genType * pointer;
+
206  // typedef genType const* const_pointer;
+
207  // typedef genType const *const const_pointer_const;
+
208  // typedef genType *const pointer_const;
+
209  // typedef genType & reference;
+
210  // typedef genType const& const_reference;
+
211  // typedef genType const& param_type;
+
212 
+
213  // typedef typename genType::value_type value_type;
+
214  // typedef typename genType::size_type size_type;
+
215  // static const typename size_type value_size;
+
216  //};
+
217 
+
218  //template <typename genType>
+
219  //const typename desc<genType>::size_type desc<genType>::value_size = genType::value_size();
+
220 
+
221 }//namespace detail
+
222 }//namespace glm
+
223 
+
224 //#include "type_gentype.inl"
+
Definition: _noise.hpp:39
diff --git a/doc/api/a00117.html b/doc/api/a00117.html index 6449c4b8..ff114c10 100644 --- a/doc/api/a00117.html +++ b/doc/api/a00117.html @@ -3,8 +3,8 @@ - -GLM: trigonometric.hpp File Reference + +0.9.6: type_half.hpp File Reference @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,12 +41,12 @@
-
trigonometric.hpp File Reference
+
type_half.hpp File Reference
@@ -57,18 +55,19 @@

OpenGL Mathematics (glm.g-truc.net)

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM Core

-
Date
2013-12-24 / 2013-12-24
+

GLM Core

+
Date
2008-08-17 / 2011-09-20
Author
Christophe Riccio
-

Definition in file trigonometric.hpp.

+

Definition in file type_half.hpp.

diff --git a/doc/api/a00117_source.html b/doc/api/a00117_source.html index 94a51a1d..ee624fd5 100644 --- a/doc/api/a00117_source.html +++ b/doc/api/a00117_source.html @@ -3,8 +3,8 @@ - -GLM: trigonometric.hpp Source File + +0.9.6: type_half.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,27 +41,39 @@
-
trigonometric.hpp
+
type_half.hpp
Go to the documentation of this file.
1 
-
29 #ifndef GLM_TRIGONOMETRIC_INCLUDED
-
30 #define GLM_TRIGONOMETRIC_INCLUDED
-
31 
-
32 #include "detail/func_trigonometric.hpp"
-
33 
-
34 #endif//GLM_TRIGONOMETRIC_INCLUDED
+
33 #pragma once
+
34 
+
35 #include "setup.hpp"
+
36 
+
37 namespace glm{
+
38 namespace detail
+
39 {
+
40  typedef short hdata;
+
41 
+
42  GLM_FUNC_DECL float toFloat32(hdata value);
+
43  GLM_FUNC_DECL hdata toFloat16(float const & value);
+
44 
+
45 }//namespace detail
+
46 }//namespace glm
+
47 
+
48 #include "type_half.inl"
+
Definition: _noise.hpp:39
+
OpenGL Mathematics (glm.g-truc.net)
diff --git a/doc/api/a00118.html b/doc/api/a00118.html new file mode 100644 index 00000000..609022f5 --- /dev/null +++ b/doc/api/a00118.html @@ -0,0 +1,109 @@ + + + + + + +0.9.6: type_int.hpp File Reference + + + + + + +
+
+ + + + + + + +
+
0.9.6 +
+
+
+ + + + + +
+
+
+Typedefs
+
+
type_int.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Typedefs

typedef detail::highp_int_t highp_int
 
typedef detail::highp_uint_t highp_uint
 
typedef detail::int16 int16
 
typedef detail::int32 int32
 
typedef detail::int64 int64
 
typedef detail::int8 int8
 
typedef detail::lowp_int_t lowp_int
 
typedef detail::lowp_uint_t lowp_uint
 
typedef detail::mediump_int_t mediump_int
 
typedef detail::mediump_uint_t mediump_uint
 
typedef unsigned int uint
 
typedef detail::uint16 uint16
 
typedef detail::uint32 uint32
 
typedef detail::uint64 uint64
 
typedef detail::uint8 uint8
 
+

Detailed Description

+

OpenGL Mathematics (glm.g-truc.net)

+

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+

GLM Core

+
Date
2008-08-22 / 2013-03-30
+
Author
Christophe Riccio
+ +

Definition in file type_int.hpp.

+
+ + + + diff --git a/doc/api/a00118_source.html b/doc/api/a00118_source.html index 12eaa785..af66b532 100644 --- a/doc/api/a00118_source.html +++ b/doc/api/a00118_source.html @@ -3,8 +3,8 @@ - -GLM: type_float.hpp Source File + +0.9.6: type_int.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,74 +41,301 @@
-
type_float.hpp
+
type_int.hpp
-
1 
-
29 #ifndef glm_core_type_float
-
30 #define glm_core_type_float
-
31 
-
32 #include "setup.hpp"
-
33 
-
34 namespace glm{
-
35 namespace detail
-
36 {
-
37  typedef float float32;
-
38  typedef double float64;
-
39 }//namespace detail
-
40 
-
41  typedef float lowp_float_t;
-
42  typedef float mediump_float_t;
-
43  typedef double highp_float_t;
-
44 
-
47 
-
53  typedef lowp_float_t lowp_float;
-
54 
-
60  typedef mediump_float_t mediump_float;
-
61 
-
67  typedef highp_float_t highp_float;
-
68 
-
69 #if(!defined(GLM_PRECISION_HIGHP_FLOAT) && !defined(GLM_PRECISION_MEDIUMP_FLOAT) && !defined(GLM_PRECISION_LOWP_FLOAT))
-
70  typedef mediump_float float_t;
-
71 #elif(defined(GLM_PRECISION_HIGHP_FLOAT) && !defined(GLM_PRECISION_MEDIUMP_FLOAT) && !defined(GLM_PRECISION_LOWP_FLOAT))
-
72  typedef highp_float float_t;
-
73 #elif(!defined(GLM_PRECISION_HIGHP_FLOAT) && defined(GLM_PRECISION_MEDIUMP_FLOAT) && !defined(GLM_PRECISION_LOWP_FLOAT))
-
74  typedef mediump_float float_t;
-
75 #elif(!defined(GLM_PRECISION_HIGHP_FLOAT) && !defined(GLM_PRECISION_MEDIUMP_FLOAT) && defined(GLM_PRECISION_LOWP_FLOAT))
-
76  typedef lowp_float float_t;
-
77 #else
-
78 # error "GLM error: multiple default precision requested for floating-point types"
-
79 #endif
-
80 
-
81  typedef float float32;
-
82  typedef double float64;
-
83 
-
85 // check type sizes
-
86 #ifndef GLM_STATIC_ASSERT_NULL
-
87  GLM_STATIC_ASSERT(sizeof(glm::float32) == 4, "float32 size isn't 4 bytes on this platform");
-
88  GLM_STATIC_ASSERT(sizeof(glm::float64) == 8, "float64 size isn't 8 bytes on this platform");
-
89 #endif//GLM_STATIC_ASSERT_NULL
-
90 
+Go to the documentation of this file.
1 
+
33 #pragma once
+
34 
+
35 #include "setup.hpp"
+
36 #include <type_traits>
+
37 
+
38 #if GLM_HAS_EXTENDED_INTEGER_TYPE
+
39 # include <cstdint>
+
40 #endif
+
41 
+
42 namespace glm{
+
43 namespace detail
+
44 {
+
45 # if GLM_HAS_EXTENDED_INTEGER_TYPE
+
46  typedef std::int8_t int8;
+
47  typedef std::int16_t int16;
+
48  typedef std::int32_t int32;
+
49  typedef std::int64_t int64;
+
50 
+
51  typedef std::uint8_t uint8;
+
52  typedef std::uint16_t uint16;
+
53  typedef std::uint32_t uint32;
+
54  typedef std::uint64_t uint64;
+
55 # else
+
56 # if(defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) // C99 detected, 64 bit types available
+
57  typedef int64_t sint64;
+
58  typedef uint64_t uint64;
+
59 # elif GLM_COMPILER & GLM_COMPILER_VC
+
60  typedef signed __int64 sint64;
+
61  typedef unsigned __int64 uint64;
+
62 # elif GLM_COMPILER & GLM_COMPILER_GCC
+
63  __extension__ typedef signed long long sint64;
+
64  __extension__ typedef unsigned long long uint64;
+
65 # else//unknown compiler
+
66  typedef signed long long sint64;
+
67  typedef unsigned long long uint64;
+
68 # endif//GLM_COMPILER
+
69 
+
70  typedef signed char int8;
+
71  typedef signed short int16;
+
72  typedef signed int int32;
+
73  typedef sint64 int64;
+
74 
+
75  typedef unsigned char uint8;
+
76  typedef unsigned short uint16;
+
77  typedef unsigned int uint32;
+
78  typedef uint64 uint64;
+
79 #endif//
+
80 
+
81  typedef signed int lowp_int_t;
+
82  typedef signed int mediump_int_t;
+
83  typedef signed int highp_int_t;
+
84 
+
85  typedef unsigned int lowp_uint_t;
+
86  typedef unsigned int mediump_uint_t;
+
87  typedef unsigned int highp_uint_t;
+
88 
+
89 # if GLM_HAS_MAKE_SIGNED
+
90  using std::make_signed;
+
91  using std::make_unsigned;
92 
-
93 }//namespace glm
-
94 
-
95 #endif//glm_core_type_float
-
float float32
Default 32 bit single-precision floating-point scalar.
Definition: type_float.hpp:81
-
highp_float_t highp_float
High precision floating-point numbers.
Definition: type_float.hpp:67
-
mediump_float_t mediump_float
Medium precision floating-point numbers.
Definition: type_float.hpp:60
-
lowp_float_t lowp_float
Low precision floating-point numbers.
Definition: type_float.hpp:53
-
double float64
Default 64 bit double-precision floating-point scalar.
Definition: type_float.hpp:82
+
93 # else//GLM_HAS_MAKE_SIGNED
+
94  template <typename genType>
+
95  struct make_signed
+
96  {};
+
97 
+
98  template <>
+
99  struct make_signed<char>
+
100  {
+
101  typedef char type;
+
102  };
+
103 
+
104  template <>
+
105  struct make_signed<short>
+
106  {
+
107  typedef short type;
+
108  };
+
109 
+
110  template <>
+
111  struct make_signed<int>
+
112  {
+
113  typedef int type;
+
114  };
+
115 
+
116  template <>
+
117  struct make_signed<long>
+
118  {
+
119  typedef long type;
+
120  };
+
121 
+
122  template <>
+
123  struct make_signed<long long>
+
124  {
+
125  typedef long long type;
+
126  };
+
127 
+
128  template <>
+
129  struct make_signed<unsigned char>
+
130  {
+
131  typedef char type;
+
132  };
+
133 
+
134  template <>
+
135  struct make_signed<unsigned short>
+
136  {
+
137  typedef short type;
+
138  };
+
139 
+
140  template <>
+
141  struct make_signed<unsigned int>
+
142  {
+
143  typedef int type;
+
144  };
+
145 
+
146  template <>
+
147  struct make_signed<unsigned long>
+
148  {
+
149  typedef long type;
+
150  };
+
151 
+
152  template <>
+
153  struct make_signed<unsigned long long>
+
154  {
+
155  typedef long long type;
+
156  };
+
157 
+
158  template <typename genType>
+
159  struct make_unsigned
+
160  {};
+
161 
+
162  template <>
+
163  struct make_unsigned<char>
+
164  {
+
165  typedef unsigned char type;
+
166  };
+
167 
+
168  template <>
+
169  struct make_unsigned<short>
+
170  {
+
171  typedef unsigned short type;
+
172  };
+
173 
+
174  template <>
+
175  struct make_unsigned<int>
+
176  {
+
177  typedef unsigned int type;
+
178  };
+
179 
+
180  template <>
+
181  struct make_unsigned<long>
+
182  {
+
183  typedef unsigned long type;
+
184  };
+
185 
+
186  template <>
+
187  struct make_unsigned<long long>
+
188  {
+
189  typedef unsigned long long type;
+
190  };
+
191 
+
192  template <>
+
193  struct make_unsigned<unsigned char>
+
194  {
+
195  typedef unsigned char type;
+
196  };
+
197 
+
198  template <>
+
199  struct make_unsigned<unsigned short>
+
200  {
+
201  typedef unsigned short type;
+
202  };
+
203 
+
204  template <>
+
205  struct make_unsigned<unsigned int>
+
206  {
+
207  typedef unsigned int type;
+
208  };
+
209 
+
210  template <>
+
211  struct make_unsigned<unsigned long>
+
212  {
+
213  typedef unsigned long type;
+
214  };
+
215 
+
216  template <>
+
217  struct make_unsigned<unsigned long long>
+
218  {
+
219  typedef unsigned long long type;
+
220  };
+
221 # endif//GLM_HAS_MAKE_SIGNED
+
222 }//namespace detail
+
223 
+
224  typedef detail::int8 int8;
+
225  typedef detail::int16 int16;
+
226  typedef detail::int32 int32;
+
227  typedef detail::int64 int64;
+
228 
+
229  typedef detail::uint8 uint8;
+
230  typedef detail::uint16 uint16;
+
231  typedef detail::uint32 uint32;
+
232  typedef detail::uint64 uint64;
+
233 
+
236 
+
242  typedef detail::lowp_int_t lowp_int;
+
243 
+
249  typedef detail::mediump_int_t mediump_int;
+
250 
+
256  typedef detail::highp_int_t highp_int;
+
257 
+
263  typedef detail::lowp_uint_t lowp_uint;
+
264 
+
270  typedef detail::mediump_uint_t mediump_uint;
+
271 
+
277  typedef detail::highp_uint_t highp_uint;
+
278 
+
279 #if(!defined(GLM_PRECISION_HIGHP_INT) && !defined(GLM_PRECISION_MEDIUMP_INT) && !defined(GLM_PRECISION_LOWP_INT))
+
280  typedef mediump_int int_t;
+
281 #elif(defined(GLM_PRECISION_HIGHP_INT) && !defined(GLM_PRECISION_MEDIUMP_INT) && !defined(GLM_PRECISION_LOWP_INT))
+
282  typedef highp_int int_t;
+
283 #elif(!defined(GLM_PRECISION_HIGHP_INT) && defined(GLM_PRECISION_MEDIUMP_INT) && !defined(GLM_PRECISION_LOWP_INT))
+
284  typedef mediump_int int_t;
+
285 #elif(!defined(GLM_PRECISION_HIGHP_INT) && !defined(GLM_PRECISION_MEDIUMP_INT) && defined(GLM_PRECISION_LOWP_INT))
+
286  typedef lowp_int int_t;
+
287 #else
+
288 # error "GLM error: multiple default precision requested for signed interger types"
+
289 #endif
+
290 
+
291 #if(!defined(GLM_PRECISION_HIGHP_UINT) && !defined(GLM_PRECISION_MEDIUMP_UINT) && !defined(GLM_PRECISION_LOWP_UINT))
+
292  typedef mediump_uint uint_t;
+
293 #elif(defined(GLM_PRECISION_HIGHP_UINT) && !defined(GLM_PRECISION_MEDIUMP_UINT) && !defined(GLM_PRECISION_LOWP_UINT))
+
294  typedef highp_uint uint_t;
+
295 #elif(!defined(GLM_PRECISION_HIGHP_UINT) && defined(GLM_PRECISION_MEDIUMP_UINT) && !defined(GLM_PRECISION_LOWP_UINT))
+
296  typedef mediump_uint uint_t;
+
297 #elif(!defined(GLM_PRECISION_HIGHP_UINT) && !defined(GLM_PRECISION_MEDIUMP_UINT) && defined(GLM_PRECISION_LOWP_UINT))
+
298  typedef lowp_uint uint_t;
+
299 #else
+
300 # error "GLM error: multiple default precision requested for unsigned interger types"
+
301 #endif
+
302 
+
306  typedef unsigned int uint;
+
307 
+
309 
+
311 // check type sizes
+
312 #ifndef GLM_STATIC_ASSERT_NULL
+
313  GLM_STATIC_ASSERT(sizeof(glm::int8) == 1, "int8 size isn't 1 byte on this platform");
+
314  GLM_STATIC_ASSERT(sizeof(glm::int16) == 2, "int16 size isn't 2 bytes on this platform");
+
315  GLM_STATIC_ASSERT(sizeof(glm::int32) == 4, "int32 size isn't 4 bytes on this platform");
+
316  GLM_STATIC_ASSERT(sizeof(glm::int64) == 8, "int64 size isn't 8 bytes on this platform");
+
317 
+
318  GLM_STATIC_ASSERT(sizeof(glm::uint8) == 1, "uint8 size isn't 1 byte on this platform");
+
319  GLM_STATIC_ASSERT(sizeof(glm::uint16) == 2, "uint16 size isn't 2 bytes on this platform");
+
320  GLM_STATIC_ASSERT(sizeof(glm::uint32) == 4, "uint32 size isn't 4 bytes on this platform");
+
321  GLM_STATIC_ASSERT(sizeof(glm::uint64) == 8, "uint64 size isn't 8 bytes on this platform");
+
322 #endif//GLM_STATIC_ASSERT_NULL
+
323 
+
324 }//namespace glm
+
detail::mediump_int_t mediump_int
Medium precision signed integer.
Definition: type_int.hpp:249
+
detail::uint64 uint64_t
64 bit unsigned integer type.
Definition: fwd.hpp:921
+
detail::highp_int_t highp_int
High precision signed integer.
Definition: type_int.hpp:256
+
detail::uint32 uint32_t
32 bit unsigned integer type.
Definition: fwd.hpp:917
+
detail::int32 int32_t
32 bit signed integer type.
Definition: fwd.hpp:308
+
detail::uint16 uint16
16 bit unsigned integer type.
Definition: type_int.hpp:230
+
detail::uint16 uint16_t
16 bit unsigned integer type.
Definition: fwd.hpp:913
+
unsigned int uint
Unsigned integer type.
Definition: type_int.hpp:306
+
detail::uint64 uint64
64 bit unsigned integer type.
Definition: type_int.hpp:232
+
detail::int16 int16_t
16 bit signed integer type.
Definition: fwd.hpp:304
+
detail::uint8 uint8
8 bit unsigned integer type.
Definition: type_int.hpp:229
+
detail::uint32 uint32
32 bit unsigned integer type.
Definition: type_int.hpp:231
+
detail::int8 int8
8 bit signed integer type.
Definition: type_int.hpp:224
+
detail::lowp_uint_t lowp_uint
Low precision unsigned integer.
Definition: type_int.hpp:263
+
detail::lowp_int_t lowp_int
Low precision signed integer.
Definition: type_int.hpp:242
+
detail::int32 int32
32 bit signed integer type.
Definition: type_int.hpp:226
+
detail::int16 int16
16 bit signed integer type.
Definition: type_int.hpp:225
+
detail::int64 int64_t
64 bit signed integer type.
Definition: fwd.hpp:312
+
detail::mediump_uint_t mediump_uint
Medium precision unsigned integer.
Definition: type_int.hpp:270
+
detail::highp_uint_t highp_uint
High precision unsigned integer.
Definition: type_int.hpp:277
+
detail::int8 int8_t
8 bit signed integer type.
Definition: fwd.hpp:300
+
Definition: _noise.hpp:39
+
OpenGL Mathematics (glm.g-truc.net)
+
detail::uint8 uint8_t
8 bit unsigned integer type.
Definition: fwd.hpp:909
+
detail::int64 int64
64 bit signed integer type.
Definition: type_int.hpp:227
diff --git a/doc/api/a00119.html b/doc/api/a00119.html new file mode 100644 index 00000000..b17ff7a0 --- /dev/null +++ b/doc/api/a00119.html @@ -0,0 +1,271 @@ + + + + + + +0.9.6: type_mat.hpp File Reference + + + + + + +
+
+ + + + + + + +
+
0.9.6 +
+
+
+ + + + + +
+
+ +
+
type_mat.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Typedefs

typedef highp_dmat2x2 dmat2
 
typedef highp_dmat2x2 dmat2x2
 
typedef highp_dmat2x3 dmat2x3
 
typedef highp_dmat2x4 dmat2x4
 
typedef highp_dmat3x3 dmat3
 
typedef highp_dmat3x2 dmat3x2
 
typedef highp_dmat3x3 dmat3x3
 
typedef highp_dmat3x4 dmat3x4
 
typedef highp_dmat4x4 dmat4
 
typedef highp_dmat4x2 dmat4x2
 
typedef highp_dmat4x3 dmat4x3
 
typedef highp_dmat4x4 dmat4x4
 
typedef tmat2x2< double, highp > highp_dmat2
 
typedef tmat2x2< double, highp > highp_dmat2x2
 
typedef tmat2x3< double, highp > highp_dmat2x3
 
typedef tmat2x4< double, highp > highp_dmat2x4
 
typedef tmat3x3< double, highp > highp_dmat3
 
typedef tmat3x2< double, highp > highp_dmat3x2
 
typedef tmat3x3< double, highp > highp_dmat3x3
 
typedef tmat3x4< double, highp > highp_dmat3x4
 
typedef tmat4x4< double, highp > highp_dmat4
 
typedef tmat4x2< double, highp > highp_dmat4x2
 
typedef tmat4x3< double, highp > highp_dmat4x3
 
typedef tmat4x4< double, highp > highp_dmat4x4
 
typedef tmat2x2< float, highp > highp_mat2
 
typedef tmat2x2< float, highp > highp_mat2x2
 
typedef tmat2x3< float, highp > highp_mat2x3
 
typedef tmat2x4< float, highp > highp_mat2x4
 
typedef tmat3x3< float, highp > highp_mat3
 
typedef tmat3x2< float, highp > highp_mat3x2
 
typedef tmat3x3< float, highp > highp_mat3x3
 
typedef tmat3x4< float, highp > highp_mat3x4
 
typedef tmat4x4< float, highp > highp_mat4
 
typedef tmat4x2< float, highp > highp_mat4x2
 
typedef tmat4x3< float, highp > highp_mat4x3
 
typedef tmat4x4< float, highp > highp_mat4x4
 
typedef tmat2x2< double, lowp > lowp_dmat2
 
typedef tmat2x2< double, lowp > lowp_dmat2x2
 
typedef tmat2x3< double, lowp > lowp_dmat2x3
 
typedef tmat2x4< double, lowp > lowp_dmat2x4
 
typedef tmat3x3< float, lowp > lowp_dmat3
 
typedef tmat3x2< double, lowp > lowp_dmat3x2
 
typedef tmat3x3< double, lowp > lowp_dmat3x3
 
typedef tmat3x4< double, lowp > lowp_dmat3x4
 
typedef tmat4x4< double, lowp > lowp_dmat4
 
typedef tmat4x2< double, lowp > lowp_dmat4x2
 
typedef tmat4x3< double, lowp > lowp_dmat4x3
 
typedef tmat4x4< double, lowp > lowp_dmat4x4
 
typedef tmat2x2< float, lowp > lowp_mat2
 
typedef tmat2x2< float, lowp > lowp_mat2x2
 
typedef tmat2x3< float, lowp > lowp_mat2x3
 
typedef tmat2x4< float, lowp > lowp_mat2x4
 
typedef tmat3x3< float, lowp > lowp_mat3
 
typedef tmat3x2< float, lowp > lowp_mat3x2
 
typedef tmat3x3< float, lowp > lowp_mat3x3
 
typedef tmat3x4< float, lowp > lowp_mat3x4
 
typedef tmat4x4< float, lowp > lowp_mat4
 
typedef tmat4x2< float, lowp > lowp_mat4x2
 
typedef tmat4x3< float, lowp > lowp_mat4x3
 
typedef tmat4x4< float, lowp > lowp_mat4x4
 
typedef mat2x2 mat2
 
typedef highp_mat2x2 mat2x2
 
typedef highp_mat2x3 mat2x3
 
typedef highp_mat2x4 mat2x4
 
typedef mat3x3 mat3
 
typedef highp_mat3x2 mat3x2
 
typedef highp_mat3x3 mat3x3
 
typedef highp_mat3x4 mat3x4
 
typedef mat4x4 mat4
 
typedef highp_mat4x2 mat4x2
 
typedef highp_mat4x3 mat4x3
 
typedef highp_mat4x4 mat4x4
 
typedef tmat2x2< double, mediump > mediump_dmat2
 
typedef tmat2x2< double, mediump > mediump_dmat2x2
 
typedef tmat2x3< double, mediump > mediump_dmat2x3
 
typedef tmat2x4< double, mediump > mediump_dmat2x4
 
typedef tmat3x3< double, mediump > mediump_dmat3
 
typedef tmat3x2< double, mediump > mediump_dmat3x2
 
typedef tmat3x3< double, mediump > mediump_dmat3x3
 
typedef tmat3x4< double, mediump > mediump_dmat3x4
 
typedef tmat4x4< double, mediump > mediump_dmat4
 
typedef tmat4x2< double, mediump > mediump_dmat4x2
 
typedef tmat4x3< double, mediump > mediump_dmat4x3
 
typedef tmat4x4< double, mediump > mediump_dmat4x4
 
typedef tmat2x2< float, mediump > mediump_mat2
 
typedef tmat2x2< float, mediump > mediump_mat2x2
 
typedef tmat2x3< float, mediump > mediump_mat2x3
 
typedef tmat2x4< float, mediump > mediump_mat2x4
 
typedef tmat3x3< float, mediump > mediump_mat3
 
typedef tmat3x2< float, mediump > mediump_mat3x2
 
typedef tmat3x3< float, mediump > mediump_mat3x3
 
typedef tmat3x4< float, mediump > mediump_mat3x4
 
typedef tmat4x4< float, mediump > mediump_mat4
 
typedef tmat4x2< float, mediump > mediump_mat4x2
 
typedef tmat4x3< float, mediump > mediump_mat4x3
 
typedef tmat4x4< float, mediump > mediump_mat4x4
 
+

Detailed Description

+

OpenGL Mathematics (glm.g-truc.net)

+

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+

GLM Core

+
Date
2010-01-26 / 2011-06-15
+
Author
Christophe Riccio
+ +

Definition in file type_mat.hpp.

+
+ + + + diff --git a/doc/api/a00119_source.html b/doc/api/a00119_source.html index 9354b449..49463e00 100644 --- a/doc/api/a00119_source.html +++ b/doc/api/a00119_source.html @@ -3,8 +3,8 @@ - -GLM: type_gentype.hpp Source File + +0.9.6: type_mat.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,210 +41,425 @@
-
type_gentype.hpp
+
type_mat.hpp
-
1 
-
29 #ifndef glm_core_type_gentype
-
30 #define glm_core_type_gentype
-
31 
-
32 namespace glm
-
33 {
-
34  enum profile
-
35  {
-
36  nice,
-
37  fast,
-
38  simd
-
39  };
-
40 
-
41  typedef std::size_t sizeType;
-
42 
-
43 namespace detail
-
44 {
-
45  template
-
46  <
-
47  typename VALTYPE,
-
48  template <typename> class TYPE
-
49  >
-
50  struct genType
-
51  {
-
52  public:
-
53  enum ctor{null};
-
54 
-
55  typedef VALTYPE value_type;
-
56  typedef VALTYPE & value_reference;
-
57  typedef VALTYPE * value_pointer;
-
58  typedef VALTYPE const * value_const_pointer;
-
59  typedef TYPE<bool> bool_type;
-
60 
-
61  typedef sizeType size_type;
-
62  static bool is_vector();
-
63  static bool is_matrix();
-
64 
-
65  typedef TYPE<VALTYPE> type;
-
66  typedef TYPE<VALTYPE> * pointer;
-
67  typedef TYPE<VALTYPE> const * const_pointer;
-
68  typedef TYPE<VALTYPE> const * const const_pointer_const;
-
69  typedef TYPE<VALTYPE> * const pointer_const;
-
70  typedef TYPE<VALTYPE> & reference;
-
71  typedef TYPE<VALTYPE> const & const_reference;
-
72  typedef TYPE<VALTYPE> const & param_type;
-
73 
-
75  // Address (Implementation details)
-
76 
-
77  value_const_pointer value_address() const{return value_pointer(this);}
-
78  value_pointer value_address(){return value_pointer(this);}
-
79 
-
80  //protected:
-
81  // enum kind
-
82  // {
-
83  // GEN_TYPE,
-
84  // VEC_TYPE,
-
85  // MAT_TYPE
-
86  // };
-
87 
-
88  // typedef typename TYPE::kind kind;
-
89  };
-
90 
-
91  template
-
92  <
-
93  typename VALTYPE,
-
94  template <typename> class TYPE
-
95  >
-
96  bool genType<VALTYPE, TYPE>::is_vector()
-
97  {
-
98  return true;
-
99  }
-
100 /*
-
101  template <typename valTypeT, unsigned int colT, unsigned int rowT, profile proT = nice>
-
102  class base
-
103  {
-
104  public:
-
106  // Traits
-
107 
-
108  typedef sizeType size_type;
-
109  typedef valTypeT value_type;
-
110 
-
111  typedef base<value_type, colT, rowT> class_type;
-
112 
-
113  typedef base<bool, colT, rowT> bool_type;
-
114  typedef base<value_type, rowT, 1> col_type;
-
115  typedef base<value_type, colT, 1> row_type;
-
116  typedef base<value_type, rowT, colT> transpose_type;
-
117 
-
118  static size_type col_size();
-
119  static size_type row_size();
-
120  static size_type value_size();
-
121  static bool is_scalar();
-
122  static bool is_vector();
-
123  static bool is_matrix();
-
124 
-
125  private:
-
126  // Data
-
127  col_type value[colT];
-
128 
-
129  public:
-
131  // Constructors
-
132  base();
-
133  base(class_type const & m);
-
134 
-
135  explicit base(T const & x);
-
136  explicit base(value_type const * const x);
-
137  explicit base(col_type const * const x);
-
138 
-
140  // Conversions
-
141  template <typename vU, uint cU, uint rU, profile pU>
-
142  explicit base(base<vU, cU, rU, pU> const & m);
-
143 
-
145  // Accesses
-
146  col_type& operator[](size_type i);
-
147  col_type const & operator[](size_type i) const;
-
148 
-
150  // Unary updatable operators
-
151  class_type& operator= (class_type const & x);
-
152  class_type& operator+= (T const & x);
-
153  class_type& operator+= (class_type const & x);
-
154  class_type& operator-= (T const & x);
-
155  class_type& operator-= (class_type const & x);
-
156  class_type& operator*= (T const & x);
-
157  class_type& operator*= (class_type const & x);
-
158  class_type& operator/= (T const & x);
-
159  class_type& operator/= (class_type const & x);
-
160  class_type& operator++ ();
-
161  class_type& operator-- ();
-
162  };
-
163 */
-
164 
-
165  //template <typename T>
-
166  //struct traits
-
167  //{
-
168  // static const bool is_signed = false;
-
169  // static const bool is_float = false;
-
170  // static const bool is_vector = false;
-
171  // static const bool is_matrix = false;
-
172  // static const bool is_genType = false;
-
173  // static const bool is_genIType = false;
-
174  // static const bool is_genUType = false;
-
175  //};
-
176 
-
177  //template <>
-
178  //struct traits<half>
-
179  //{
-
180  // static const bool is_float = true;
-
181  // static const bool is_genType = true;
-
182  //};
-
183 
-
184  //template <>
-
185  //struct traits<float>
-
186  //{
-
187  // static const bool is_float = true;
-
188  // static const bool is_genType = true;
-
189  //};
-
190 
-
191  //template <>
-
192  //struct traits<double>
-
193  //{
-
194  // static const bool is_float = true;
-
195  // static const bool is_genType = true;
-
196  //};
-
197 
-
198  //template <typename genType>
-
199  //struct desc
-
200  //{
-
201  // typedef genType type;
-
202  // typedef genType * pointer;
-
203  // typedef genType const* const_pointer;
-
204  // typedef genType const *const const_pointer_const;
-
205  // typedef genType *const pointer_const;
-
206  // typedef genType & reference;
-
207  // typedef genType const& const_reference;
-
208  // typedef genType const& param_type;
-
209 
-
210  // typedef typename genType::value_type value_type;
-
211  // typedef typename genType::size_type size_type;
-
212  // static const typename size_type value_size;
-
213  //};
-
214 
-
215  //template <typename genType>
-
216  //const typename desc<genType>::size_type desc<genType>::value_size = genType::value_size();
-
217 
-
218 }//namespace detail
-
219 }//namespace glm
-
220 
-
221 //#include "type_gentype.inl"
-
222 
-
223 #endif//glm_core_type_gentype
+Go to the documentation of this file.
1 
+
33 #pragma once
+
34 
+
35 #include "precision.hpp"
+
36 
+
37 namespace glm{
+
38 namespace detail
+
39 {
+
40  template <typename T, precision P, template <class, precision> class colType, template <class, precision> class rowType>
+
41  struct outerProduct_trait{};
+
42 }//namespace detail
+
43 
+
44  template <typename T, precision P> struct tvec2;
+
45  template <typename T, precision P> struct tvec3;
+
46  template <typename T, precision P> struct tvec4;
+
47  template <typename T, precision P> struct tmat2x2;
+
48  template <typename T, precision P> struct tmat2x3;
+
49  template <typename T, precision P> struct tmat2x4;
+
50  template <typename T, precision P> struct tmat3x2;
+
51  template <typename T, precision P> struct tmat3x3;
+
52  template <typename T, precision P> struct tmat3x4;
+
53  template <typename T, precision P> struct tmat4x2;
+
54  template <typename T, precision P> struct tmat4x3;
+
55  template <typename T, precision P> struct tmat4x4;
+
56 
+
59 
+
65  typedef tmat2x2<float, lowp> lowp_mat2;
+
66 
+
72  typedef tmat2x2<float, mediump> mediump_mat2;
+
73 
+
79  typedef tmat2x2<float, highp> highp_mat2;
+
80 
+
86  typedef tmat2x2<float, lowp> lowp_mat2x2;
+
87 
+
93  typedef tmat2x2<float, mediump> mediump_mat2x2;
+
94 
+
100  typedef tmat2x2<float, highp> highp_mat2x2;
+
101 
+
103 
+
106 
+
112  typedef tmat2x3<float, lowp> lowp_mat2x3;
+
113 
+
119  typedef tmat2x3<float, mediump> mediump_mat2x3;
+
120 
+
126  typedef tmat2x3<float, highp> highp_mat2x3;
+
127 
+
129 
+
132 
+
138  typedef tmat2x4<float, lowp> lowp_mat2x4;
+
139 
+
145  typedef tmat2x4<float, mediump> mediump_mat2x4;
+
146 
+
152  typedef tmat2x4<float, highp> highp_mat2x4;
+
153 
+
155 
+
158 
+
164  typedef tmat3x2<float, lowp> lowp_mat3x2;
+
165 
+
171  typedef tmat3x2<float, mediump> mediump_mat3x2;
+
172 
+
178  typedef tmat3x2<float, highp> highp_mat3x2;
+
179 
+
181 
+
184 
+
190  typedef tmat3x3<float, lowp> lowp_mat3;
+
191 
+
197  typedef tmat3x3<float, mediump> mediump_mat3;
+
198 
+
204  typedef tmat3x3<float, highp> highp_mat3;
+
205 
+
211  typedef tmat3x3<float, lowp> lowp_mat3x3;
+
212 
+
218  typedef tmat3x3<float, mediump> mediump_mat3x3;
+
219 
+
225  typedef tmat3x3<float, highp> highp_mat3x3;
+
226 
+
228 
+
231 
+
237  typedef tmat3x4<float, lowp> lowp_mat3x4;
+
238 
+
244  typedef tmat3x4<float, mediump> mediump_mat3x4;
+
245 
+
251  typedef tmat3x4<float, highp> highp_mat3x4;
+
252 
+
254 
+
257 
+
263  typedef tmat4x2<float, lowp> lowp_mat4x2;
+
264 
+
270  typedef tmat4x2<float, mediump> mediump_mat4x2;
+
271 
+
277  typedef tmat4x2<float, highp> highp_mat4x2;
+
278 
+
280 
+
283 
+
289  typedef tmat4x3<float, lowp> lowp_mat4x3;
+
290 
+
296  typedef tmat4x3<float, mediump> mediump_mat4x3;
+
297 
+
303  typedef tmat4x3<float, highp> highp_mat4x3;
+
304 
+
306 
+
307 
+
310 
+
316  typedef tmat4x4<float, lowp> lowp_mat4;
+
317 
+
323  typedef tmat4x4<float, mediump> mediump_mat4;
+
324 
+
330  typedef tmat4x4<float, highp> highp_mat4;
+
331 
+
337  typedef tmat4x4<float, lowp> lowp_mat4x4;
+
338 
+
344  typedef tmat4x4<float, mediump> mediump_mat4x4;
+
345 
+
351  typedef tmat4x4<float, highp> highp_mat4x4;
+
352 
+
354 
+
357 
+
359  // Float definition
+
360 
+
361 #if(defined(GLM_PRECISION_LOWP_FLOAT))
+
362  typedef lowp_mat2x2 mat2x2;
+
363  typedef lowp_mat2x3 mat2x3;
+
364  typedef lowp_mat2x4 mat2x4;
+
365  typedef lowp_mat3x2 mat3x2;
+
366  typedef lowp_mat3x3 mat3x3;
+
367  typedef lowp_mat3x4 mat3x4;
+
368  typedef lowp_mat4x2 mat4x2;
+
369  typedef lowp_mat4x3 mat4x3;
+
370  typedef lowp_mat4x4 mat4x4;
+
371 #elif(defined(GLM_PRECISION_MEDIUMP_FLOAT))
+
372  typedef mediump_mat2x2 mat2x2;
+
373  typedef mediump_mat2x3 mat2x3;
+
374  typedef mediump_mat2x4 mat2x4;
+
375  typedef mediump_mat3x2 mat3x2;
+
376  typedef mediump_mat3x3 mat3x3;
+
377  typedef mediump_mat3x4 mat3x4;
+
378  typedef mediump_mat4x2 mat4x2;
+
379  typedef mediump_mat4x3 mat4x3;
+
380  typedef mediump_mat4x4 mat4x4;
+
381 #else
+
382  typedef highp_mat2x2 mat2x2;
+
386 
+
390  typedef highp_mat2x3 mat2x3;
+
391 
+
395  typedef highp_mat2x4 mat2x4;
+
396 
+
400  typedef highp_mat3x2 mat3x2;
+
401 
+
405  typedef highp_mat3x3 mat3x3;
+
406 
+
410  typedef highp_mat3x4 mat3x4;
+
411 
+
415  typedef highp_mat4x2 mat4x2;
+
416 
+
420  typedef highp_mat4x3 mat4x3;
+
421 
+
425  typedef highp_mat4x4 mat4x4;
+
426 
+
427 #endif//GLM_PRECISION
+
428 
+
432  typedef mat2x2 mat2;
+
433 
+
437  typedef mat3x3 mat3;
+
438 
+
442  typedef mat4x4 mat4;
+
443 
+
445  // Double definition
+
446 
+
449 
+
454  typedef tmat2x2<double, lowp> lowp_dmat2;
+
455 
+
460  typedef tmat2x2<double, mediump> mediump_dmat2;
+
461 
+
466  typedef tmat2x2<double, highp> highp_dmat2;
+
467 
+
472  typedef tmat2x2<double, lowp> lowp_dmat2x2;
+
473 
+
478  typedef tmat2x2<double, mediump> mediump_dmat2x2;
+
479 
+
484  typedef tmat2x2<double, highp> highp_dmat2x2;
+
485 
+
487 
+
490 
+
495  typedef tmat2x3<double, lowp> lowp_dmat2x3;
+
496 
+
501  typedef tmat2x3<double, mediump> mediump_dmat2x3;
+
502 
+
507  typedef tmat2x3<double, highp> highp_dmat2x3;
+
508 
+
510 
+
513 
+
518  typedef tmat2x4<double, lowp> lowp_dmat2x4;
+
519 
+
524  typedef tmat2x4<double, mediump> mediump_dmat2x4;
+
525 
+
530  typedef tmat2x4<double, highp> highp_dmat2x4;
+
531 
+
533 
+
536 
+
541  typedef tmat3x2<double, lowp> lowp_dmat3x2;
+
542 
+
547  typedef tmat3x2<double, mediump> mediump_dmat3x2;
+
548 
+
553  typedef tmat3x2<double, highp> highp_dmat3x2;
+
554 
+
556 
+
559 
+
564  typedef tmat3x3<float, lowp> lowp_dmat3;
+
565 
+
570  typedef tmat3x3<double, mediump> mediump_dmat3;
+
571 
+
576  typedef tmat3x3<double, highp> highp_dmat3;
+
577 
+
582  typedef tmat3x3<double, lowp> lowp_dmat3x3;
+
583 
+
588  typedef tmat3x3<double, mediump> mediump_dmat3x3;
+
589 
+
594  typedef tmat3x3<double, highp> highp_dmat3x3;
+
595 
+
597 
+
600 
+
605  typedef tmat3x4<double, lowp> lowp_dmat3x4;
+
606 
+
611  typedef tmat3x4<double, mediump> mediump_dmat3x4;
+
612 
+
617  typedef tmat3x4<double, highp> highp_dmat3x4;
+
618 
+
620 
+
623 
+
628  typedef tmat4x2<double, lowp> lowp_dmat4x2;
+
629 
+
634  typedef tmat4x2<double, mediump> mediump_dmat4x2;
+
635 
+
640  typedef tmat4x2<double, highp> highp_dmat4x2;
+
641 
+
643 
+
646 
+
651  typedef tmat4x3<double, lowp> lowp_dmat4x3;
+
652 
+
657  typedef tmat4x3<double, mediump> mediump_dmat4x3;
+
658 
+
663  typedef tmat4x3<double, highp> highp_dmat4x3;
+
664 
+
666 
+
669 
+
674  typedef tmat4x4<double, lowp> lowp_dmat4;
+
675 
+
680  typedef tmat4x4<double, mediump> mediump_dmat4;
+
681 
+
686  typedef tmat4x4<double, highp> highp_dmat4;
+
687 
+
692  typedef tmat4x4<double, lowp> lowp_dmat4x4;
+
693 
+
698  typedef tmat4x4<double, mediump> mediump_dmat4x4;
+
699 
+
704  typedef tmat4x4<double, highp> highp_dmat4x4;
+
705 
+
707 
+
708 #if(defined(GLM_PRECISION_LOWP_DOUBLE))
+
709  typedef lowp_dmat2x2 dmat2x2;
+
710  typedef lowp_dmat2x3 dmat2x3;
+
711  typedef lowp_dmat2x4 dmat2x4;
+
712  typedef lowp_dmat3x2 dmat3x2;
+
713  typedef lowp_dmat3x3 dmat3x3;
+
714  typedef lowp_dmat3x4 dmat3x4;
+
715  typedef lowp_dmat4x2 dmat4x2;
+
716  typedef lowp_dmat4x3 dmat4x3;
+
717  typedef lowp_dmat4x4 dmat4x4;
+
718 #elif(defined(GLM_PRECISION_MEDIUMP_DOUBLE))
+
719  typedef mediump_dmat2x2 dmat2x2;
+
720  typedef mediump_dmat2x3 dmat2x3;
+
721  typedef mediump_dmat2x4 dmat2x4;
+
722  typedef mediump_dmat3x2 dmat3x2;
+
723  typedef mediump_dmat3x3 dmat3x3;
+
724  typedef mediump_dmat3x4 dmat3x4;
+
725  typedef mediump_dmat4x2 dmat4x2;
+
726  typedef mediump_dmat4x3 dmat4x3;
+
727  typedef mediump_dmat4x4 dmat4x4;
+
728 #else //defined(GLM_PRECISION_HIGHP_DOUBLE)
+
729 
+
733  typedef highp_dmat2x2 dmat2;
+
734 
+
738  typedef highp_dmat3x3 dmat3;
+
739 
+
743  typedef highp_dmat4x4 dmat4;
+
744 
+
748  typedef highp_dmat2x2 dmat2x2;
+
749 
+
753  typedef highp_dmat2x3 dmat2x3;
+
754 
+
758  typedef highp_dmat2x4 dmat2x4;
+
759 
+
763  typedef highp_dmat3x2 dmat3x2;
+
764 
+
768  typedef highp_dmat3x3 dmat3x3;
+
769 
+
773  typedef highp_dmat3x4 dmat3x4;
+
774 
+
778  typedef highp_dmat4x2 dmat4x2;
+
779 
+
783  typedef highp_dmat4x3 dmat4x3;
+
784 
+
788  typedef highp_dmat4x4 dmat4x4;
+
789 
+
790 #endif//GLM_PRECISION
+
791 
+
793 }//namespace glm
+
tmat3x2< float, highp > highp_mat3x2
3 columns of 2 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:178
+
tmat3x3< double, lowp > lowp_dmat3x3
3 columns of 3 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:582
+
tmat2x2< float, mediump > mediump_mat2
2 columns of 2 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:72
+
highp_dmat2x3 dmat2x3
2 * 3 matrix of double-precision floating-point numbers.
Definition: type_mat.hpp:753
+
tmat3x3< double, highp > highp_dmat3
3 columns of 3 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:576
+
highp_dmat4x4 dmat4x4
4 * 4 matrix of double-precision floating-point numbers.
Definition: type_mat.hpp:788
+
tmat2x4< float, highp > highp_mat2x4
2 columns of 4 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:152
+
tmat3x2< float, lowp > lowp_mat3x2
3 columns of 2 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:164
+
OpenGL Mathematics (glm.g-truc.net)
+
tmat2x4< float, lowp > lowp_mat2x4
2 columns of 4 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:138
+
tmat2x3< float, mediump > mediump_mat2x3
2 columns of 3 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:119
+
tmat4x2< float, highp > highp_mat4x2
4 columns of 2 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:277
+
tmat3x2< double, lowp > lowp_dmat3x2
3 columns of 2 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:541
+
tmat4x4< float, lowp > lowp_mat4x4
4 columns of 4 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:337
+
tmat4x4< float, lowp > lowp_mat4
4 columns of 4 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:316
+
tmat4x4< float, mediump > mediump_mat4x4
4 columns of 4 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:344
+
highp_mat3x4 mat3x4
3 columns of 4 components matrix of floating-point numbers.
Definition: type_mat.hpp:410
+
tmat4x4< float, mediump > mediump_mat4
4 columns of 4 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:323
+
tmat2x4< double, lowp > lowp_dmat2x4
2 columns of 4 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:518
+
tmat3x4< float, lowp > lowp_mat3x4
3 columns of 4 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:237
+
highp_dmat3x2 dmat3x2
3 * 2 matrix of double-precision floating-point numbers.
Definition: type_mat.hpp:763
+
tmat4x4< double, lowp > lowp_dmat4x4
4 columns of 4 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:692
+
tmat3x4< float, mediump > mediump_mat3x4
3 columns of 4 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:244
+
tmat2x2< float, mediump > mediump_mat2x2
2 columns of 2 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:93
+
tmat2x2< float, lowp > lowp_mat2x2
2 columns of 2 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:86
+
tmat3x4< double, highp > highp_dmat3x4
3 columns of 4 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:617
+
tmat2x2< double, highp > highp_dmat2
2 columns of 2 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:466
+
tmat3x3< float, highp > highp_mat3x3
3 columns of 3 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:225
+
highp_dmat3x3 dmat3
3 * 3 matrix of double-precision floating-point numbers.
Definition: type_mat.hpp:738
+
tmat4x2< float, lowp > lowp_mat4x2
4 columns of 2 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:263
+
tmat3x3< double, mediump > mediump_dmat3x3
3 columns of 3 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:588
+
tmat2x2< double, lowp > lowp_dmat2
2 columns of 2 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:454
+
mat3x3 mat3
3 columns of 3 components matrix of floating-point numbers.
Definition: type_mat.hpp:437
+
tmat3x2< double, mediump > mediump_dmat3x2
3 columns of 2 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:547
+
tmat3x3< double, mediump > mediump_dmat3
3 columns of 3 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:570
+
highp_dmat4x4 dmat4
4 * 4 matrix of double-precision floating-point numbers.
Definition: type_mat.hpp:743
+
tmat4x3< double, mediump > mediump_dmat4x3
4 columns of 3 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:657
+
tmat2x2< float, highp > highp_mat2x2
2 columns of 2 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:100
+
tmat2x3< float, highp > highp_mat2x3
2 columns of 3 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:126
+
tmat3x2< double, highp > highp_dmat3x2
3 columns of 2 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:553
+
tmat2x4< double, highp > highp_dmat2x4
2 columns of 4 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:530
+
tmat2x2< double, highp > highp_dmat2x2
2 columns of 2 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:484
+
tmat4x4< float, highp > highp_mat4x4
4 columns of 4 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:351
+
highp_mat3x2 mat3x2
3 columns of 2 components matrix of floating-point numbers.
Definition: type_mat.hpp:400
+
highp_dmat4x2 dmat4x2
4 * 2 matrix of double-precision floating-point numbers.
Definition: type_mat.hpp:778
+
tmat4x3< float, mediump > mediump_mat4x3
4 columns of 3 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:296
+
mat4x4 mat4
4 columns of 4 components matrix of floating-point numbers.
Definition: type_mat.hpp:442
+
tmat4x3< float, highp > highp_mat4x3
4 columns of 3 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:303
+
tmat3x3< float, lowp > lowp_mat3x3
3 columns of 3 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:211
+
tmat4x2< double, highp > highp_dmat4x2
4 columns of 2 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:640
+
tmat2x4< double, mediump > mediump_dmat2x4
2 columns of 4 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:524
+
tmat4x4< double, highp > highp_dmat4
4 columns of 4 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:686
+
tmat4x4< double, highp > highp_dmat4x4
4 columns of 4 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:704
+
mat2x2 mat2
2 columns of 2 components matrix of floating-point numbers.
Definition: type_mat.hpp:432
+
tmat2x2< double, lowp > lowp_dmat2x2
2 columns of 2 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:472
+
tmat2x3< double, lowp > lowp_dmat2x3
2 columns of 3 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:495
+
tmat3x3< float, lowp > lowp_dmat3
3 columns of 3 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:564
+
tmat2x3< float, lowp > lowp_mat2x3
2 columns of 3 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:112
+
tmat3x3< double, highp > highp_dmat3x3
3 columns of 3 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:594
+
tmat2x2< float, lowp > lowp_mat2
2 columns of 2 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:65
+
highp_dmat4x3 dmat4x3
4 * 3 matrix of double-precision floating-point numbers.
Definition: type_mat.hpp:783
+
tmat3x3< float, mediump > mediump_mat3
3 columns of 3 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:197
+
tmat2x2< float, highp > highp_mat2
2 columns of 2 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:79
+
tmat2x3< double, mediump > mediump_dmat2x3
2 columns of 3 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:501
+
tmat2x3< double, highp > highp_dmat2x3
2 columns of 3 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:507
+
tmat3x4< double, lowp > lowp_dmat3x4
3 columns of 4 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:605
+
highp_dmat2x2 dmat2x2
2 * 2 matrix of double-precision floating-point numbers.
Definition: type_mat.hpp:748
+
tmat4x4< double, mediump > mediump_dmat4x4
4 columns of 4 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:698
+
highp_mat4x3 mat4x3
4 columns of 3 components matrix of floating-point numbers.
Definition: type_mat.hpp:420
+
highp_mat4x4 mat4x4
4 columns of 4 components matrix of floating-point numbers.
Definition: type_mat.hpp:425
+
tmat4x2< double, lowp > lowp_dmat4x2
4 columns of 2 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:628
+
highp_dmat2x2 dmat2
2 * 2 matrix of double-precision floating-point numbers.
Definition: type_mat.hpp:733
+
tmat3x3< float, highp > highp_mat3
3 columns of 3 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:204
+
tmat4x2< double, mediump > mediump_dmat4x2
4 columns of 2 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:634
+
Definition: _noise.hpp:39
+
tmat3x3< float, mediump > mediump_mat3x3
3 columns of 3 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:218
+
tmat3x3< float, lowp > lowp_mat3
3 columns of 3 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:190
+
tmat4x3< double, highp > highp_dmat4x3
4 columns of 3 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:663
+
tmat4x4< double, mediump > mediump_dmat4
4 columns of 4 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:680
+
tmat2x2< double, mediump > mediump_dmat2x2
2 columns of 2 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:478
+
highp_mat2x4 mat2x4
2 columns of 4 components matrix of floating-point numbers.
Definition: type_mat.hpp:395
+
tmat4x2< float, mediump > mediump_mat4x2
4 columns of 2 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:270
+
highp_dmat2x4 dmat2x4
2 * 4 matrix of double-precision floating-point numbers.
Definition: type_mat.hpp:758
+
tmat3x2< float, mediump > mediump_mat3x2
3 columns of 2 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:171
+
highp_mat3x3 mat3x3
3 columns of 3 components matrix of floating-point numbers.
Definition: type_mat.hpp:405
+
tmat2x4< float, mediump > mediump_mat2x4
2 columns of 4 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:145
+
tmat3x4< float, highp > highp_mat3x4
3 columns of 4 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:251
+
tmat4x4< float, highp > highp_mat4
4 columns of 4 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:330
+
tmat3x4< double, mediump > mediump_dmat3x4
3 columns of 4 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:611
+
tmat4x3< double, lowp > lowp_dmat4x3
4 columns of 3 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:651
+
highp_mat2x3 mat2x3
2 columns of 3 components matrix of floating-point numbers.
Definition: type_mat.hpp:390
+
highp_dmat3x3 dmat3x3
3 * 3 matrix of double-precision floating-point numbers.
Definition: type_mat.hpp:768
+
highp_dmat3x4 dmat3x4
3 * 4 matrix of double-precision floating-point numbers.
Definition: type_mat.hpp:773
+
tmat4x4< double, lowp > lowp_dmat4
4 columns of 4 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:674
+
highp_mat2x2 mat2x2
2 columns of 2 components matrix of floating-point numbers.
Definition: type_mat.hpp:385
+
highp_mat4x2 mat4x2
4 columns of 2 components matrix of floating-point numbers.
Definition: type_mat.hpp:415
+
tmat4x3< float, lowp > lowp_mat4x3
4 columns of 3 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:289
+
tmat2x2< double, mediump > mediump_dmat2
2 columns of 2 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:460
diff --git a/doc/api/a00120.html b/doc/api/a00120.html new file mode 100644 index 00000000..a9a2e446 --- /dev/null +++ b/doc/api/a00120.html @@ -0,0 +1,73 @@ + + + + + + +0.9.6: type_mat2x2.hpp File Reference + + + + + + +
+
+ + + + + + + +
+
0.9.6 +
+
+
+ + + + + +
+
+
+
type_mat2x2.hpp File Reference
+
+
+ +

Go to the source code of this file.

+

Detailed Description

+

OpenGL Mathematics (glm.g-truc.net)

+

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+

GLM Core

+
Date
2005-01-27 / 2011-06-15
+
Author
Christophe Riccio
+ +

Definition in file type_mat2x2.hpp.

+
+ + + + diff --git a/doc/api/a00120_source.html b/doc/api/a00120_source.html index 51802882..6cd5e364 100644 --- a/doc/api/a00120_source.html +++ b/doc/api/a00120_source.html @@ -3,8 +3,8 @@ - -GLM: type_half.hpp Source File + +0.9.6: type_mat2x2.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,43 +41,205 @@
-
type_half.hpp
+
type_mat2x2.hpp
-
1 
-
29 #ifndef glm_core_type_half
-
30 #define glm_core_type_half
-
31 
-
32 #include "setup.hpp"
-
33 
-
34 namespace glm{
-
35 namespace detail
-
36 {
-
37  typedef short hdata;
-
38 
-
39  GLM_FUNC_DECL float toFloat32(hdata value);
-
40  GLM_FUNC_DECL hdata toFloat16(float const & value);
-
41 
-
42 }//namespace detail
-
43 
-
45  //typedef detail::hdata half;
-
46 
-
47 }//namespace glm
-
48 
-
49 #include "type_half.inl"
-
50 
-
51 #endif//glm_core_type_half
+Go to the documentation of this file.
1 
+
33 #pragma once
+
34 
+
35 #include "../fwd.hpp"
+
36 #include "type_vec2.hpp"
+
37 #include "type_mat.hpp"
+
38 #include <limits>
+
39 #include <cstddef>
+
40 
+
41 namespace glm
+
42 {
+
43  template <typename T, precision P = defaultp>
+
44  struct tmat2x2
+
45  {
+
46  typedef tvec2<T, P> col_type;
+
47  typedef tvec2<T, P> row_type;
+
48  typedef tmat2x2<T, P> type;
+
49  typedef tmat2x2<T, P> transpose_type;
+
50  typedef T value_type;
+
51 
+
52  template <typename U, precision Q>
+
53  friend tvec2<U, Q> operator/(tmat2x2<U, Q> const & m, tvec2<U, Q> const & v);
+
54  template <typename U, precision Q>
+
55  friend tvec2<U, Q> operator/(tvec2<U, Q> const & v, tmat2x2<U, Q> const & m);
+
56 
+
57  private:
+
59  col_type value[2];
+
61 
+
62  public:
+
64  // Constructors
+
65  GLM_FUNC_DECL tmat2x2();
+
66  template <precision Q>
+
67  GLM_FUNC_DECL tmat2x2(tmat2x2<T, Q> const & m);
+
68 
+
69  GLM_FUNC_DECL explicit tmat2x2(ctor);
+
70  GLM_FUNC_DECL explicit tmat2x2(T const & x);
+
71  GLM_FUNC_DECL tmat2x2(
+
72  T const & x1, T const & y1,
+
73  T const & x2, T const & y2);
+
74  GLM_FUNC_DECL tmat2x2(
+
75  col_type const & v1,
+
76  col_type const & v2);
+
77 
+
79  // Conversions
+
80  template <typename U, typename V, typename M, typename N>
+
81  GLM_FUNC_DECL tmat2x2(
+
82  U const & x1, V const & y1,
+
83  M const & x2, N const & y2);
+
84 
+
85  template <typename U, typename V>
+
86  GLM_FUNC_DECL tmat2x2(
+
87  tvec2<U, P> const & v1,
+
88  tvec2<V, P> const & v2);
+
89 
+
91  // Matrix conversions
+
92 
+
93 # ifdef GLM_FORCE_EXPLICIT_CTOR
+
94  template <typename U, precision Q>
+
95  GLM_FUNC_DECL explicit tmat2x2(tmat2x2<U, Q> const & m);
+
96 # else
+
97  template <typename U, precision Q>
+
98  GLM_FUNC_DECL tmat2x2(tmat2x2<U, Q> const & m);
+
99 # endif
+
100 
+
101  GLM_FUNC_DECL explicit tmat2x2(tmat3x3<T, P> const & x);
+
102  GLM_FUNC_DECL explicit tmat2x2(tmat4x4<T, P> const & x);
+
103  GLM_FUNC_DECL explicit tmat2x2(tmat2x3<T, P> const & x);
+
104  GLM_FUNC_DECL explicit tmat2x2(tmat3x2<T, P> const & x);
+
105  GLM_FUNC_DECL explicit tmat2x2(tmat2x4<T, P> const & x);
+
106  GLM_FUNC_DECL explicit tmat2x2(tmat4x2<T, P> const & x);
+
107  GLM_FUNC_DECL explicit tmat2x2(tmat3x4<T, P> const & x);
+
108  GLM_FUNC_DECL explicit tmat2x2(tmat4x3<T, P> const & x);
+
109 
+
111  // Accesses
+
112 
+
113 # ifdef GLM_FORCE_SIZE_FUNC
+
114  typedef size_t size_type;
+
115  GLM_FUNC_DECL GLM_CONSTEXPR size_t size() const;
+
116 
+
117  GLM_FUNC_DECL col_type & operator[](size_type i);
+
118  GLM_FUNC_DECL col_type const & operator[](size_type i) const;
+
119 # else
+
120  typedef length_t length_type;
+
121  GLM_FUNC_DECL GLM_CONSTEXPR length_type length() const;
+
122 
+
123  GLM_FUNC_DECL col_type & operator[](length_type i);
+
124  GLM_FUNC_DECL col_type const & operator[](length_type i) const;
+
125 # endif//GLM_FORCE_SIZE_FUNC
+
126 
+
128  // Unary arithmetic operators
+
129 
+
130  template <typename U>
+
131  GLM_FUNC_DECL tmat2x2<T, P> & operator=(tmat2x2<U, P> const & m);
+
132  template <typename U>
+
133  GLM_FUNC_DECL tmat2x2<T, P> & operator+=(U s);
+
134  template <typename U>
+
135  GLM_FUNC_DECL tmat2x2<T, P> & operator+=(tmat2x2<U, P> const & m);
+
136  template <typename U>
+
137  GLM_FUNC_DECL tmat2x2<T, P> & operator-=(U s);
+
138  template <typename U>
+
139  GLM_FUNC_DECL tmat2x2<T, P> & operator-=(tmat2x2<U, P> const & m);
+
140  template <typename U>
+
141  GLM_FUNC_DECL tmat2x2<T, P> & operator*=(U s);
+
142  template <typename U>
+
143  GLM_FUNC_DECL tmat2x2<T, P> & operator*=(tmat2x2<U, P> const & m);
+
144  template <typename U>
+
145  GLM_FUNC_DECL tmat2x2<T, P> & operator/=(U s);
+
146  template <typename U>
+
147  GLM_FUNC_DECL tmat2x2<T, P> & operator/=(tmat2x2<U, P> const & m);
+
148 
+
150  // Increment and decrement operators
+
151 
+
152  GLM_FUNC_DECL tmat2x2<T, P> & operator++ ();
+
153  GLM_FUNC_DECL tmat2x2<T, P> & operator-- ();
+
154  GLM_FUNC_DECL tmat2x2<T, P> operator++(int);
+
155  GLM_FUNC_DECL tmat2x2<T, P> operator--(int);
+
156  };
+
157 
+
158  // Binary operators
+
159  template <typename T, precision P>
+
160  GLM_FUNC_DECL tmat2x2<T, P> operator+(tmat2x2<T, P> const & m, T const & s);
+
161 
+
162  template <typename T, precision P>
+
163  GLM_FUNC_DECL tmat2x2<T, P> operator+(T const & s, tmat2x2<T, P> const & m);
+
164 
+
165  template <typename T, precision P>
+
166  GLM_FUNC_DECL tmat2x2<T, P> operator+(tmat2x2<T, P> const & m1, tmat2x2<T, P> const & m2);
+
167 
+
168  template <typename T, precision P>
+
169  GLM_FUNC_DECL tmat2x2<T, P> operator-(tmat2x2<T, P> const & m, T const & s);
+
170 
+
171  template <typename T, precision P>
+
172  GLM_FUNC_DECL tmat2x2<T, P> operator-(T const & s, tmat2x2<T, P> const & m);
+
173 
+
174  template <typename T, precision P>
+
175  GLM_FUNC_DECL tmat2x2<T, P> operator-(tmat2x2<T, P> const & m1, tmat2x2<T, P> const & m2);
+
176 
+
177  template <typename T, precision P>
+
178  GLM_FUNC_DECL tmat2x2<T, P> operator*(tmat2x2<T, P> const & m, T const & s);
+
179 
+
180  template <typename T, precision P>
+
181  GLM_FUNC_DECL tmat2x2<T, P> operator*(T const & s, tmat2x2<T, P> const & m);
+
182 
+
183  template <typename T, precision P>
+
184  GLM_FUNC_DECL typename tmat2x2<T, P>::col_type operator*(tmat2x2<T, P> const & m, typename tmat2x2<T, P>::row_type const & v);
+
185 
+
186  template <typename T, precision P>
+
187  GLM_FUNC_DECL typename tmat2x2<T, P>::row_type operator*(typename tmat2x2<T, P>::col_type const & v, tmat2x2<T, P> const & m);
+
188 
+
189  template <typename T, precision P>
+
190  GLM_FUNC_DECL tmat2x2<T, P> operator*(tmat2x2<T, P> const & m1, tmat2x2<T, P> const & m2);
+
191 
+
192  template <typename T, precision P>
+
193  GLM_FUNC_DECL tmat3x2<T, P> operator*(tmat2x2<T, P> const & m1, tmat3x2<T, P> const & m2);
+
194 
+
195  template <typename T, precision P>
+
196  GLM_FUNC_DECL tmat4x2<T, P> operator*(tmat2x2<T, P> const & m1, tmat4x2<T, P> const & m2);
+
197 
+
198  template <typename T, precision P>
+
199  GLM_FUNC_DECL tmat2x2<T, P> operator/(tmat2x2<T, P> const & m, T const & s);
+
200 
+
201  template <typename T, precision P>
+
202  GLM_FUNC_DECL tmat2x2<T, P> operator/(T const & s, tmat2x2<T, P> const & m);
+
203 
+
204  template <typename T, precision P>
+
205  GLM_FUNC_DECL typename tmat2x2<T, P>::col_type operator/(tmat2x2<T, P> const & m, typename tmat2x2<T, P>::row_type const & v);
+
206 
+
207  template <typename T, precision P>
+
208  GLM_FUNC_DECL typename tmat2x2<T, P>::row_type operator/(typename tmat2x2<T, P>::col_type const & v, tmat2x2<T, P> const & m);
+
209 
+
210  template <typename T, precision P>
+
211  GLM_FUNC_DECL tmat2x2<T, P> operator/(tmat2x2<T, P> const & m1, tmat2x2<T, P> const & m2);
+
212 
+
213  // Unary constant operators
+
214  template <typename T, precision P>
+
215  GLM_FUNC_DECL tmat2x2<T, P> const operator-(tmat2x2<T, P> const & m);
+
216 } //namespace glm
+
217 
+
218 #ifndef GLM_EXTERNAL_TEMPLATE
+
219 #include "type_mat2x2.inl"
+
220 #endif
+
GLM_FUNC_DECL T length(vecType< T, P > const &x)
Returns the length of x, i.e., sqrt(x * x).
+
Definition: _noise.hpp:39
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
diff --git a/doc/api/a00121.html b/doc/api/a00121.html new file mode 100644 index 00000000..4f5c97f5 --- /dev/null +++ b/doc/api/a00121.html @@ -0,0 +1,73 @@ + + + + + + +0.9.6: type_mat2x3.hpp File Reference + + + + + + +
+
+ + + + + + + +
+
0.9.6 +
+
+
+ + + + + +
+
+
+
type_mat2x3.hpp File Reference
+
+
+ +

Go to the source code of this file.

+

Detailed Description

+

OpenGL Mathematics (glm.g-truc.net)

+

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+

GLM Core

+
Date
2006-10-01 / 2011-06-15
+
Author
Christophe Riccio
+ +

Definition in file type_mat2x3.hpp.

+
+ + + + diff --git a/doc/api/a00121_source.html b/doc/api/a00121_source.html index 79da92bc..505a7aa6 100644 --- a/doc/api/a00121_source.html +++ b/doc/api/a00121_source.html @@ -3,8 +3,8 @@ - -GLM: type_int.hpp Source File + +0.9.6: type_mat2x3.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,170 +41,212 @@
-
type_int.hpp
+
type_mat2x3.hpp
-
1 
-
29 #ifndef glm_core_type_int
-
30 #define glm_core_type_int
-
31 
-
32 #include "setup.hpp"
-
33 
-
34 #if GLM_HAS_EXTENDED_INTEGER_TYPE
-
35 # include <cstdint>
-
36 #endif
-
37 
-
38 namespace glm{
-
39 namespace detail
-
40 {
-
41 # if GLM_HAS_EXTENDED_INTEGER_TYPE
-
42  typedef std::int8_t int8;
-
43  typedef std::int16_t int16;
-
44  typedef std::int32_t int32;
-
45  typedef std::int64_t int64;
-
46 
-
47  typedef std::uint8_t uint8;
-
48  typedef std::uint16_t uint16;
-
49  typedef std::uint32_t uint32;
-
50  typedef std::uint64_t uint64;
-
51 # else
-
52 # if(defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) // C99 detected, 64 bit types available
-
53  typedef int64_t sint64;
-
54  typedef uint64_t uint64;
-
55 # elif(GLM_COMPILER & GLM_COMPILER_VC)
-
56  typedef signed __int64 sint64;
-
57  typedef unsigned __int64 uint64;
-
58 # elif(GLM_COMPILER & (GLM_COMPILER_GCC | GLM_COMPILER_LLVM_GCC | GLM_COMPILER_CLANG))
-
59  __extension__ typedef signed long long sint64;
-
60  __extension__ typedef unsigned long long uint64;
-
61 # elif(GLM_COMPILER & GLM_COMPILER_BC)
-
62  typedef Int64 sint64;
-
63  typedef Uint64 uint64;
-
64 # else//unknown compiler
-
65  typedef signed long long sint64;
-
66  typedef unsigned long long uint64;
-
67 # endif//GLM_COMPILER
-
68 
-
69  typedef signed char int8;
-
70  typedef signed short int16;
-
71  typedef signed int int32;
-
72  typedef sint64 int64;
-
73 
-
74  typedef unsigned char uint8;
-
75  typedef unsigned short uint16;
-
76  typedef unsigned int uint32;
-
77  typedef uint64 uint64;
-
78 #endif//
-
79 
-
80  typedef signed int lowp_int_t;
-
81  typedef signed int mediump_int_t;
-
82  typedef signed int highp_int_t;
-
83 
-
84  typedef unsigned int lowp_uint_t;
-
85  typedef unsigned int mediump_uint_t;
-
86  typedef unsigned int highp_uint_t;
-
87 }//namespace detail
+Go to the documentation of this file.
1 
+
33 #pragma once
+
34 
+
35 #include "../fwd.hpp"
+
36 #include "type_vec2.hpp"
+
37 #include "type_vec3.hpp"
+
38 #include "type_mat.hpp"
+
39 #include <limits>
+
40 #include <cstddef>
+
41 
+
42 namespace glm
+
43 {
+
44  template <typename T, precision P = defaultp>
+
45  struct tmat2x3
+
46  {
+
47  typedef tvec3<T, P> col_type;
+
48  typedef tvec2<T, P> row_type;
+
49  typedef tmat2x3<T, P> type;
+
50  typedef tmat3x2<T, P> transpose_type;
+
51  typedef T value_type;
+
52 
+
53  private:
+
55  col_type value[2];
+
57 
+
58  public:
+
59  // Constructors
+
60  GLM_FUNC_DECL tmat2x3();
+
61  template <precision Q>
+
62  GLM_FUNC_DECL tmat2x3(tmat2x3<T, Q> const & m);
+
63 
+
64  GLM_FUNC_DECL explicit tmat2x3(ctor);
+
65  GLM_FUNC_DECL explicit tmat2x3(T const & s);
+
66  GLM_FUNC_DECL tmat2x3(
+
67  T const & x0, T const & y0, T const & z0,
+
68  T const & x1, T const & y1, T const & z1);
+
69  GLM_FUNC_DECL tmat2x3(
+
70  col_type const & v0,
+
71  col_type const & v1);
+
72 
+
74  // Conversions
+
75 
+
76  template <typename X1, typename Y1, typename Z1, typename X2, typename Y2, typename Z2>
+
77  GLM_FUNC_DECL tmat2x3(
+
78  X1 const & x1, Y1 const & y1, Z1 const & z1,
+
79  X2 const & x2, Y2 const & y2, Z2 const & z2);
+
80 
+
81  template <typename U, typename V>
+
82  GLM_FUNC_DECL tmat2x3(
+
83  tvec3<U, P> const & v1,
+
84  tvec3<V, P> const & v2);
+
85 
+
87  // Matrix conversion
88 
-
89  typedef detail::int8 int8;
-
90  typedef detail::int16 int16;
-
91  typedef detail::int32 int32;
-
92  typedef detail::int64 int64;
-
93 
-
94  typedef detail::uint8 uint8;
-
95  typedef detail::uint16 uint16;
-
96  typedef detail::uint32 uint32;
-
97  typedef detail::uint64 uint64;
-
98 
-
101 
-
107  typedef detail::lowp_int_t lowp_int;
+
89 # ifdef GLM_FORCE_EXPLICIT_CTOR
+
90  template <typename U, precision Q>
+
91  GLM_FUNC_DECL explicit tmat2x3(tmat2x3<U, Q> const & m);
+
92 # else
+
93  template <typename U, precision Q>
+
94  GLM_FUNC_DECL tmat2x3(tmat2x3<U, Q> const & m);
+
95 # endif
+
96 
+
97  GLM_FUNC_DECL explicit tmat2x3(tmat2x2<T, P> const & x);
+
98  GLM_FUNC_DECL explicit tmat2x3(tmat3x3<T, P> const & x);
+
99  GLM_FUNC_DECL explicit tmat2x3(tmat4x4<T, P> const & x);
+
100  GLM_FUNC_DECL explicit tmat2x3(tmat2x4<T, P> const & x);
+
101  GLM_FUNC_DECL explicit tmat2x3(tmat3x2<T, P> const & x);
+
102  GLM_FUNC_DECL explicit tmat2x3(tmat3x4<T, P> const & x);
+
103  GLM_FUNC_DECL explicit tmat2x3(tmat4x2<T, P> const & x);
+
104  GLM_FUNC_DECL explicit tmat2x3(tmat4x3<T, P> const & x);
+
105 
+
107  // Accesses
108 
-
114  typedef detail::mediump_int_t mediump_int;
-
115 
-
121  typedef detail::highp_int_t highp_int;
+
109 # ifdef GLM_FORCE_SIZE_FUNC
+
110  typedef size_t size_type;
+
111  GLM_FUNC_DECL GLM_CONSTEXPR size_t size() const;
+
112 
+
113  GLM_FUNC_DECL col_type & operator[](size_type i);
+
114  GLM_FUNC_DECL col_type const & operator[](size_type i) const;
+
115 # else
+
116  typedef length_t length_type;
+
117  GLM_FUNC_DECL GLM_CONSTEXPR length_type length() const;
+
118 
+
119  GLM_FUNC_DECL col_type & operator[](length_type i);
+
120  GLM_FUNC_DECL col_type const & operator[](length_type i) const;
+
121 # endif//GLM_FORCE_SIZE_FUNC
122 
-
128  typedef detail::lowp_uint_t lowp_uint;
-
129 
-
135  typedef detail::mediump_uint_t mediump_uint;
-
136 
-
142  typedef detail::highp_uint_t highp_uint;
+
124  // Unary arithmetic operators
+
125 
+
126  template <typename U>
+
127  GLM_FUNC_DECL tmat2x3<T, P> & operator= (tmat2x3<U, P> const & m);
+
128  template <typename U>
+
129  GLM_FUNC_DECL tmat2x3<T, P> & operator+= (U s);
+
130  template <typename U>
+
131  GLM_FUNC_DECL tmat2x3<T, P> & operator+= (tmat2x3<U, P> const & m);
+
132  template <typename U>
+
133  GLM_FUNC_DECL tmat2x3<T, P> & operator-= (U s);
+
134  template <typename U>
+
135  GLM_FUNC_DECL tmat2x3<T, P> & operator-= (tmat2x3<U, P> const & m);
+
136  template <typename U>
+
137  GLM_FUNC_DECL tmat2x3<T, P> & operator*= (U s);
+
138  template <typename U>
+
139  GLM_FUNC_DECL tmat2x3<T, P> & operator/= (U s);
+
140 
+
142  // Increment and decrement operators
143 
-
144 #if(!defined(GLM_PRECISION_HIGHP_INT) && !defined(GLM_PRECISION_MEDIUMP_INT) && !defined(GLM_PRECISION_LOWP_INT))
-
145  typedef mediump_int int_t;
-
146 #elif(defined(GLM_PRECISION_HIGHP_INT) && !defined(GLM_PRECISION_MEDIUMP_INT) && !defined(GLM_PRECISION_LOWP_INT))
-
147  typedef highp_int int_t;
-
148 #elif(!defined(GLM_PRECISION_HIGHP_INT) && defined(GLM_PRECISION_MEDIUMP_INT) && !defined(GLM_PRECISION_LOWP_INT))
-
149  typedef mediump_int int_t;
-
150 #elif(!defined(GLM_PRECISION_HIGHP_INT) && !defined(GLM_PRECISION_MEDIUMP_INT) && defined(GLM_PRECISION_LOWP_INT))
-
151  typedef lowp_int int_t;
-
152 #else
-
153 # error "GLM error: multiple default precision requested for signed interger types"
-
154 #endif
-
155 
-
156 #if(!defined(GLM_PRECISION_HIGHP_UINT) && !defined(GLM_PRECISION_MEDIUMP_UINT) && !defined(GLM_PRECISION_LOWP_UINT))
-
157  typedef mediump_uint uint_t;
-
158 #elif(defined(GLM_PRECISION_HIGHP_UINT) && !defined(GLM_PRECISION_MEDIUMP_UINT) && !defined(GLM_PRECISION_LOWP_UINT))
-
159  typedef highp_uint uint_t;
-
160 #elif(!defined(GLM_PRECISION_HIGHP_UINT) && defined(GLM_PRECISION_MEDIUMP_UINT) && !defined(GLM_PRECISION_LOWP_UINT))
-
161  typedef mediump_uint uint_t;
-
162 #elif(!defined(GLM_PRECISION_HIGHP_UINT) && !defined(GLM_PRECISION_MEDIUMP_UINT) && defined(GLM_PRECISION_LOWP_UINT))
-
163  typedef lowp_uint uint_t;
-
164 #else
-
165 # error "GLM error: multiple default precision requested for unsigned interger types"
-
166 #endif
-
167 
-
171  typedef unsigned int uint;
-
172 
-
174 
-
176 // check type sizes
-
177 #ifndef GLM_STATIC_ASSERT_NULL
-
178  GLM_STATIC_ASSERT(sizeof(glm::int8) == 1, "int8 size isn't 1 byte on this platform");
-
179  GLM_STATIC_ASSERT(sizeof(glm::int16) == 2, "int16 size isn't 2 bytes on this platform");
-
180  GLM_STATIC_ASSERT(sizeof(glm::int32) == 4, "int32 size isn't 4 bytes on this platform");
-
181  GLM_STATIC_ASSERT(sizeof(glm::int64) == 8, "int64 size isn't 8 bytes on this platform");
-
182 
-
183  GLM_STATIC_ASSERT(sizeof(glm::uint8) == 1, "uint8 size isn't 1 byte on this platform");
-
184  GLM_STATIC_ASSERT(sizeof(glm::uint16) == 2, "uint16 size isn't 2 bytes on this platform");
-
185  GLM_STATIC_ASSERT(sizeof(glm::uint32) == 4, "uint32 size isn't 4 bytes on this platform");
-
186  GLM_STATIC_ASSERT(sizeof(glm::uint64) == 8, "uint64 size isn't 8 bytes on this platform");
-
187 #endif//GLM_STATIC_ASSERT_NULL
-
188 
-
189 }//namespace glm
-
190 
-
191 #endif//glm_core_type_int
-
detail::highp_int_t highp_int
High precision signed integer.
Definition: type_int.hpp:121
-
detail::int8 int8
8 bit signed integer type.
Definition: type_int.hpp:89
-
detail::uint32 uint32
32 bit unsigned integer type.
Definition: type_int.hpp:96
-
detail::int16 int16
16 bit signed integer type.
Definition: type_int.hpp:90
-
detail::uint8 uint8_t
8 bit unsigned integer type.
Definition: fwd.hpp:895
-
detail::int64 int64_t
64 bit signed integer type.
Definition: fwd.hpp:305
-
detail::uint32 uint32_t
32 bit unsigned integer type.
Definition: fwd.hpp:903
-
detail::int64 int64
64 bit signed integer type.
Definition: type_int.hpp:92
-
unsigned int uint
Unsigned integer type.
Definition: type_int.hpp:171
-
detail::uint64 uint64_t
64 bit unsigned integer type.
Definition: fwd.hpp:907
-
detail::int16 int16_t
16 bit signed integer type.
Definition: fwd.hpp:297
-
detail::uint64 uint64
64 bit unsigned integer type.
Definition: type_int.hpp:97
-
detail::lowp_uint_t lowp_uint
Low precision unsigned integer.
Definition: type_int.hpp:128
-
detail::int8 int8_t
8 bit signed integer type.
Definition: fwd.hpp:293
-
detail::uint16 uint16_t
16 bit unsigned integer type.
Definition: fwd.hpp:899
-
detail::int32 int32
32 bit signed integer type.
Definition: type_int.hpp:91
-
detail::int32 int32_t
32 bit signed integer type.
Definition: fwd.hpp:301
-
detail::mediump_uint_t mediump_uint
Medium precision unsigned integer.
Definition: type_int.hpp:135
-
detail::uint8 uint8
8 bit unsigned integer type.
Definition: type_int.hpp:94
-
detail::mediump_int_t mediump_int
Medium precision signed integer.
Definition: type_int.hpp:114
-
detail::highp_uint_t highp_uint
High precision unsigned integer.
Definition: type_int.hpp:142
-
detail::lowp_int_t lowp_int
Low precision signed integer.
Definition: type_int.hpp:107
-
detail::uint16 uint16
16 bit unsigned integer type.
Definition: type_int.hpp:95
+
144  GLM_FUNC_DECL tmat2x3<T, P> & operator++ ();
+
145  GLM_FUNC_DECL tmat2x3<T, P> & operator-- ();
+
146  GLM_FUNC_DECL tmat2x3<T, P> operator++(int);
+
147  GLM_FUNC_DECL tmat2x3<T, P> operator--(int);
+
148  };
+
149 
+
150  // Binary operators
+
151 
+
152  template <typename T, precision P>
+
153  GLM_FUNC_DECL tmat2x3<T, P> operator+ (
+
154  tmat2x3<T, P> const & m,
+
155  T const & s);
+
156 
+
157  template <typename T, precision P>
+
158  GLM_FUNC_DECL tmat2x3<T, P> operator+ (
+
159  tmat2x3<T, P> const & m1,
+
160  tmat2x3<T, P> const & m2);
+
161 
+
162  template <typename T, precision P>
+
163  GLM_FUNC_DECL tmat2x3<T, P> operator- (
+
164  tmat2x3<T, P> const & m,
+
165  T const & s);
+
166 
+
167  template <typename T, precision P>
+
168  GLM_FUNC_DECL tmat2x3<T, P> operator- (
+
169  tmat2x3<T, P> const & m1,
+
170  tmat2x3<T, P> const & m2);
+
171 
+
172  template <typename T, precision P>
+
173  GLM_FUNC_DECL tmat2x3<T, P> operator* (
+
174  tmat2x3<T, P> const & m,
+
175  T const & s);
+
176 
+
177  template <typename T, precision P>
+
178  GLM_FUNC_DECL tmat2x3<T, P> operator* (
+
179  T const & s,
+
180  tmat2x3<T, P> const & m);
+
181 
+
182  template <typename T, precision P>
+
183  GLM_FUNC_DECL typename tmat2x3<T, P>::col_type operator* (
+
184  tmat2x3<T, P> const & m,
+
185  typename tmat2x3<T, P>::row_type const & v);
+
186 
+
187  template <typename T, precision P>
+
188  GLM_FUNC_DECL typename tmat2x3<T, P>::row_type operator* (
+
189  typename tmat2x3<T, P>::col_type const & v,
+
190  tmat2x3<T, P> const & m);
+
191 
+
192  template <typename T, precision P>
+
193  GLM_FUNC_DECL tmat2x3<T, P> operator* (
+
194  tmat2x3<T, P> const & m1,
+
195  tmat2x2<T, P> const & m2);
+
196 
+
197  template <typename T, precision P>
+
198  GLM_FUNC_DECL tmat3x3<T, P> operator* (
+
199  tmat2x3<T, P> const & m1,
+
200  tmat3x2<T, P> const & m2);
+
201 
+
202  template <typename T, precision P>
+
203  GLM_FUNC_DECL tmat4x3<T, P> operator* (
+
204  tmat2x3<T, P> const & m1,
+
205  tmat4x2<T, P> const & m2);
+
206 
+
207  template <typename T, precision P>
+
208  GLM_FUNC_DECL tmat2x3<T, P> operator/ (
+
209  tmat2x3<T, P> const & m,
+
210  T const & s);
+
211 
+
212  template <typename T, precision P>
+
213  GLM_FUNC_DECL tmat2x3<T, P> operator/ (
+
214  T const & s,
+
215  tmat2x3<T, P> const & m);
+
216 
+
217  // Unary constant operators
+
218  template <typename T, precision P>
+
219  GLM_FUNC_DECL tmat2x3<T, P> const operator- (
+
220  tmat2x3<T, P> const & m);
+
221 }//namespace glm
+
222 
+
223 #ifndef GLM_EXTERNAL_TEMPLATE
+
224 #include "type_mat2x3.inl"
+
225 #endif
+
OpenGL Mathematics (glm.g-truc.net)
+
GLM_FUNC_DECL T length(vecType< T, P > const &x)
Returns the length of x, i.e., sqrt(x * x).
+
Definition: _noise.hpp:39
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
diff --git a/doc/api/a00122.html b/doc/api/a00122.html new file mode 100644 index 00000000..a53773d0 --- /dev/null +++ b/doc/api/a00122.html @@ -0,0 +1,73 @@ + + + + + + +0.9.6: type_mat2x4.hpp File Reference + + + + + + +
+
+ + + + + + + +
+
0.9.6 +
+
+
+ + + + + +
+
+
+
type_mat2x4.hpp File Reference
+
+
+ +

Go to the source code of this file.

+

Detailed Description

+

OpenGL Mathematics (glm.g-truc.net)

+

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+

GLM Core

+
Date
2006-08-05 / 2011-06-15
+
Author
Christophe Riccio
+ +

Definition in file type_mat2x4.hpp.

+
+ + + + diff --git a/doc/api/a00122_source.html b/doc/api/a00122_source.html index ba2c4d08..f0e56fb1 100644 --- a/doc/api/a00122_source.html +++ b/doc/api/a00122_source.html @@ -3,8 +3,8 @@ - -GLM: type_mat.hpp Source File + +0.9.6: type_mat2x4.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,429 +41,213 @@
-
type_mat.hpp
+
type_mat2x4.hpp
-
1 
-
29 #ifndef glm_core_type_mat
-
30 #define glm_core_type_mat
-
31 
-
32 #include "precision.hpp"
-
33 
-
34 namespace glm{
-
35 namespace detail
-
36 {
-
37  template <typename T, precision P> struct tvec2;
-
38  template <typename T, precision P> struct tvec3;
-
39  template <typename T, precision P> struct tvec4;
-
40  template <typename T, precision P> struct tmat2x2;
-
41  template <typename T, precision P> struct tmat2x3;
-
42  template <typename T, precision P> struct tmat2x4;
-
43  template <typename T, precision P> struct tmat3x2;
-
44  template <typename T, precision P> struct tmat3x3;
-
45  template <typename T, precision P> struct tmat3x4;
-
46  template <typename T, precision P> struct tmat4x2;
-
47  template <typename T, precision P> struct tmat4x3;
-
48  template <typename T, precision P> struct tmat4x4;
-
49 
-
50  template <typename T, precision P, template <class, precision> class colType, template <class, precision> class rowType>
-
51  struct outerProduct_trait{};
+Go to the documentation of this file.
1 
+
33 #pragma once
+
34 
+
35 #include "../fwd.hpp"
+
36 #include "type_vec2.hpp"
+
37 #include "type_vec4.hpp"
+
38 #include "type_mat.hpp"
+
39 #include <limits>
+
40 #include <cstddef>
+
41 
+
42 namespace glm
+
43 {
+
44  template <typename T, precision P = defaultp>
+
45  struct tmat2x4
+
46  {
+
47  typedef tvec4<T, P> col_type;
+
48  typedef tvec2<T, P> row_type;
+
49  typedef tmat2x4<T, P> type;
+
50  typedef tmat4x2<T, P> transpose_type;
+
51  typedef T value_type;
52 
-
53  template <template <class, precision> class matType, typename T, precision P>
-
54  struct compute_inverse{};
-
55 }//namespace detail
-
56 
-
59 
-
65  typedef detail::tmat2x2<float, lowp> lowp_mat2;
-
66 
-
72  typedef detail::tmat2x2<float, mediump> mediump_mat2;
-
73 
-
79  typedef detail::tmat2x2<float, highp> highp_mat2;
-
80 
-
86  typedef detail::tmat2x2<float, lowp> lowp_mat2x2;
-
87 
-
93  typedef detail::tmat2x2<float, mediump> mediump_mat2x2;
-
94 
-
100  typedef detail::tmat2x2<float, highp> highp_mat2x2;
-
101 
-
103 
-
106 
-
112  typedef detail::tmat2x3<float, lowp> lowp_mat2x3;
-
113 
-
119  typedef detail::tmat2x3<float, mediump> mediump_mat2x3;
-
120 
-
126  typedef detail::tmat2x3<float, highp> highp_mat2x3;
-
127 
-
129 
-
132 
-
138  typedef detail::tmat2x4<float, lowp> lowp_mat2x4;
-
139 
-
145  typedef detail::tmat2x4<float, mediump> mediump_mat2x4;
-
146 
-
152  typedef detail::tmat2x4<float, highp> highp_mat2x4;
-
153 
-
155 
-
158 
-
164  typedef detail::tmat3x2<float, lowp> lowp_mat3x2;
-
165 
-
171  typedef detail::tmat3x2<float, mediump> mediump_mat3x2;
-
172 
-
178  typedef detail::tmat3x2<float, highp> highp_mat3x2;
-
179 
-
181 
-
184 
-
190  typedef detail::tmat3x3<float, lowp> lowp_mat3;
-
191 
-
197  typedef detail::tmat3x3<float, mediump> mediump_mat3;
-
198 
-
204  typedef detail::tmat3x3<float, highp> highp_mat3;
-
205 
-
211  typedef detail::tmat3x3<float, lowp> lowp_mat3x3;
-
212 
-
218  typedef detail::tmat3x3<float, mediump> mediump_mat3x3;
-
219 
-
225  typedef detail::tmat3x3<float, highp> highp_mat3x3;
-
226 
-
228 
-
231 
-
237  typedef detail::tmat3x4<float, lowp> lowp_mat3x4;
-
238 
-
244  typedef detail::tmat3x4<float, mediump> mediump_mat3x4;
-
245 
-
251  typedef detail::tmat3x4<float, highp> highp_mat3x4;
-
252 
-
254 
-
257 
-
263  typedef detail::tmat4x2<float, lowp> lowp_mat4x2;
-
264 
-
270  typedef detail::tmat4x2<float, mediump> mediump_mat4x2;
-
271 
-
277  typedef detail::tmat4x2<float, highp> highp_mat4x2;
-
278 
-
280 
-
283 
-
289  typedef detail::tmat4x3<float, lowp> lowp_mat4x3;
-
290 
-
296  typedef detail::tmat4x3<float, mediump> mediump_mat4x3;
-
297 
-
303  typedef detail::tmat4x3<float, highp> highp_mat4x3;
-
304 
-
306 
-
307 
-
310 
-
316  typedef detail::tmat4x4<float, lowp> lowp_mat4;
-
317 
-
323  typedef detail::tmat4x4<float, mediump> mediump_mat4;
-
324 
-
330  typedef detail::tmat4x4<float, highp> highp_mat4;
-
331 
-
337  typedef detail::tmat4x4<float, lowp> lowp_mat4x4;
-
338 
-
344  typedef detail::tmat4x4<float, mediump> mediump_mat4x4;
-
345 
-
351  typedef detail::tmat4x4<float, highp> highp_mat4x4;
-
352 
-
354 
-
357 
-
359  // Float definition
-
360 
-
361 #if(defined(GLM_PRECISION_LOWP_FLOAT))
-
362  typedef lowp_mat2x2 mat2x2;
-
363  typedef lowp_mat2x3 mat2x3;
-
364  typedef lowp_mat2x4 mat2x4;
-
365  typedef lowp_mat3x2 mat3x2;
-
366  typedef lowp_mat3x3 mat3x3;
-
367  typedef lowp_mat3x4 mat3x4;
-
368  typedef lowp_mat4x2 mat4x2;
-
369  typedef lowp_mat4x3 mat4x3;
-
370  typedef lowp_mat4x4 mat4x4;
-
371 #elif(defined(GLM_PRECISION_MEDIUMP_FLOAT))
-
372  typedef mediump_mat2x2 mat2x2;
-
373  typedef mediump_mat2x3 mat2x3;
-
374  typedef mediump_mat2x4 mat2x4;
-
375  typedef mediump_mat3x2 mat3x2;
-
376  typedef mediump_mat3x3 mat3x3;
-
377  typedef mediump_mat3x4 mat3x4;
-
378  typedef mediump_mat4x2 mat4x2;
-
379  typedef mediump_mat4x3 mat4x3;
-
380  typedef mediump_mat4x4 mat4x4;
-
381 #else
-
382  typedef highp_mat2x2 mat2x2;
-
386 
- -
391 
- -
396 
- -
401 
- -
406 
- -
411 
- -
416 
- -
421 
- -
426 
-
427 #endif//GLM_PRECISION
-
428 
-
432  typedef mat2x2 mat2;
-
433 
-
437  typedef mat3x3 mat3;
-
438 
-
442  typedef mat4x4 mat4;
-
443 
-
445  // Double definition
-
446 
-
449 
-
454  typedef detail::tmat2x2<double, lowp> lowp_dmat2;
-
455 
-
460  typedef detail::tmat2x2<double, mediump> mediump_dmat2;
-
461 
-
466  typedef detail::tmat2x2<double, highp> highp_dmat2;
-
467 
-
472  typedef detail::tmat2x2<double, lowp> lowp_dmat2x2;
-
473 
-
478  typedef detail::tmat2x2<double, mediump> mediump_dmat2x2;
-
479 
-
484  typedef detail::tmat2x2<double, highp> highp_dmat2x2;
-
485 
-
487 
-
490 
-
495  typedef detail::tmat2x3<double, lowp> lowp_dmat2x3;
-
496 
-
501  typedef detail::tmat2x3<double, mediump> mediump_dmat2x3;
-
502 
-
507  typedef detail::tmat2x3<double, highp> highp_dmat2x3;
-
508 
-
510 
-
513 
-
518  typedef detail::tmat2x4<double, lowp> lowp_dmat2x4;
-
519 
-
524  typedef detail::tmat2x4<double, mediump> mediump_dmat2x4;
-
525 
-
530  typedef detail::tmat2x4<double, highp> highp_dmat2x4;
-
531 
-
533 
-
536 
-
541  typedef detail::tmat3x2<double, lowp> lowp_dmat3x2;
-
542 
-
547  typedef detail::tmat3x2<double, mediump> mediump_dmat3x2;
-
548 
-
553  typedef detail::tmat3x2<double, highp> highp_dmat3x2;
-
554 
-
556 
-
559 
-
564  typedef detail::tmat3x3<float, lowp> lowp_dmat3;
-
565 
-
570  typedef detail::tmat3x3<double, mediump> mediump_dmat3;
-
571 
-
576  typedef detail::tmat3x3<double, highp> highp_dmat3;
-
577 
-
582  typedef detail::tmat3x3<double, lowp> lowp_dmat3x3;
-
583 
-
588  typedef detail::tmat3x3<double, mediump> mediump_dmat3x3;
-
589 
-
594  typedef detail::tmat3x3<double, highp> highp_dmat3x3;
-
595 
-
597 
-
600 
-
605  typedef detail::tmat3x4<double, lowp> lowp_dmat3x4;
-
606 
-
611  typedef detail::tmat3x4<double, mediump> mediump_dmat3x4;
-
612 
-
617  typedef detail::tmat3x4<double, highp> highp_dmat3x4;
-
618 
-
620 
-
623 
-
628  typedef detail::tmat4x2<double, lowp> lowp_dmat4x2;
-
629 
-
634  typedef detail::tmat4x2<double, mediump> mediump_dmat4x2;
-
635 
-
640  typedef detail::tmat4x2<double, highp> highp_dmat4x2;
-
641 
-
643 
-
646 
-
651  typedef detail::tmat4x3<double, lowp> lowp_dmat4x3;
-
652 
-
657  typedef detail::tmat4x3<double, mediump> mediump_dmat4x3;
-
658 
-
663  typedef detail::tmat4x3<double, highp> highp_dmat4x3;
-
664 
-
666 
-
669 
-
674  typedef detail::tmat4x4<double, lowp> lowp_dmat4;
-
675 
-
680  typedef detail::tmat4x4<double, mediump> mediump_dmat4;
-
681 
-
686  typedef detail::tmat4x4<double, highp> highp_dmat4;
-
687 
-
692  typedef detail::tmat4x4<double, lowp> lowp_dmat4x4;
-
693 
-
698  typedef detail::tmat4x4<double, mediump> mediump_dmat4x4;
-
699 
-
704  typedef detail::tmat4x4<double, highp> highp_dmat4x4;
-
705 
-
707 
-
708 #if(defined(GLM_PRECISION_LOWP_DOUBLE))
-
709  typedef lowp_dmat2x2 dmat2x2;
-
710  typedef lowp_dmat2x3 dmat2x3;
-
711  typedef lowp_dmat2x4 dmat2x4;
-
712  typedef lowp_dmat3x2 dmat3x2;
-
713  typedef lowp_dmat3x3 dmat3x3;
-
714  typedef lowp_dmat3x4 dmat3x4;
-
715  typedef lowp_dmat4x2 dmat4x2;
-
716  typedef lowp_dmat4x3 dmat4x3;
-
717  typedef lowp_dmat4x4 dmat4x4;
-
718 #elif(defined(GLM_PRECISION_MEDIUMP_DOUBLE))
-
719  typedef mediump_dmat2x2 dmat2x2;
-
720  typedef mediump_dmat2x3 dmat2x3;
-
721  typedef mediump_dmat2x4 dmat2x4;
-
722  typedef mediump_dmat3x2 dmat3x2;
-
723  typedef mediump_dmat3x3 dmat3x3;
-
724  typedef mediump_dmat3x4 dmat3x4;
-
725  typedef mediump_dmat4x2 dmat4x2;
-
726  typedef mediump_dmat4x3 dmat4x3;
-
727  typedef mediump_dmat4x4 dmat4x4;
-
728 #else //defined(GLM_PRECISION_HIGHP_DOUBLE)
-
729 
- -
734 
- -
739 
- -
744 
- -
749 
- -
754 
- -
759 
- -
764 
- -
769 
- -
774 
- -
779 
- -
784 
- -
789 
-
790 #endif//GLM_PRECISION
-
791 
-
793 }//namespace glm
-
794 
-
795 #endif//glm_core_type_mat
-
highp_mat4x4 mat4x4
4 columns of 4 components matrix of floating-point numbers.
Definition: type_mat.hpp:425
-
detail::tmat4x4< double, highp > highp_dmat4x4
4 columns of 4 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:704
-
highp_mat4x2 mat4x2
4 columns of 2 components matrix of floating-point numbers.
Definition: type_mat.hpp:415
-
detail::tmat2x2< float, highp > highp_mat2
2 columns of 2 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:79
-
detail::tmat3x3< double, mediump > mediump_dmat3
3 columns of 3 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:570
-
detail::tmat2x4< float, lowp > lowp_mat2x4
2 columns of 4 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:138
-
highp_dmat3x2 dmat3x2
3 * 2 matrix of double-precision floating-point numbers.
Definition: type_mat.hpp:763
-
detail::tmat3x3< float, mediump > mediump_mat3
3 columns of 3 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:197
-
detail::tmat3x3< float, lowp > lowp_mat3x3
3 columns of 3 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:211
-
detail::tmat2x2< double, lowp > lowp_dmat2x2
2 columns of 2 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:472
-
highp_dmat2x4 dmat2x4
2 * 4 matrix of double-precision floating-point numbers.
Definition: type_mat.hpp:758
-
detail::tmat3x4< double, highp > highp_dmat3x4
3 columns of 4 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:617
-
detail::tmat3x4< double, lowp > lowp_dmat3x4
3 columns of 4 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:605
-
highp_mat3x3 mat3x3
3 columns of 3 components matrix of floating-point numbers.
Definition: type_mat.hpp:405
-
detail::tmat2x2< float, mediump > mediump_mat2
2 columns of 2 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:72
-
highp_mat4x3 mat4x3
4 columns of 3 components matrix of floating-point numbers.
Definition: type_mat.hpp:420
-
detail::tmat4x4< float, highp > highp_mat4x4
4 columns of 4 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:351
-
detail::tmat4x2< double, mediump > mediump_dmat4x2
4 columns of 2 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:634
-
detail::tmat4x3< float, mediump > mediump_mat4x3
4 columns of 3 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:296
-
detail::tmat4x4< float, lowp > lowp_mat4
4 columns of 4 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:316
-
detail::tmat3x2< float, lowp > lowp_mat3x2
3 columns of 2 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:164
-
detail::tmat3x4< float, highp > highp_mat3x4
3 columns of 4 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:251
-
detail::tmat2x2< float, lowp > lowp_mat2x2
2 columns of 2 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:86
-
highp_dmat4x4 dmat4
4 * 4 matrix of double-precision floating-point numbers.
Definition: type_mat.hpp:743
-
highp_dmat4x4 dmat4x4
4 * 4 matrix of double-precision floating-point numbers.
Definition: type_mat.hpp:788
-
detail::tmat2x3< double, mediump > mediump_dmat2x3
2 columns of 3 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:501
-
detail::tmat4x4< float, highp > highp_mat4
4 columns of 4 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:330
-
highp_dmat4x2 dmat4x2
4 * 2 matrix of double-precision floating-point numbers.
Definition: type_mat.hpp:778
-
detail::tmat3x3< float, highp > highp_mat3
3 columns of 3 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:204
-
mat4x4 mat4
4 columns of 4 components matrix of floating-point numbers.
Definition: type_mat.hpp:442
-
detail::tmat2x2< double, mediump > mediump_dmat2x2
2 columns of 2 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:478
-
detail::tmat4x3< float, highp > highp_mat4x3
4 columns of 3 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:303
-
highp_dmat3x3 dmat3x3
3 * 3 matrix of double-precision floating-point numbers.
Definition: type_mat.hpp:768
-
detail::tmat2x4< double, mediump > mediump_dmat2x4
2 columns of 4 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:524
-
detail::tmat3x4< double, mediump > mediump_dmat3x4
3 columns of 4 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:611
-
detail::tmat2x2< double, highp > highp_dmat2x2
2 columns of 2 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:484
-
detail::tmat4x2< float, mediump > mediump_mat4x2
4 columns of 2 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:270
-
highp_dmat3x3 dmat3
3 * 3 matrix of double-precision floating-point numbers.
Definition: type_mat.hpp:738
-
detail::tmat4x4< float, mediump > mediump_mat4x4
4 columns of 4 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:344
-
detail::tmat2x2< float, lowp > lowp_mat2
2 columns of 2 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:65
-
detail::tmat3x3< float, lowp > lowp_mat3
3 columns of 3 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:190
-
highp_dmat2x2 dmat2x2
2 * 2 matrix of double-precision floating-point numbers.
Definition: type_mat.hpp:748
-
detail::tmat3x3< double, highp > highp_dmat3x3
3 columns of 3 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:594
-
detail::tmat2x2< float, mediump > mediump_mat2x2
2 columns of 2 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:93
-
highp_dmat4x3 dmat4x3
4 * 3 matrix of double-precision floating-point numbers.
Definition: type_mat.hpp:783
-
detail::tmat4x3< float, lowp > lowp_mat4x3
4 columns of 3 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:289
-
detail::tmat2x3< float, mediump > mediump_mat2x3
2 columns of 3 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:119
-
detail::tmat4x3< double, highp > highp_dmat4x3
4 columns of 3 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:663
-
detail::tmat2x4< double, lowp > lowp_dmat2x4
2 columns of 4 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:518
-
detail::tmat3x3< float, mediump > mediump_mat3x3
3 columns of 3 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:218
-
detail::tmat3x2< float, highp > highp_mat3x2
3 columns of 2 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:178
-
detail::tmat2x3< double, lowp > lowp_dmat2x3
2 columns of 3 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:495
-
detail::tmat3x3< float, highp > highp_mat3x3
3 columns of 3 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:225
-
detail::tmat2x3< double, highp > highp_dmat2x3
2 columns of 3 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:507
-
detail::tmat3x3< double, highp > highp_dmat3
3 columns of 3 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:576
-
detail::tmat4x4< double, lowp > lowp_dmat4
4 columns of 4 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:674
-
detail::tmat4x4< double, mediump > mediump_dmat4
4 columns of 4 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:680
-
detail::tmat3x2< double, mediump > mediump_dmat3x2
3 columns of 2 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:547
-
detail::tmat3x2< double, lowp > lowp_dmat3x2
3 columns of 2 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:541
-
highp_mat3x4 mat3x4
3 columns of 4 components matrix of floating-point numbers.
Definition: type_mat.hpp:410
-
detail::tmat3x4< float, lowp > lowp_mat3x4
3 columns of 4 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:237
-
detail::tmat2x4< float, highp > highp_mat2x4
2 columns of 4 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:152
-
highp_dmat3x4 dmat3x4
3 * 4 matrix of double-precision floating-point numbers.
Definition: type_mat.hpp:773
-
detail::tmat4x4< double, lowp > lowp_dmat4x4
4 columns of 4 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:692
-
highp_mat2x2 mat2x2
2 columns of 2 components matrix of floating-point numbers.
Definition: type_mat.hpp:385
-
detail::tmat2x4< float, mediump > mediump_mat2x4
2 columns of 4 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:145
-
highp_mat2x3 mat2x3
2 columns of 3 components matrix of floating-point numbers.
Definition: type_mat.hpp:390
-
highp_mat2x4 mat2x4
2 columns of 4 components matrix of floating-point numbers.
Definition: type_mat.hpp:395
-
detail::tmat4x2< float, highp > highp_mat4x2
4 columns of 2 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:277
-
highp_mat3x2 mat3x2
3 columns of 2 components matrix of floating-point numbers.
Definition: type_mat.hpp:400
-
detail::tmat4x2< float, lowp > lowp_mat4x2
4 columns of 2 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:263
-
detail::tmat3x3< double, lowp > lowp_dmat3x3
3 columns of 3 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:582
-
detail::tmat3x3< float, lowp > lowp_dmat3
3 columns of 3 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:564
-
detail::tmat2x2< float, highp > highp_mat2x2
2 columns of 2 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:100
-
detail::tmat4x4< float, mediump > mediump_mat4
4 columns of 4 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:323
-
detail::tmat4x2< double, lowp > lowp_dmat4x2
4 columns of 2 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:628
-
highp_dmat2x2 dmat2
2 * 2 matrix of double-precision floating-point numbers.
Definition: type_mat.hpp:733
-
mat3x3 mat3
3 columns of 3 components matrix of floating-point numbers.
Definition: type_mat.hpp:437
-
detail::tmat3x2< double, highp > highp_dmat3x2
3 columns of 2 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:553
-
detail::tmat2x3< float, highp > highp_mat2x3
2 columns of 3 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:126
-
mat2x2 mat2
2 columns of 2 components matrix of floating-point numbers.
Definition: type_mat.hpp:432
-
detail::tmat4x4< double, mediump > mediump_dmat4x4
4 columns of 4 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:698
-
detail::tmat2x3< float, lowp > lowp_mat2x3
2 columns of 3 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:112
-
detail::tmat4x4< float, lowp > lowp_mat4x4
4 columns of 4 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:337
-
detail::tmat3x4< float, mediump > mediump_mat3x4
3 columns of 4 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:244
-
detail::tmat4x2< double, highp > highp_dmat4x2
4 columns of 2 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:640
-
detail::tmat3x3< double, mediump > mediump_dmat3x3
3 columns of 3 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:588
-
detail::tmat2x2< double, highp > highp_dmat2
2 columns of 2 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:466
-
detail::tmat2x2< double, mediump > mediump_dmat2
2 columns of 2 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:460
-
detail::tmat4x3< double, mediump > mediump_dmat4x3
4 columns of 3 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:657
-
detail::tmat2x4< double, highp > highp_dmat2x4
2 columns of 4 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:530
-
detail::tmat4x3< double, lowp > lowp_dmat4x3
4 columns of 3 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:651
-
detail::tmat3x2< float, mediump > mediump_mat3x2
3 columns of 2 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:171
-
detail::tmat2x2< double, lowp > lowp_dmat2
2 columns of 2 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:454
-
detail::tmat4x4< double, highp > highp_dmat4
4 columns of 4 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:686
-
highp_dmat2x3 dmat2x3
2 * 3 matrix of double-precision floating-point numbers.
Definition: type_mat.hpp:753
+
53  private:
+
55  col_type value[2];
+
57 
+
58  public:
+
59  // Constructors
+
60  GLM_FUNC_DECL tmat2x4();
+
61  template <precision Q>
+
62  GLM_FUNC_DECL tmat2x4(tmat2x4<T, Q> const & m);
+
63 
+
64  GLM_FUNC_DECL explicit tmat2x4(ctor);
+
65  GLM_FUNC_DECL explicit tmat2x4(T const & s);
+
66  GLM_FUNC_DECL tmat2x4(
+
67  T const & x0, T const & y0, T const & z0, T const & w0,
+
68  T const & x1, T const & y1, T const & z1, T const & w1);
+
69  GLM_FUNC_DECL tmat2x4(
+
70  col_type const & v0,
+
71  col_type const & v1);
+
72 
+
74  // Conversions
+
75  template <
+
76  typename X1, typename Y1, typename Z1, typename W1,
+
77  typename X2, typename Y2, typename Z2, typename W2>
+
78  GLM_FUNC_DECL tmat2x4(
+
79  X1 const & x1, Y1 const & y1, Z1 const & z1, W1 const & w1,
+
80  X2 const & x2, Y2 const & y2, Z2 const & z2, W2 const & w2);
+
81 
+
82  template <typename U, typename V>
+
83  GLM_FUNC_DECL tmat2x4(
+
84  tvec4<U, P> const & v1,
+
85  tvec4<V, P> const & v2);
+
86 
+
88  // Matrix conversions
+
89 
+
90 # ifdef GLM_FORCE_EXPLICIT_CTOR
+
91  template <typename U, precision Q>
+
92  GLM_FUNC_DECL explicit tmat2x4(tmat2x4<U, Q> const & m);
+
93 # else
+
94  template <typename U, precision Q>
+
95  GLM_FUNC_DECL tmat2x4(tmat2x4<U, Q> const & m);
+
96 # endif
+
97 
+
98  GLM_FUNC_DECL explicit tmat2x4(tmat2x2<T, P> const & x);
+
99  GLM_FUNC_DECL explicit tmat2x4(tmat3x3<T, P> const & x);
+
100  GLM_FUNC_DECL explicit tmat2x4(tmat4x4<T, P> const & x);
+
101  GLM_FUNC_DECL explicit tmat2x4(tmat2x3<T, P> const & x);
+
102  GLM_FUNC_DECL explicit tmat2x4(tmat3x2<T, P> const & x);
+
103  GLM_FUNC_DECL explicit tmat2x4(tmat3x4<T, P> const & x);
+
104  GLM_FUNC_DECL explicit tmat2x4(tmat4x2<T, P> const & x);
+
105  GLM_FUNC_DECL explicit tmat2x4(tmat4x3<T, P> const & x);
+
106 
+
108  // Accesses
+
109 
+
110 # ifdef GLM_FORCE_SIZE_FUNC
+
111  typedef size_t size_type;
+
112  GLM_FUNC_DECL GLM_CONSTEXPR size_t size() const;
+
113 
+
114  GLM_FUNC_DECL col_type & operator[](size_type i);
+
115  GLM_FUNC_DECL col_type const & operator[](size_type i) const;
+
116 # else
+
117  typedef length_t length_type;
+
118  GLM_FUNC_DECL GLM_CONSTEXPR length_type length() const;
+
119 
+
120  GLM_FUNC_DECL col_type & operator[](length_type i);
+
121  GLM_FUNC_DECL col_type const & operator[](length_type i) const;
+
122 # endif//GLM_FORCE_SIZE_FUNC
+
123 
+
125  // Unary arithmetic operators
+
126 
+
127  template <typename U>
+
128  GLM_FUNC_DECL tmat2x4<T, P>& operator= (tmat2x4<U, P> const & m);
+
129  template <typename U>
+
130  GLM_FUNC_DECL tmat2x4<T, P>& operator+= (U s);
+
131  template <typename U>
+
132  GLM_FUNC_DECL tmat2x4<T, P>& operator+= (tmat2x4<U, P> const & m);
+
133  template <typename U>
+
134  GLM_FUNC_DECL tmat2x4<T, P>& operator-= (U s);
+
135  template <typename U>
+
136  GLM_FUNC_DECL tmat2x4<T, P>& operator-= (tmat2x4<U, P> const & m);
+
137  template <typename U>
+
138  GLM_FUNC_DECL tmat2x4<T, P>& operator*= (U s);
+
139  template <typename U>
+
140  GLM_FUNC_DECL tmat2x4<T, P>& operator/= (U s);
+
141 
+
143  // Increment and decrement operators
+
144 
+
145  GLM_FUNC_DECL tmat2x4<T, P> & operator++ ();
+
146  GLM_FUNC_DECL tmat2x4<T, P> & operator-- ();
+
147  GLM_FUNC_DECL tmat2x4<T, P> operator++(int);
+
148  GLM_FUNC_DECL tmat2x4<T, P> operator--(int);
+
149  };
+
150 
+
151  // Binary operators
+
152 
+
153  template <typename T, precision P>
+
154  GLM_FUNC_DECL tmat2x4<T, P> operator+ (
+
155  tmat2x4<T, P> const & m,
+
156  T const & s);
+
157 
+
158  template <typename T, precision P>
+
159  GLM_FUNC_DECL tmat2x4<T, P> operator+ (
+
160  tmat2x4<T, P> const & m1,
+
161  tmat2x4<T, P> const & m2);
+
162 
+
163  template <typename T, precision P>
+
164  GLM_FUNC_DECL tmat2x4<T, P> operator- (
+
165  tmat2x4<T, P> const & m,
+
166  T const & s);
+
167 
+
168  template <typename T, precision P>
+
169  GLM_FUNC_DECL tmat2x4<T, P> operator- (
+
170  tmat2x4<T, P> const & m1,
+
171  tmat2x4<T, P> const & m2);
+
172 
+
173  template <typename T, precision P>
+
174  GLM_FUNC_DECL tmat2x4<T, P> operator* (
+
175  tmat2x4<T, P> const & m,
+
176  T const & s);
+
177 
+
178  template <typename T, precision P>
+
179  GLM_FUNC_DECL tmat2x4<T, P> operator* (
+
180  T const & s,
+
181  tmat2x4<T, P> const & m);
+
182 
+
183  template <typename T, precision P>
+
184  GLM_FUNC_DECL typename tmat2x4<T, P>::col_type operator* (
+
185  tmat2x4<T, P> const & m,
+
186  typename tmat2x4<T, P>::row_type const & v);
+
187 
+
188  template <typename T, precision P>
+
189  GLM_FUNC_DECL typename tmat2x4<T, P>::row_type operator* (
+
190  typename tmat2x4<T, P>::col_type const & v,
+
191  tmat2x4<T, P> const & m);
+
192 
+
193  template <typename T, precision P>
+
194  GLM_FUNC_DECL tmat4x4<T, P> operator* (
+
195  tmat2x4<T, P> const & m1,
+
196  tmat4x2<T, P> const & m2);
+
197 
+
198  template <typename T, precision P>
+
199  GLM_FUNC_DECL tmat2x4<T, P> operator* (
+
200  tmat2x4<T, P> const & m1,
+
201  tmat2x2<T, P> const & m2);
+
202 
+
203  template <typename T, precision P>
+
204  GLM_FUNC_DECL tmat3x4<T, P> operator* (
+
205  tmat2x4<T, P> const & m1,
+
206  tmat3x2<T, P> const & m2);
+
207 
+
208  template <typename T, precision P>
+
209  GLM_FUNC_DECL tmat2x4<T, P> operator/ (
+
210  tmat2x4<T, P> const & m,
+
211  T s);
+
212 
+
213  template <typename T, precision P>
+
214  GLM_FUNC_DECL tmat2x4<T, P> operator/ (
+
215  T s,
+
216  tmat2x4<T, P> const & m);
+
217 
+
218  // Unary constant operators
+
219  template <typename T, precision P>
+
220  GLM_FUNC_DECL tmat2x4<T, P> const operator- (
+
221  tmat2x4<T, P> const & m);
+
222 }//namespace glm
+
223 
+
224 #ifndef GLM_EXTERNAL_TEMPLATE
+
225 #include "type_mat2x4.inl"
+
226 #endif
+
OpenGL Mathematics (glm.g-truc.net)
+
GLM_FUNC_DECL T length(vecType< T, P > const &x)
Returns the length of x, i.e., sqrt(x * x).
+
Definition: _noise.hpp:39
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
diff --git a/doc/api/a00123.html b/doc/api/a00123.html new file mode 100644 index 00000000..4c5a3c8c --- /dev/null +++ b/doc/api/a00123.html @@ -0,0 +1,73 @@ + + + + + + +0.9.6: type_mat3x2.hpp File Reference + + + + + + +
+
+ + + + + + + +
+
0.9.6 +
+
+
+ + + + + +
+
+
+
type_mat3x2.hpp File Reference
+
+
+ +

Go to the source code of this file.

+

Detailed Description

+

OpenGL Mathematics (glm.g-truc.net)

+

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+

GLM Core

+
Date
2006-08-05 / 2011-06-15
+
Author
Christophe Riccio
+ +

Definition in file type_mat3x2.hpp.

+
+ + + + diff --git a/doc/api/a00123_source.html b/doc/api/a00123_source.html index e5da0b8d..05bb7f66 100644 --- a/doc/api/a00123_source.html +++ b/doc/api/a00123_source.html @@ -3,8 +3,8 @@ - -GLM: type_mat2x2.hpp Source File + +0.9.6: type_mat3x2.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,243 +41,218 @@
-
type_mat2x2.hpp
+
type_mat3x2.hpp
-
1 
-
29 #ifndef glm_core_type_mat2x2
-
30 #define glm_core_type_mat2x2
-
31 
-
32 #include "../fwd.hpp"
-
33 #include "type_vec2.hpp"
-
34 #include "type_mat.hpp"
-
35 #include <limits>
-
36 
-
37 namespace glm{
-
38 namespace detail
-
39 {
-
40  template <typename T, precision P>
-
41  struct tmat2x2
-
42  {
-
43  enum ctor{_null};
-
44  typedef T value_type;
-
45  typedef std::size_t size_type;
-
46  typedef tvec2<T, P> col_type;
-
47  typedef tvec2<T, P> row_type;
-
48  typedef tmat2x2<T, P> type;
-
49  typedef tmat2x2<T, P> transpose_type;
-
50 
-
51  GLM_FUNC_DECL GLM_CONSTEXPR length_t length() const;
+Go to the documentation of this file.
1 
+
33 #pragma once
+
34 
+
35 #include "../fwd.hpp"
+
36 #include "type_vec2.hpp"
+
37 #include "type_vec3.hpp"
+
38 #include "type_mat.hpp"
+
39 #include <limits>
+
40 #include <cstddef>
+
41 
+
42 namespace glm
+
43 {
+
44  template <typename T, precision P = defaultp>
+
45  struct tmat3x2
+
46  {
+
47  typedef tvec2<T, P> col_type;
+
48  typedef tvec3<T, P> row_type;
+
49  typedef tmat3x2<T, P> type;
+
50  typedef tmat2x3<T, P> transpose_type;
+
51  typedef T value_type;
52 
-
53  template <typename U, precision Q>
-
54  friend tvec2<U, Q> operator/(tmat2x2<U, Q> const & m, tvec2<U, Q> const & v);
-
55  template <typename U, precision Q>
-
56  friend tvec2<U, Q> operator/(tvec2<U, Q> const & v, tmat2x2<U, Q> const & m);
-
57 
-
58  private:
-
60  col_type value[2];
-
62 
-
63  public:
-
65  // Constructors
-
66  GLM_FUNC_DECL tmat2x2();
-
67  GLM_FUNC_DECL tmat2x2(tmat2x2<T, P> const & m);
-
68  template <precision Q>
-
69  GLM_FUNC_DECL tmat2x2(tmat2x2<T, Q> const & m);
-
70 
-
71  GLM_FUNC_DECL explicit tmat2x2(
-
72  ctor Null);
-
73  GLM_FUNC_DECL explicit tmat2x2(
-
74  T const & x);
-
75  GLM_FUNC_DECL explicit tmat2x2(
-
76  T const & x1, T const & y1,
-
77  T const & x2, T const & y2);
-
78  GLM_FUNC_DECL explicit tmat2x2(
-
79  col_type const & v1,
-
80  col_type const & v2);
-
81 
-
82 #if(GLM_HAS_INITIALIZER_LISTS)
-
83  template <typename U>
-
84  GLM_FUNC_DECL tmat2x2(std::initializer_list<U> m);
-
85 
-
86  GLM_FUNC_DECL tmat2x2(std::initializer_list<tvec2<T, P> > m);
-
87 #endif//GLM_HAS_INITIALIZER_LISTS
-
88 
-
90  // Conversions
-
91  template <typename U, typename V, typename M, typename N>
-
92  GLM_FUNC_DECL explicit tmat2x2(
-
93  U const & x1, V const & y1,
-
94  M const & x2, N const & y2);
+
53  private:
+
55  col_type value[3];
+
57 
+
58  public:
+
59  // Constructors
+
60  GLM_FUNC_DECL tmat3x2();
+
61  template <precision Q>
+
62  GLM_FUNC_DECL tmat3x2(tmat3x2<T, Q> const & m);
+
63 
+
64  GLM_FUNC_DECL explicit tmat3x2(ctor);
+
65  GLM_FUNC_DECL explicit tmat3x2(T const & s);
+
66  GLM_FUNC_DECL tmat3x2(
+
67  T const & x0, T const & y0,
+
68  T const & x1, T const & y1,
+
69  T const & x2, T const & y2);
+
70  GLM_FUNC_DECL tmat3x2(
+
71  col_type const & v0,
+
72  col_type const & v1,
+
73  col_type const & v2);
+
74 
+
76  // Conversions
+
77 
+
78  template<
+
79  typename X1, typename Y1,
+
80  typename X2, typename Y2,
+
81  typename X3, typename Y3>
+
82  GLM_FUNC_DECL tmat3x2(
+
83  X1 const & x1, Y1 const & y1,
+
84  X2 const & x2, Y2 const & y2,
+
85  X3 const & x3, Y3 const & y3);
+
86 
+
87  template <typename V1, typename V2, typename V3>
+
88  GLM_FUNC_DECL tmat3x2(
+
89  tvec2<V1, P> const & v1,
+
90  tvec2<V2, P> const & v2,
+
91  tvec2<V3, P> const & v3);
+
92 
+
94  // Matrix conversions
95 
-
96  template <typename U, typename V>
-
97  GLM_FUNC_DECL explicit tmat2x2(
-
98  tvec2<U, P> const & v1,
-
99  tvec2<V, P> const & v2);
-
100 
-
102  // Matrix conversions
-
103  template <typename U, precision Q>
-
104  GLM_FUNC_DECL explicit tmat2x2(tmat2x2<U, Q> const & m);
-
105 
-
106  GLM_FUNC_DECL explicit tmat2x2(tmat3x3<T, P> const & x);
-
107  GLM_FUNC_DECL explicit tmat2x2(tmat4x4<T, P> const & x);
-
108  GLM_FUNC_DECL explicit tmat2x2(tmat2x3<T, P> const & x);
-
109  GLM_FUNC_DECL explicit tmat2x2(tmat3x2<T, P> const & x);
-
110  GLM_FUNC_DECL explicit tmat2x2(tmat2x4<T, P> const & x);
-
111  GLM_FUNC_DECL explicit tmat2x2(tmat4x2<T, P> const & x);
-
112  GLM_FUNC_DECL explicit tmat2x2(tmat3x4<T, P> const & x);
-
113  GLM_FUNC_DECL explicit tmat2x2(tmat4x3<T, P> const & x);
-
114 
-
116  // Accesses
-
117 
-
118  GLM_FUNC_DECL col_type & operator[](length_t i);
-
119  GLM_FUNC_DECL col_type const & operator[](length_t i) const;
-
120 
-
121  // Unary updatable operators
-
122  GLM_FUNC_DECL tmat2x2<T, P> & operator=(tmat2x2<T, P> const & m);
-
123  template <typename U>
-
124  GLM_FUNC_DECL tmat2x2<T, P> & operator=(tmat2x2<U, P> const & m);
-
125  template <typename U>
-
126  GLM_FUNC_DECL tmat2x2<T, P> & operator+=(U s);
-
127  template <typename U>
-
128  GLM_FUNC_DECL tmat2x2<T, P> & operator+=(tmat2x2<U, P> const & m);
-
129  template <typename U>
-
130  GLM_FUNC_DECL tmat2x2<T, P> & operator-=(U s);
-
131  template <typename U>
-
132  GLM_FUNC_DECL tmat2x2<T, P> & operator-=(tmat2x2<U, P> const & m);
+
96 # ifdef GLM_FORCE_EXPLICIT_CTOR
+
97  template <typename U, precision Q>
+
98  GLM_FUNC_DECL explicit tmat3x2(tmat3x2<U, Q> const & m);
+
99 # else
+
100  template <typename U, precision Q>
+
101  GLM_FUNC_DECL tmat3x2(tmat3x2<U, Q> const & m);
+
102 # endif
+
103 
+
104  GLM_FUNC_DECL explicit tmat3x2(tmat2x2<T, P> const & x);
+
105  GLM_FUNC_DECL explicit tmat3x2(tmat3x3<T, P> const & x);
+
106  GLM_FUNC_DECL explicit tmat3x2(tmat4x4<T, P> const & x);
+
107  GLM_FUNC_DECL explicit tmat3x2(tmat2x3<T, P> const & x);
+
108  GLM_FUNC_DECL explicit tmat3x2(tmat2x4<T, P> const & x);
+
109  GLM_FUNC_DECL explicit tmat3x2(tmat3x4<T, P> const & x);
+
110  GLM_FUNC_DECL explicit tmat3x2(tmat4x2<T, P> const & x);
+
111  GLM_FUNC_DECL explicit tmat3x2(tmat4x3<T, P> const & x);
+
112 
+
114  // Accesses
+
115 
+
116 # ifdef GLM_FORCE_SIZE_FUNC
+
117  typedef size_t size_type;
+
118  GLM_FUNC_DECL GLM_CONSTEXPR size_t size() const;
+
119 
+
120  GLM_FUNC_DECL col_type & operator[](size_type i);
+
121  GLM_FUNC_DECL col_type const & operator[](size_type i) const;
+
122 # else
+
123  typedef length_t length_type;
+
124  GLM_FUNC_DECL GLM_CONSTEXPR length_type length() const;
+
125 
+
126  GLM_FUNC_DECL col_type & operator[](length_type i);
+
127  GLM_FUNC_DECL col_type const & operator[](length_type i) const;
+
128 # endif//GLM_FORCE_SIZE_FUNC
+
129 
+
131  // Unary arithmetic operators
+
132 
133  template <typename U>
-
134  GLM_FUNC_DECL tmat2x2<T, P> & operator*=(U s);
+
134  GLM_FUNC_DECL tmat3x2<T, P> & operator= (tmat3x2<U, P> const & m);
135  template <typename U>
-
136  GLM_FUNC_DECL tmat2x2<T, P> & operator*=(tmat2x2<U, P> const & m);
+
136  GLM_FUNC_DECL tmat3x2<T, P> & operator+= (U s);
137  template <typename U>
-
138  GLM_FUNC_DECL tmat2x2<T, P> & operator/=(U s);
+
138  GLM_FUNC_DECL tmat3x2<T, P> & operator+= (tmat3x2<U, P> const & m);
139  template <typename U>
-
140  GLM_FUNC_DECL tmat2x2<T, P> & operator/=(tmat2x2<U, P> const & m);
-
141 
-
143  // Increment and decrement operators
-
144 
-
145  GLM_FUNC_DECL tmat2x2<T, P> & operator++ ();
-
146  GLM_FUNC_DECL tmat2x2<T, P> & operator-- ();
-
147  GLM_FUNC_DECL tmat2x2<T, P> operator++(int);
-
148  GLM_FUNC_DECL tmat2x2<T, P> operator--(int);
-
149  };
+
140  GLM_FUNC_DECL tmat3x2<T, P> & operator-= (U s);
+
141  template <typename U>
+
142  GLM_FUNC_DECL tmat3x2<T, P> & operator-= (tmat3x2<U, P> const & m);
+
143  template <typename U>
+
144  GLM_FUNC_DECL tmat3x2<T, P> & operator*= (U s);
+
145  template <typename U>
+
146  GLM_FUNC_DECL tmat3x2<T, P> & operator/= (U s);
+
147 
+
149  // Increment and decrement operators
150 
-
151  template <typename T, precision P>
-
152  GLM_FUNC_DECL tmat2x2<T, P> compute_inverse_mat2(tmat2x2<T, P> const & m);
-
153 
-
154  // Binary operators
-
155  template <typename T, precision P>
-
156  GLM_FUNC_DECL tmat2x2<T, P> operator+ (
-
157  tmat2x2<T, P> const & m,
-
158  T const & s);
-
159 
-
160  template <typename T, precision P>
-
161  GLM_FUNC_DECL tmat2x2<T, P> operator+ (
-
162  T const & s,
-
163  tmat2x2<T, P> const & m);
-
164 
-
165  template <typename T, precision P>
-
166  GLM_FUNC_DECL tmat2x2<T, P> operator+ (
-
167  tmat2x2<T, P> const & m1,
-
168  tmat2x2<T, P> const & m2);
-
169 
-
170  template <typename T, precision P>
-
171  GLM_FUNC_DECL tmat2x2<T, P> operator- (
-
172  tmat2x2<T, P> const & m,
-
173  T const & s);
-
174 
-
175  template <typename T, precision P>
-
176  GLM_FUNC_DECL tmat2x2<T, P> operator- (
-
177  T const & s,
-
178  tmat2x2<T, P> const & m);
-
179 
-
180  template <typename T, precision P>
-
181  GLM_FUNC_DECL tmat2x2<T, P> operator- (
-
182  tmat2x2<T, P> const & m1,
-
183  tmat2x2<T, P> const & m2);
-
184 
-
185  template <typename T, precision P>
-
186  GLM_FUNC_DECL tmat2x2<T, P> operator* (
-
187  tmat2x2<T, P> const & m,
-
188  T const & s);
-
189 
-
190  template <typename T, precision P>
-
191  GLM_FUNC_DECL tmat2x2<T, P> operator* (
-
192  T const & s,
-
193  tmat2x2<T, P> const & m);
-
194 
-
195  template <typename T, precision P>
-
196  GLM_FUNC_DECL typename tmat2x2<T, P>::col_type operator* (
-
197  tmat2x2<T, P> const & m,
-
198  typename tmat2x2<T, P>::row_type const & v);
-
199 
-
200  template <typename T, precision P>
-
201  GLM_FUNC_DECL typename tmat2x2<T, P>::row_type operator* (
-
202  typename tmat2x2<T, P>::col_type const & v,
-
203  tmat2x2<T, P> const & m);
-
204 
-
205  template <typename T, precision P>
-
206  GLM_FUNC_DECL tmat2x2<T, P> operator* (
-
207  tmat2x2<T, P> const & m1,
-
208  tmat2x2<T, P> const & m2);
-
209 
-
210  template <typename T, precision P>
-
211  GLM_FUNC_DECL tmat3x2<T, P> operator* (
-
212  tmat2x2<T, P> const & m1,
-
213  tmat3x2<T, P> const & m2);
-
214 
-
215  template <typename T, precision P>
-
216  GLM_FUNC_DECL tmat4x2<T, P> operator* (
-
217  tmat2x2<T, P> const & m1,
-
218  tmat4x2<T, P> const & m2);
-
219 
-
220  template <typename T, precision P>
-
221  GLM_FUNC_DECL tmat2x2<T, P> operator/ (
-
222  tmat2x2<T, P> const & m,
-
223  T const & s);
-
224 
-
225  template <typename T, precision P>
-
226  GLM_FUNC_DECL tmat2x2<T, P> operator/ (
-
227  T const & s,
-
228  tmat2x2<T, P> const & m);
-
229 
-
230  template <typename T, precision P>
-
231  GLM_FUNC_DECL typename tmat2x2<T, P>::col_type operator/ (
-
232  tmat2x2<T, P> const & m,
-
233  typename tmat2x2<T, P>::row_type const & v);
-
234 
-
235  template <typename T, precision P>
-
236  GLM_FUNC_DECL typename tmat2x2<T, P>::row_type operator/ (
-
237  typename tmat2x2<T, P>::col_type const & v,
-
238  tmat2x2<T, P> const & m);
-
239 
-
240  template <typename T, precision P>
-
241  GLM_FUNC_DECL tmat2x2<T, P> operator/ (
-
242  tmat2x2<T, P> const & m1,
-
243  tmat2x2<T, P> const & m2);
-
244 
-
245  // Unary constant operators
-
246  template <typename T, precision P>
-
247  GLM_FUNC_DECL tmat2x2<T, P> const operator-(
-
248  tmat2x2<T, P> const & m);
-
249 } //namespace detail
-
250 } //namespace glm
-
251 
-
252 #ifndef GLM_EXTERNAL_TEMPLATE
-
253 #include "type_mat2x2.inl"
-
254 #endif
-
255 
-
256 #endif //glm_core_type_mat2x2
-
GLM_FUNC_DECL genType::value_type length(genType const &x)
Returns the length of x, i.e., sqrt(x * x).
+
151  GLM_FUNC_DECL tmat3x2<T, P> & operator++ ();
+
152  GLM_FUNC_DECL tmat3x2<T, P> & operator-- ();
+
153  GLM_FUNC_DECL tmat3x2<T, P> operator++(int);
+
154  GLM_FUNC_DECL tmat3x2<T, P> operator--(int);
+
155  };
+
156 
+
157  // Binary operators
+
158  template <typename T, precision P>
+
159  GLM_FUNC_DECL tmat3x2<T, P> operator+ (
+
160  tmat3x2<T, P> const & m,
+
161  T const & s);
+
162 
+
163  template <typename T, precision P>
+
164  GLM_FUNC_DECL tmat3x2<T, P> operator+ (
+
165  tmat3x2<T, P> const & m1,
+
166  tmat3x2<T, P> const & m2);
+
167 
+
168  template <typename T, precision P>
+
169  GLM_FUNC_DECL tmat3x2<T, P> operator- (
+
170  tmat3x2<T, P> const & m,
+
171  T const & s);
+
172 
+
173  template <typename T, precision P>
+
174  GLM_FUNC_DECL tmat3x2<T, P> operator- (
+
175  tmat3x2<T, P> const & m1,
+
176  tmat3x2<T, P> const & m2);
+
177 
+
178  template <typename T, precision P>
+
179  GLM_FUNC_DECL tmat3x2<T, P> operator* (
+
180  tmat3x2<T, P> const & m,
+
181  T const & s);
+
182 
+
183  template <typename T, precision P>
+
184  GLM_FUNC_DECL tmat3x2<T, P> operator* (
+
185  T const & s,
+
186  tmat3x2<T, P> const & m);
+
187 
+
188  template <typename T, precision P>
+
189  GLM_FUNC_DECL typename tmat3x2<T, P>::col_type operator* (
+
190  tmat3x2<T, P> const & m,
+
191  typename tmat3x2<T, P>::row_type const & v);
+
192 
+
193  template <typename T, precision P>
+
194  GLM_FUNC_DECL typename tmat3x2<T, P>::row_type operator* (
+
195  typename tmat3x2<T, P>::col_type const & v,
+
196  tmat3x2<T, P> const & m);
+
197 
+
198  template <typename T, precision P>
+
199  GLM_FUNC_DECL tmat2x2<T, P> operator* (
+
200  tmat3x2<T, P> const & m1,
+
201  tmat2x3<T, P> const & m2);
+
202 
+
203  template <typename T, precision P>
+
204  GLM_FUNC_DECL tmat3x2<T, P> operator* (
+
205  tmat3x2<T, P> const & m1,
+
206  tmat3x3<T, P> const & m2);
+
207 
+
208  template <typename T, precision P>
+
209  GLM_FUNC_DECL tmat4x2<T, P> operator* (
+
210  tmat3x2<T, P> const & m1,
+
211  tmat4x3<T, P> const & m2);
+
212 
+
213  template <typename T, precision P>
+
214  GLM_FUNC_DECL tmat3x2<T, P> operator/ (
+
215  tmat3x2<T, P> const & m,
+
216  T const & s);
+
217 
+
218  template <typename T, precision P>
+
219  GLM_FUNC_DECL tmat3x2<T, P> operator/ (
+
220  T const & s,
+
221  tmat3x2<T, P> const & m);
+
222 
+
223  // Unary constant operators
+
224  template <typename T, precision P>
+
225  GLM_FUNC_DECL tmat3x2<T, P> const operator-(
+
226  tmat3x2<T, P> const & m);
+
227 }//namespace glm
+
228 
+
229 #ifndef GLM_EXTERNAL_TEMPLATE
+
230 #include "type_mat3x2.inl"
+
231 #endif
+
OpenGL Mathematics (glm.g-truc.net)
+
GLM_FUNC_DECL T length(vecType< T, P > const &x)
Returns the length of x, i.e., sqrt(x * x).
+
Definition: _noise.hpp:39
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
diff --git a/doc/api/a00124.html b/doc/api/a00124.html new file mode 100644 index 00000000..3445d2ef --- /dev/null +++ b/doc/api/a00124.html @@ -0,0 +1,73 @@ + + + + + + +0.9.6: type_mat3x3.hpp File Reference + + + + + + +
+
+ + + + + + + +
+
0.9.6 +
+
+
+ + + + + +
+
+
+
type_mat3x3.hpp File Reference
+
+
+ +

Go to the source code of this file.

+

Detailed Description

+

OpenGL Mathematics (glm.g-truc.net)

+

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+

GLM Core

+
Date
2005-01-27 / 2011-06-15
+
Author
Christophe Riccio
+ +

Definition in file type_mat3x3.hpp.

+
+ + + + diff --git a/doc/api/a00124_source.html b/doc/api/a00124_source.html index 82a9e574..53551d4c 100644 --- a/doc/api/a00124_source.html +++ b/doc/api/a00124_source.html @@ -3,8 +3,8 @@ - -GLM: type_mat2x3.hpp Source File + +0.9.6: type_mat3x3.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,209 +41,250 @@
-
type_mat2x3.hpp
+
type_mat3x3.hpp
-
1 
-
29 #ifndef glm_core_type_mat2x3
-
30 #define glm_core_type_mat2x3
-
31 
-
32 #include "../fwd.hpp"
-
33 #include "type_vec2.hpp"
-
34 #include "type_vec3.hpp"
-
35 #include "type_mat.hpp"
-
36 #include <limits>
-
37 
-
38 namespace glm{
-
39 namespace detail
-
40 {
-
41  template <typename T, precision P>
-
42  struct tmat2x3
-
43  {
-
44  enum ctor{_null};
-
45  typedef T value_type;
-
46  typedef std::size_t size_type;
-
47  typedef tvec3<T, P> col_type;
-
48  typedef tvec2<T, P> row_type;
-
49  typedef tmat2x3<T, P> type;
-
50  typedef tmat3x2<T, P> transpose_type;
+Go to the documentation of this file.
1 
+
33 #pragma once
+
34 
+
35 #include "../fwd.hpp"
+
36 #include "type_vec3.hpp"
+
37 #include "type_mat.hpp"
+
38 #include <limits>
+
39 #include <cstddef>
+
40 
+
41 namespace glm
+
42 {
+
43  template <typename T, precision P = defaultp>
+
44  struct tmat3x3
+
45  {
+
46  typedef tvec3<T, P> col_type;
+
47  typedef tvec3<T, P> row_type;
+
48  typedef tmat3x3<T, P> type;
+
49  typedef tmat3x3<T, P> transpose_type;
+
50  typedef T value_type;
51 
-
52  GLM_FUNC_DECL GLM_CONSTEXPR length_t length() const;
-
53 
-
54  private:
-
55  // Data
-
56  col_type value[2];
-
57 
-
58  public:
-
59  // Constructors
-
60  GLM_FUNC_DECL tmat2x3();
-
61  GLM_FUNC_DECL tmat2x3(tmat2x3<T, P> const & m);
-
62  template <precision Q>
-
63  GLM_FUNC_DECL tmat2x3(tmat2x3<T, Q> const & m);
-
64 
-
65  GLM_FUNC_DECL explicit tmat2x3(
-
66  ctor);
-
67  GLM_FUNC_DECL explicit tmat2x3(
-
68  T const & s);
-
69  GLM_FUNC_DECL explicit tmat2x3(
-
70  T const & x0, T const & y0, T const & z0,
-
71  T const & x1, T const & y1, T const & z1);
-
72  GLM_FUNC_DECL explicit tmat2x3(
-
73  col_type const & v0,
-
74  col_type const & v1);
-
75 
-
76 #if(GLM_HAS_INITIALIZER_LISTS)
-
77  template <typename U>
-
78  GLM_FUNC_DECL tmat2x3(std::initializer_list<U> m);
-
79 
-
80  GLM_FUNC_DECL tmat2x3(std::initializer_list<tvec3<T, P> > m);
-
81 #endif//GLM_HAS_INITIALIZER_LISTS
-
82 
-
84  // Conversions
-
85  template <typename X1, typename Y1, typename Z1, typename X2, typename Y2, typename Z2>
-
86  GLM_FUNC_DECL explicit tmat2x3(
+
52  template <typename U, precision Q>
+
53  friend tvec3<U, Q> operator/(tmat3x3<U, Q> const & m, tvec3<U, Q> const & v);
+
54  template <typename U, precision Q>
+
55  friend tvec3<U, Q> operator/(tvec3<U, Q> const & v, tmat3x3<U, Q> const & m);
+
56 
+
57  private:
+
59  col_type value[3];
+
61 
+
62  public:
+
63  // Constructors
+
64  GLM_FUNC_DECL tmat3x3();
+
65  template <precision Q>
+
66  GLM_FUNC_DECL tmat3x3(tmat3x3<T, Q> const & m);
+
67 
+
68  GLM_FUNC_DECL explicit tmat3x3(ctor);
+
69  GLM_FUNC_DECL explicit tmat3x3(T const & s);
+
70  GLM_FUNC_DECL tmat3x3(
+
71  T const & x0, T const & y0, T const & z0,
+
72  T const & x1, T const & y1, T const & z1,
+
73  T const & x2, T const & y2, T const & z2);
+
74  GLM_FUNC_DECL tmat3x3(
+
75  col_type const & v0,
+
76  col_type const & v1,
+
77  col_type const & v2);
+
78 
+
80  // Conversions
+
81 
+
82  template<
+
83  typename X1, typename Y1, typename Z1,
+
84  typename X2, typename Y2, typename Z2,
+
85  typename X3, typename Y3, typename Z3>
+
86  GLM_FUNC_DECL tmat3x3(
87  X1 const & x1, Y1 const & y1, Z1 const & z1,
-
88  X2 const & x2, Y2 const & y2, Z2 const & z2);
-
89 
-
90  template <typename U, typename V>
-
91  GLM_FUNC_DECL explicit tmat2x3(
-
92  tvec3<U, P> const & v1,
-
93  tvec3<V, P> const & v2);
-
94 
-
96  // Matrix conversion
-
97  template <typename U, precision Q>
-
98  GLM_FUNC_DECL explicit tmat2x3(tmat2x3<U, Q> const & m);
+
88  X2 const & x2, Y2 const & y2, Z2 const & z2,
+
89  X3 const & x3, Y3 const & y3, Z3 const & z3);
+
90 
+
91  template <typename V1, typename V2, typename V3>
+
92  GLM_FUNC_DECL tmat3x3(
+
93  tvec3<V1, P> const & v1,
+
94  tvec3<V2, P> const & v2,
+
95  tvec3<V3, P> const & v3);
+
96 
+
98  // Matrix conversions
99 
-
100  GLM_FUNC_DECL explicit tmat2x3(tmat2x2<T, P> const & x);
-
101  GLM_FUNC_DECL explicit tmat2x3(tmat3x3<T, P> const & x);
-
102  GLM_FUNC_DECL explicit tmat2x3(tmat4x4<T, P> const & x);
-
103  GLM_FUNC_DECL explicit tmat2x3(tmat2x4<T, P> const & x);
-
104  GLM_FUNC_DECL explicit tmat2x3(tmat3x2<T, P> const & x);
-
105  GLM_FUNC_DECL explicit tmat2x3(tmat3x4<T, P> const & x);
-
106  GLM_FUNC_DECL explicit tmat2x3(tmat4x2<T, P> const & x);
-
107  GLM_FUNC_DECL explicit tmat2x3(tmat4x3<T, P> const & x);
-
108 
-
109  // Accesses
-
110  GLM_FUNC_DECL col_type & operator[](length_t i);
-
111  GLM_FUNC_DECL col_type const & operator[](length_t i) const;
-
112 
-
113  // Unary updatable operators
-
114  GLM_FUNC_DECL tmat2x3<T, P> & operator= (tmat2x3<T, P> const & m);
-
115  template <typename U>
-
116  GLM_FUNC_DECL tmat2x3<T, P> & operator= (tmat2x3<U, P> const & m);
-
117  template <typename U>
-
118  GLM_FUNC_DECL tmat2x3<T, P> & operator+= (U s);
-
119  template <typename U>
-
120  GLM_FUNC_DECL tmat2x3<T, P> & operator+= (tmat2x3<U, P> const & m);
-
121  template <typename U>
-
122  GLM_FUNC_DECL tmat2x3<T, P> & operator-= (U s);
-
123  template <typename U>
-
124  GLM_FUNC_DECL tmat2x3<T, P> & operator-= (tmat2x3<U, P> const & m);
-
125  template <typename U>
-
126  GLM_FUNC_DECL tmat2x3<T, P> & operator*= (U s);
-
127  template <typename U>
-
128  GLM_FUNC_DECL tmat2x3<T, P> & operator/= (U s);
+
100 # ifdef GLM_FORCE_EXPLICIT_CTOR
+
101  template <typename U, precision Q>
+
102  GLM_FUNC_DECL explicit tmat3x3(tmat3x3<U, Q> const & m);
+
103 # else
+
104  template <typename U, precision Q>
+
105  GLM_FUNC_DECL tmat3x3(tmat3x3<U, Q> const & m);
+
106 # endif
+
107 
+
108  GLM_FUNC_DECL explicit tmat3x3(tmat2x2<T, P> const & x);
+
109  GLM_FUNC_DECL explicit tmat3x3(tmat4x4<T, P> const & x);
+
110  GLM_FUNC_DECL explicit tmat3x3(tmat2x3<T, P> const & x);
+
111  GLM_FUNC_DECL explicit tmat3x3(tmat3x2<T, P> const & x);
+
112  GLM_FUNC_DECL explicit tmat3x3(tmat2x4<T, P> const & x);
+
113  GLM_FUNC_DECL explicit tmat3x3(tmat4x2<T, P> const & x);
+
114  GLM_FUNC_DECL explicit tmat3x3(tmat3x4<T, P> const & x);
+
115  GLM_FUNC_DECL explicit tmat3x3(tmat4x3<T, P> const & x);
+
116 
+
118  // Accesses
+
119 
+
120 # ifdef GLM_FORCE_SIZE_FUNC
+
121  typedef size_t size_type;
+
122  GLM_FUNC_DECL GLM_CONSTEXPR size_t size() const;
+
123 
+
124  GLM_FUNC_DECL col_type & operator[](size_type i);
+
125  GLM_FUNC_DECL col_type const & operator[](size_type i) const;
+
126 # else
+
127  typedef length_t length_type;
+
128  GLM_FUNC_DECL GLM_CONSTEXPR length_type length() const;
129 
-
131  // Increment and decrement operators
-
132 
-
133  GLM_FUNC_DECL tmat2x3<T, P> & operator++ ();
-
134  GLM_FUNC_DECL tmat2x3<T, P> & operator-- ();
-
135  GLM_FUNC_DECL tmat2x3<T, P> operator++(int);
-
136  GLM_FUNC_DECL tmat2x3<T, P> operator--(int);
-
137  };
-
138 
-
139  // Binary operators
-
140 
-
141  template <typename T, precision P>
-
142  GLM_FUNC_DECL tmat2x3<T, P> operator+ (
-
143  tmat2x3<T, P> const & m,
-
144  T const & s);
-
145 
-
146  template <typename T, precision P>
-
147  tmat2x3<T, P> operator+ (
-
148  tmat2x3<T, P> const & m1,
-
149  tmat2x3<T, P> const & m2);
-
150 
-
151  template <typename T, precision P>
-
152  GLM_FUNC_DECL tmat2x3<T, P> operator- (
-
153  tmat2x3<T, P> const & m,
-
154  T const & s);
+
130  GLM_FUNC_DECL col_type & operator[](length_type i);
+
131  GLM_FUNC_DECL col_type const & operator[](length_type i) const;
+
132 # endif//GLM_FORCE_SIZE_FUNC
+
133 
+
135  // Unary arithmetic operators
+
136 
+
137  template <typename U>
+
138  GLM_FUNC_DECL tmat3x3<T, P>& operator= (tmat3x3<U, P> const & m);
+
139  template <typename U>
+
140  GLM_FUNC_DECL tmat3x3<T, P>& operator+= (U s);
+
141  template <typename U>
+
142  GLM_FUNC_DECL tmat3x3<T, P>& operator+= (tmat3x3<U, P> const & m);
+
143  template <typename U>
+
144  GLM_FUNC_DECL tmat3x3<T, P>& operator-= (U s);
+
145  template <typename U>
+
146  GLM_FUNC_DECL tmat3x3<T, P>& operator-= (tmat3x3<U, P> const & m);
+
147  template <typename U>
+
148  GLM_FUNC_DECL tmat3x3<T, P>& operator*= (U s);
+
149  template <typename U>
+
150  GLM_FUNC_DECL tmat3x3<T, P>& operator*= (tmat3x3<U, P> const & m);
+
151  template <typename U>
+
152  GLM_FUNC_DECL tmat3x3<T, P>& operator/= (U s);
+
153  template <typename U>
+
154  GLM_FUNC_DECL tmat3x3<T, P>& operator/= (tmat3x3<U, P> const & m);
155 
-
156  template <typename T, precision P>
-
157  GLM_FUNC_DECL tmat2x3<T, P> operator- (
-
158  tmat2x3<T, P> const & m1,
-
159  tmat2x3<T, P> const & m2);
-
160 
-
161  template <typename T, precision P>
-
162  GLM_FUNC_DECL tmat2x3<T, P> operator* (
-
163  tmat2x3<T, P> const & m,
-
164  T const & s);
-
165 
+
157  // Increment and decrement operators
+
158 
+
159  GLM_FUNC_DECL tmat3x3<T, P> & operator++ ();
+
160  GLM_FUNC_DECL tmat3x3<T, P> & operator-- ();
+
161  GLM_FUNC_DECL tmat3x3<T, P> operator++(int);
+
162  GLM_FUNC_DECL tmat3x3<T, P> operator--(int);
+
163  };
+
164 
+
165  // Binary operators
166  template <typename T, precision P>
-
167  GLM_FUNC_DECL tmat2x3<T, P> operator* (
-
168  T const & s,
-
169  tmat2x3<T, P> const & m);
+
167  GLM_FUNC_DECL tmat3x3<T, P> operator+ (
+
168  tmat3x3<T, P> const & m,
+
169  T const & s);
170 
171  template <typename T, precision P>
-
172  GLM_FUNC_DECL typename tmat2x3<T, P>::col_type operator* (
-
173  tmat2x3<T, P> const & m,
-
174  typename tmat2x3<T, P>::row_type const & v);
+
172  GLM_FUNC_DECL tmat3x3<T, P> operator+ (
+
173  T const & s,
+
174  tmat3x3<T, P> const & m);
175 
176  template <typename T, precision P>
-
177  GLM_FUNC_DECL typename tmat2x3<T, P>::row_type operator* (
-
178  typename tmat2x3<T, P>::col_type const & v,
-
179  tmat2x3<T, P> const & m);
+
177  GLM_FUNC_DECL tmat3x3<T, P> operator+ (
+
178  tmat3x3<T, P> const & m1,
+
179  tmat3x3<T, P> const & m2);
180 
181  template <typename T, precision P>
-
182  GLM_FUNC_DECL tmat2x3<T, P> operator* (
-
183  tmat2x3<T, P> const & m1,
-
184  tmat2x2<T, P> const & m2);
+
182  GLM_FUNC_DECL tmat3x3<T, P> operator- (
+
183  tmat3x3<T, P> const & m,
+
184  T const & s);
185 
186  template <typename T, precision P>
-
187  GLM_FUNC_DECL tmat3x3<T, P> operator* (
-
188  tmat2x3<T, P> const & m1,
-
189  tmat3x2<T, P> const & m2);
-
190 
+
187  GLM_FUNC_DECL tmat3x3<T, P> operator- (
+
188  T const & s,
+
189  tmat3x3<T, P> const & m);
+
190 
191  template <typename T, precision P>
-
192  GLM_FUNC_DECL tmat4x3<T, P> operator* (
-
193  tmat2x3<T, P> const & m1,
-
194  tmat4x2<T, P> const & m2);
+
192  GLM_FUNC_DECL tmat3x3<T, P> operator- (
+
193  tmat3x3<T, P> const & m1,
+
194  tmat3x3<T, P> const & m2);
195 
196  template <typename T, precision P>
-
197  GLM_FUNC_DECL tmat2x3<T, P> operator/ (
-
198  tmat2x3<T, P> const & m,
+
197  GLM_FUNC_DECL tmat3x3<T, P> operator* (
+
198  tmat3x3<T, P> const & m,
199  T const & s);
200 
201  template <typename T, precision P>
-
202  GLM_FUNC_DECL tmat2x3<T, P> operator/ (
+
202  GLM_FUNC_DECL tmat3x3<T, P> operator* (
203  T const & s,
-
204  tmat2x3<T, P> const & m);
+
204  tmat3x3<T, P> const & m);
205 
-
206  // Unary constant operators
-
207  template <typename T, precision P>
-
208  GLM_FUNC_DECL tmat2x3<T, P> const operator- (
-
209  tmat2x3<T, P> const & m);
+
206  template <typename T, precision P>
+
207  GLM_FUNC_DECL typename tmat3x3<T, P>::col_type operator* (
+
208  tmat3x3<T, P> const & m,
+
209  typename tmat3x3<T, P>::row_type const & v);
210 
-
211 }//namespace detail
-
212 }//namespace glm
-
213 
-
214 #ifndef GLM_EXTERNAL_TEMPLATE
-
215 #include "type_mat2x3.inl"
-
216 #endif
-
217 
-
218 #endif //glm_core_type_mat2x3
-
GLM_FUNC_DECL genType::value_type length(genType const &x)
Returns the length of x, i.e., sqrt(x * x).
+
211  template <typename T, precision P>
+
212  GLM_FUNC_DECL typename tmat3x3<T, P>::row_type operator* (
+
213  typename tmat3x3<T, P>::col_type const & v,
+
214  tmat3x3<T, P> const & m);
+
215 
+
216  template <typename T, precision P>
+
217  GLM_FUNC_DECL tmat3x3<T, P> operator* (
+
218  tmat3x3<T, P> const & m1,
+
219  tmat3x3<T, P> const & m2);
+
220 
+
221  template <typename T, precision P>
+
222  GLM_FUNC_DECL tmat2x3<T, P> operator* (
+
223  tmat3x3<T, P> const & m1,
+
224  tmat2x3<T, P> const & m2);
+
225 
+
226  template <typename T, precision P>
+
227  GLM_FUNC_DECL tmat4x3<T, P> operator* (
+
228  tmat3x3<T, P> const & m1,
+
229  tmat4x3<T, P> const & m2);
+
230 
+
231  template <typename T, precision P>
+
232  GLM_FUNC_DECL tmat3x3<T, P> operator/ (
+
233  tmat3x3<T, P> const & m,
+
234  T const & s);
+
235 
+
236  template <typename T, precision P>
+
237  GLM_FUNC_DECL tmat3x3<T, P> operator/ (
+
238  T const & s,
+
239  tmat3x3<T, P> const & m);
+
240 
+
241  template <typename T, precision P>
+
242  GLM_FUNC_DECL typename tmat3x3<T, P>::col_type operator/ (
+
243  tmat3x3<T, P> const & m,
+
244  typename tmat3x3<T, P>::row_type const & v);
+
245 
+
246  template <typename T, precision P>
+
247  GLM_FUNC_DECL typename tmat3x3<T, P>::row_type operator/ (
+
248  typename tmat3x3<T, P>::col_type const & v,
+
249  tmat3x3<T, P> const & m);
+
250 
+
251  template <typename T, precision P>
+
252  GLM_FUNC_DECL tmat3x3<T, P> operator/ (
+
253  tmat3x3<T, P> const & m1,
+
254  tmat3x3<T, P> const & m2);
+
255 
+
256  // Unary constant operators
+
257  template <typename T, precision P>
+
258  GLM_FUNC_DECL tmat3x3<T, P> const operator-(
+
259  tmat3x3<T, P> const & m);
+
260 }//namespace glm
+
261 
+
262 #ifndef GLM_EXTERNAL_TEMPLATE
+
263 #include "type_mat3x3.inl"
+
264 #endif
+
OpenGL Mathematics (glm.g-truc.net)
+
GLM_FUNC_DECL T length(vecType< T, P > const &x)
Returns the length of x, i.e., sqrt(x * x).
+
Definition: _noise.hpp:39
+
OpenGL Mathematics (glm.g-truc.net)
diff --git a/doc/api/a00125.html b/doc/api/a00125.html new file mode 100644 index 00000000..ef3a6741 --- /dev/null +++ b/doc/api/a00125.html @@ -0,0 +1,73 @@ + + + + + + +0.9.6: type_mat3x4.hpp File Reference + + + + + + +
+
+ + + + + + + +
+
0.9.6 +
+
+
+ + + + + +
+
+
+
type_mat3x4.hpp File Reference
+
+
+ +

Go to the source code of this file.

+

Detailed Description

+

OpenGL Mathematics (glm.g-truc.net)

+

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+

GLM Core

+
Date
2006-08-05 / 2011-06-15
+
Author
Christophe Riccio
+ +

Definition in file type_mat3x4.hpp.

+
+ + + + diff --git a/doc/api/a00125_source.html b/doc/api/a00125_source.html index 20cd0f18..d80da7c3 100644 --- a/doc/api/a00125_source.html +++ b/doc/api/a00125_source.html @@ -3,8 +3,8 @@ - -GLM: type_mat2x4.hpp Source File + +0.9.6: type_mat3x4.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,211 +41,190 @@
-
type_mat2x4.hpp
+
type_mat3x4.hpp
-
1 
-
29 #ifndef glm_core_type_mat2x4
-
30 #define glm_core_type_mat2x4
-
31 
-
32 #include "../fwd.hpp"
-
33 #include "type_vec2.hpp"
-
34 #include "type_vec4.hpp"
-
35 #include "type_mat.hpp"
-
36 #include <limits>
-
37 
-
38 namespace glm{
-
39 namespace detail
-
40 {
-
41  template <typename T, precision P>
-
42  struct tmat2x4
-
43  {
-
44  enum ctor{_null};
-
45  typedef T value_type;
-
46  typedef std::size_t size_type;
+Go to the documentation of this file.
1 
+
33 #pragma once
+
34 
+
35 #include "../fwd.hpp"
+
36 #include "type_vec3.hpp"
+
37 #include "type_vec4.hpp"
+
38 #include "type_mat.hpp"
+
39 #include <limits>
+
40 #include <cstddef>
+
41 
+
42 namespace glm
+
43 {
+
44  template <typename T, precision P = defaultp>
+
45  struct tmat3x4
+
46  {
47  typedef tvec4<T, P> col_type;
-
48  typedef tvec2<T, P> row_type;
-
49  typedef tmat2x4<T, P> type;
-
50  typedef tmat4x2<T, P> transpose_type;
-
51 
-
52  GLM_FUNC_DECL GLM_CONSTEXPR length_t length() const;
-
53 
-
54  private:
-
55  // Data
-
56  col_type value[2];
+
48  typedef tvec3<T, P> row_type;
+
49  typedef tmat3x4<T, P> type;
+
50  typedef tmat4x3<T, P> transpose_type;
+
51  typedef T value_type;
+
52 
+
53  private:
+
55  col_type value[3];
57 
58  public:
59  // Constructors
-
60  GLM_FUNC_DECL tmat2x4();
-
61  GLM_FUNC_DECL tmat2x4(tmat2x4<T, P> const & m);
-
62  template <precision Q>
-
63  GLM_FUNC_DECL tmat2x4(tmat2x4<T, Q> const & m);
-
64 
-
65  GLM_FUNC_DECL explicit tmat2x4(
-
66  ctor);
-
67  GLM_FUNC_DECL explicit tmat2x4(
-
68  T const & s);
-
69  GLM_FUNC_DECL explicit tmat2x4(
-
70  T const & x0, T const & y0, T const & z0, T const & w0,
-
71  T const & x1, T const & y1, T const & z1, T const & w1);
-
72  GLM_FUNC_DECL explicit tmat2x4(
-
73  col_type const & v0,
-
74  col_type const & v1);
-
75 
-
76 #if(GLM_HAS_INITIALIZER_LISTS)
-
77  template <typename U>
-
78  GLM_FUNC_DECL tmat2x4(std::initializer_list<U> m);
-
79 
-
80  GLM_FUNC_DECL tmat2x4(std::initializer_list<tvec4<T, P> > m);
-
81 #endif//GLM_HAS_INITIALIZER_LISTS
-
82 
-
84  // Conversions
-
85  template <
-
86  typename X1, typename Y1, typename Z1, typename W1,
-
87  typename X2, typename Y2, typename Z2, typename W2>
-
88  GLM_FUNC_DECL explicit tmat2x4(
-
89  X1 const & x1, Y1 const & y1, Z1 const & z1, W1 const & w1,
-
90  X2 const & x2, Y2 const & y2, Z2 const & z2, W2 const & w2);
-
91 
-
92  template <typename U, typename V>
-
93  GLM_FUNC_DECL explicit tmat2x4(
-
94  tvec4<U, P> const & v1,
-
95  tvec4<V, P> const & v2);
-
96 
-
98  // Matrix conversions
-
99  template <typename U, precision Q>
-
100  GLM_FUNC_DECL explicit tmat2x4(tmat2x4<U, Q> const & m);
-
101 
-
102  GLM_FUNC_DECL explicit tmat2x4(tmat2x2<T, P> const & x);
-
103  GLM_FUNC_DECL explicit tmat2x4(tmat3x3<T, P> const & x);
-
104  GLM_FUNC_DECL explicit tmat2x4(tmat4x4<T, P> const & x);
-
105  GLM_FUNC_DECL explicit tmat2x4(tmat2x3<T, P> const & x);
-
106  GLM_FUNC_DECL explicit tmat2x4(tmat3x2<T, P> const & x);
-
107  GLM_FUNC_DECL explicit tmat2x4(tmat3x4<T, P> const & x);
-
108  GLM_FUNC_DECL explicit tmat2x4(tmat4x2<T, P> const & x);
-
109  GLM_FUNC_DECL explicit tmat2x4(tmat4x3<T, P> const & x);
-
110 
-
111  // Accesses
-
112  GLM_FUNC_DECL col_type & operator[](length_t i);
-
113  GLM_FUNC_DECL col_type const & operator[](length_t i) const;
+
60  GLM_FUNC_DECL tmat3x4();
+
61  template <precision Q>
+
62  GLM_FUNC_DECL tmat3x4(tmat3x4<T, Q> const & m);
+
63 
+
64  GLM_FUNC_DECL explicit tmat3x4(ctor);
+
65  GLM_FUNC_DECL explicit tmat3x4(T const & s);
+
66  GLM_FUNC_DECL tmat3x4(
+
67  T const & x0, T const & y0, T const & z0, T const & w0,
+
68  T const & x1, T const & y1, T const & z1, T const & w1,
+
69  T const & x2, T const & y2, T const & z2, T const & w2);
+
70  GLM_FUNC_DECL tmat3x4(
+
71  col_type const & v0,
+
72  col_type const & v1,
+
73  col_type const & v2);
+
74 
+
76  // Conversions
+
77  template<
+
78  typename X1, typename Y1, typename Z1, typename W1,
+
79  typename X2, typename Y2, typename Z2, typename W2,
+
80  typename X3, typename Y3, typename Z3, typename W3>
+
81  GLM_FUNC_DECL tmat3x4(
+
82  X1 const & x1, Y1 const & y1, Z1 const & z1, W1 const & w1,
+
83  X2 const & x2, Y2 const & y2, Z2 const & z2, W2 const & w2,
+
84  X3 const & x3, Y3 const & y3, Z3 const & z3, W3 const & w3);
+
85 
+
86  template <typename V1, typename V2, typename V3>
+
87  GLM_FUNC_DECL tmat3x4(
+
88  tvec4<V1, P> const & v1,
+
89  tvec4<V2, P> const & v2,
+
90  tvec4<V3, P> const & v3);
+
91 
+
93  // Matrix conversion
+
94 
+
95 # ifdef GLM_FORCE_EXPLICIT_CTOR
+
96  template <typename U, precision Q>
+
97  GLM_FUNC_DECL explicit tmat3x4(tmat3x4<U, Q> const & m);
+
98 # else
+
99  template <typename U, precision Q>
+
100  GLM_FUNC_DECL tmat3x4(tmat3x4<U, Q> const & m);
+
101 # endif
+
102 
+
103  GLM_FUNC_DECL explicit tmat3x4(tmat2x2<T, P> const & x);
+
104  GLM_FUNC_DECL explicit tmat3x4(tmat3x3<T, P> const & x);
+
105  GLM_FUNC_DECL explicit tmat3x4(tmat4x4<T, P> const & x);
+
106  GLM_FUNC_DECL explicit tmat3x4(tmat2x3<T, P> const & x);
+
107  GLM_FUNC_DECL explicit tmat3x4(tmat3x2<T, P> const & x);
+
108  GLM_FUNC_DECL explicit tmat3x4(tmat2x4<T, P> const & x);
+
109  GLM_FUNC_DECL explicit tmat3x4(tmat4x2<T, P> const & x);
+
110  GLM_FUNC_DECL explicit tmat3x4(tmat4x3<T, P> const & x);
+
111 
+
113  // Accesses
114 
-
115  // Unary updatable operators
-
116  GLM_FUNC_DECL tmat2x4<T, P>& operator= (tmat2x4<T, P> const & m);
-
117  template <typename U>
-
118  GLM_FUNC_DECL tmat2x4<T, P>& operator= (tmat2x4<U, P> const & m);
-
119  template <typename U>
-
120  GLM_FUNC_DECL tmat2x4<T, P>& operator+= (U s);
-
121  template <typename U>
-
122  GLM_FUNC_DECL tmat2x4<T, P>& operator+= (tmat2x4<U, P> const & m);
-
123  template <typename U>
-
124  GLM_FUNC_DECL tmat2x4<T, P>& operator-= (U s);
-
125  template <typename U>
-
126  GLM_FUNC_DECL tmat2x4<T, P>& operator-= (tmat2x4<U, P> const & m);
-
127  template <typename U>
-
128  GLM_FUNC_DECL tmat2x4<T, P>& operator*= (U s);
-
129  template <typename U>
-
130  GLM_FUNC_DECL tmat2x4<T, P>& operator/= (U s);
+
115 # ifdef GLM_FORCE_SIZE_FUNC
+
116  typedef size_t size_type;
+
117  GLM_FUNC_DECL GLM_CONSTEXPR size_t size() const;
+
118 
+
119  GLM_FUNC_DECL col_type & operator[](size_type i);
+
120  GLM_FUNC_DECL col_type const & operator[](size_type i) const;
+
121 # else
+
122  typedef length_t length_type;
+
123  GLM_FUNC_DECL GLM_CONSTEXPR length_type length() const;
+
124 
+
125  GLM_FUNC_DECL col_type & operator[](length_type i);
+
126  GLM_FUNC_DECL col_type const & operator[](length_type i) const;
+
127 # endif//GLM_FORCE_SIZE_FUNC
+
128 
+
130  // Unary arithmetic operators
131 
-
133  // Increment and decrement operators
-
134 
-
135  GLM_FUNC_DECL tmat2x4<T, P> & operator++ ();
-
136  GLM_FUNC_DECL tmat2x4<T, P> & operator-- ();
-
137  GLM_FUNC_DECL tmat2x4<T, P> operator++(int);
-
138  GLM_FUNC_DECL tmat2x4<T, P> operator--(int);
-
139  };
-
140 
-
141  // Binary operators
-
142 
-
143  template <typename T, precision P>
-
144  GLM_FUNC_DECL tmat2x4<T, P> operator+ (
-
145  tmat2x4<T, P> const & m,
-
146  T const & s);
-
147 
-
148  template <typename T, precision P>
-
149  GLM_FUNC_DECL tmat2x4<T, P> operator+ (
-
150  tmat2x4<T, P> const & m1,
-
151  tmat2x4<T, P> const & m2);
-
152 
-
153  template <typename T, precision P>
-
154  GLM_FUNC_DECL tmat2x4<T, P> operator- (
-
155  tmat2x4<T, P> const & m,
-
156  T const & s);
-
157 
-
158  template <typename T, precision P>
-
159  GLM_FUNC_DECL tmat2x4<T, P> operator- (
-
160  tmat2x4<T, P> const & m1,
-
161  tmat2x4<T, P> const & m2);
+
132  template <typename U>
+
133  GLM_FUNC_DECL tmat3x4<T, P> & operator=(tmat3x4<U, P> const & m);
+
134  template <typename U>
+
135  GLM_FUNC_DECL tmat3x4<T, P> & operator+=(U s);
+
136  template <typename U>
+
137  GLM_FUNC_DECL tmat3x4<T, P> & operator+=(tmat3x4<U, P> const & m);
+
138  template <typename U>
+
139  GLM_FUNC_DECL tmat3x4<T, P> & operator-=(U s);
+
140  template <typename U>
+
141  GLM_FUNC_DECL tmat3x4<T, P> & operator-=(tmat3x4<U, P> const & m);
+
142  template <typename U>
+
143  GLM_FUNC_DECL tmat3x4<T, P> & operator*=(U s);
+
144  template <typename U>
+
145  GLM_FUNC_DECL tmat3x4<T, P> & operator/=(U s);
+
146 
+
148  // Increment and decrement operators
+
149 
+
150  GLM_FUNC_DECL tmat3x4<T, P> & operator++();
+
151  GLM_FUNC_DECL tmat3x4<T, P> & operator--();
+
152  GLM_FUNC_DECL tmat3x4<T, P> operator++(int);
+
153  GLM_FUNC_DECL tmat3x4<T, P> operator--(int);
+
154  };
+
155 
+
156  // Binary operators
+
157  template <typename T, precision P>
+
158  GLM_FUNC_DECL tmat3x4<T, P> operator+(tmat3x4<T, P> const & m, T const & s);
+
159 
+
160  template <typename T, precision P>
+
161  GLM_FUNC_DECL tmat3x4<T, P> operator+(tmat3x4<T, P> const & m1, tmat3x4<T, P> const & m2);
162 
163  template <typename T, precision P>
-
164  GLM_FUNC_DECL tmat2x4<T, P> operator* (
-
165  tmat2x4<T, P> const & m,
-
166  T const & s);
-
167 
-
168  template <typename T, precision P>
-
169  GLM_FUNC_DECL tmat2x4<T, P> operator* (
-
170  T const & s,
-
171  tmat2x4<T, P> const & m);
-
172 
-
173  template <typename T, precision P>
-
174  GLM_FUNC_DECL typename tmat2x4<T, P>::col_type operator* (
-
175  tmat2x4<T, P> const & m,
-
176  typename tmat2x4<T, P>::row_type const & v);
+
164  GLM_FUNC_DECL tmat3x4<T, P> operator-(tmat3x4<T, P> const & m, T const & s);
+
165 
+
166  template <typename T, precision P>
+
167  GLM_FUNC_DECL tmat3x4<T, P> operator-(tmat3x4<T, P> const & m1, tmat3x4<T, P> const & m2);
+
168 
+
169  template <typename T, precision P>
+
170  GLM_FUNC_DECL tmat3x4<T, P> operator*(tmat3x4<T, P> const & m, T const & s);
+
171 
+
172  template <typename T, precision P>
+
173  GLM_FUNC_DECL tmat3x4<T, P> operator*(T const & s, tmat3x4<T, P> const & m);
+
174 
+
175  template <typename T, precision P>
+
176  GLM_FUNC_DECL typename tmat3x4<T, P>::col_type operator*(tmat3x4<T, P> const & m, typename tmat3x4<T, P>::row_type const & v);
177 
-
178  template <typename T, precision P>
-
179  GLM_FUNC_DECL typename tmat2x4<T, P>::row_type operator* (
-
180  typename tmat2x4<T, P>::col_type const & v,
-
181  tmat2x4<T, P> const & m);
-
182 
-
183  template <typename T, precision P>
-
184  GLM_FUNC_DECL tmat4x4<T, P> operator* (
-
185  tmat2x4<T, P> const & m1,
-
186  tmat4x2<T, P> const & m2);
-
187 
-
188  template <typename T, precision P>
-
189  GLM_FUNC_DECL tmat2x4<T, P> operator* (
-
190  tmat2x4<T, P> const & m1,
-
191  tmat2x2<T, P> const & m2);
-
192 
+
178  template <typename T, precision P>
+
179  GLM_FUNC_DECL typename tmat3x4<T, P>::row_type operator*(typename tmat3x4<T, P>::col_type const & v, tmat3x4<T, P> const & m);
+
180 
+
181  template <typename T, precision P>
+
182  GLM_FUNC_DECL tmat4x4<T, P> operator*(tmat3x4<T, P> const & m1, tmat4x3<T, P> const & m2);
+
183 
+
184  template <typename T, precision P>
+
185  GLM_FUNC_DECL tmat2x4<T, P> operator*(tmat3x4<T, P> const & m1, tmat2x3<T, P> const & m2);
+
186 
+
187  template <typename T, precision P>
+
188  GLM_FUNC_DECL tmat3x4<T, P> operator*(tmat3x4<T, P> const & m1, tmat3x3<T, P> const & m2);
+
189 
+
190  template <typename T, precision P>
+
191  GLM_FUNC_DECL tmat3x4<T, P> operator/(tmat3x4<T, P> const & m, T const & s);
+
192 
193  template <typename T, precision P>
-
194  GLM_FUNC_DECL tmat3x4<T, P> operator* (
-
195  tmat2x4<T, P> const & m1,
-
196  tmat3x2<T, P> const & m2);
-
197 
-
198  template <typename T, precision P>
-
199  GLM_FUNC_DECL tmat2x4<T, P> operator/ (
-
200  tmat2x4<T, P> const & m,
-
201  T const & s);
-
202 
-
203  template <typename T, precision P>
-
204  GLM_FUNC_DECL tmat2x4<T, P> operator/ (
-
205  T const & s,
-
206  tmat2x4<T, P> const & m);
-
207 
-
208  // Unary constant operators
-
209  template <typename T, precision P>
-
210  GLM_FUNC_DECL tmat2x4<T, P> const operator- (
-
211  tmat2x4<T, P> const & m);
-
212 
-
213 }//namespace detail
-
214 }//namespace glm
-
215 
-
216 #ifndef GLM_EXTERNAL_TEMPLATE
-
217 #include "type_mat2x4.inl"
-
218 #endif
-
219 
-
220 #endif //glm_core_type_mat2x4
-
GLM_FUNC_DECL genType::value_type length(genType const &x)
Returns the length of x, i.e., sqrt(x * x).
+
194  GLM_FUNC_DECL tmat3x4<T, P> operator/(T const & s, tmat3x4<T, P> const & m);
+
195 
+
196  // Unary constant operators
+
197  template <typename T, precision P>
+
198  GLM_FUNC_DECL tmat3x4<T, P> const operator-(tmat3x4<T, P> const & m);
+
199 }//namespace glm
+
200 
+
201 #ifndef GLM_EXTERNAL_TEMPLATE
+
202 #include "type_mat3x4.inl"
+
203 #endif
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
GLM_FUNC_DECL T length(vecType< T, P > const &x)
Returns the length of x, i.e., sqrt(x * x).
+
Definition: _noise.hpp:39
+
OpenGL Mathematics (glm.g-truc.net)
diff --git a/doc/api/a00126.html b/doc/api/a00126.html new file mode 100644 index 00000000..1d9fca72 --- /dev/null +++ b/doc/api/a00126.html @@ -0,0 +1,73 @@ + + + + + + +0.9.6: type_mat4x2.hpp File Reference + + + + + + +
+
+ + + + + + + +
+
0.9.6 +
+
+
+ + + + + +
+
+
+
type_mat4x2.hpp File Reference
+
+
+ +

Go to the source code of this file.

+

Detailed Description

+

OpenGL Mathematics (glm.g-truc.net)

+

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+

GLM Core

+
Date
2006-10-01 / 2011-06-15
+
Author
Christophe Riccio
+ +

Definition in file type_mat4x2.hpp.

+
+ + + + diff --git a/doc/api/a00126_source.html b/doc/api/a00126_source.html index 429e23a3..a2f071e5 100644 --- a/doc/api/a00126_source.html +++ b/doc/api/a00126_source.html @@ -3,8 +3,8 @@ - -GLM: type_mat3x2.hpp Source File + +0.9.6: type_mat4x2.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,215 +41,196 @@
-
type_mat3x2.hpp
+
type_mat4x2.hpp
-
1 
-
29 #ifndef glm_core_type_mat3x2
-
30 #define glm_core_type_mat3x2
-
31 
-
32 #include "../fwd.hpp"
-
33 #include "type_vec2.hpp"
-
34 #include "type_vec3.hpp"
-
35 #include "type_mat.hpp"
-
36 #include <limits>
-
37 
-
38 namespace glm{
-
39 namespace detail
-
40 {
-
41  template <typename T, precision P>
-
42  struct tmat3x2
-
43  {
-
44  enum ctor{_null};
-
45  typedef T value_type;
-
46  typedef std::size_t size_type;
+Go to the documentation of this file.
1 
+
33 #pragma once
+
34 
+
35 #include "../fwd.hpp"
+
36 #include "type_vec2.hpp"
+
37 #include "type_vec4.hpp"
+
38 #include "type_mat.hpp"
+
39 #include <limits>
+
40 #include <cstddef>
+
41 
+
42 namespace glm
+
43 {
+
44  template <typename T, precision P = defaultp>
+
45  struct tmat4x2
+
46  {
47  typedef tvec2<T, P> col_type;
-
48  typedef tvec3<T, P> row_type;
-
49  typedef tmat3x2<T, P> type;
-
50  typedef tmat2x3<T, P> transpose_type;
-
51 
-
52  GLM_FUNC_DECL GLM_CONSTEXPR length_t length() const;
-
53 
-
54  private:
-
55  // Data
-
56  col_type value[3];
+
48  typedef tvec4<T, P> row_type;
+
49  typedef tmat4x2<T, P> type;
+
50  typedef tmat2x4<T, P> transpose_type;
+
51  typedef T value_type;
+
52 
+
53  private:
+
55  col_type value[4];
57 
58  public:
59  // Constructors
-
60  GLM_FUNC_DECL tmat3x2();
-
61  GLM_FUNC_DECL tmat3x2(tmat3x2<T, P> const & m);
-
62  template <precision Q>
-
63  GLM_FUNC_DECL tmat3x2(tmat3x2<T, Q> const & m);
-
64 
-
65  GLM_FUNC_DECL explicit tmat3x2(
-
66  ctor);
-
67  GLM_FUNC_DECL explicit tmat3x2(
-
68  T const & s);
-
69  GLM_FUNC_DECL explicit tmat3x2(
-
70  T const & x0, T const & y0,
-
71  T const & x1, T const & y1,
-
72  T const & x2, T const & y2);
-
73  GLM_FUNC_DECL explicit tmat3x2(
-
74  col_type const & v0,
-
75  col_type const & v1,
-
76  col_type const & v2);
-
77 
-
78 #if(GLM_HAS_INITIALIZER_LISTS)
-
79  template <typename U>
-
80  GLM_FUNC_DECL tmat3x2(std::initializer_list<U> l);
-
81 
-
82  GLM_FUNC_DECL tmat3x2(std::initializer_list<tvec2<T, P> > l);
-
83 #endif//GLM_HAS_INITIALIZER_LISTS
-
84 
-
86  // Conversions
-
87  template<
-
88  typename X1, typename Y1,
-
89  typename X2, typename Y2,
-
90  typename X3, typename Y3>
-
91  GLM_FUNC_DECL explicit tmat3x2(
-
92  X1 const & x1, Y1 const & y1,
-
93  X2 const & x2, Y2 const & y2,
-
94  X3 const & x3, Y3 const & y3);
-
95 
-
96  template <typename V1, typename V2, typename V3>
-
97  GLM_FUNC_DECL explicit tmat3x2(
-
98  tvec2<V1, P> const & v1,
-
99  tvec2<V2, P> const & v2,
-
100  tvec2<V3, P> const & v3);
-
101 
-
102  // Matrix conversions
-
103  template <typename U, precision Q>
-
104  GLM_FUNC_DECL explicit tmat3x2(tmat3x2<U, Q> const & m);
-
105 
-
106  GLM_FUNC_DECL explicit tmat3x2(tmat2x2<T, P> const & x);
-
107  GLM_FUNC_DECL explicit tmat3x2(tmat3x3<T, P> const & x);
-
108  GLM_FUNC_DECL explicit tmat3x2(tmat4x4<T, P> const & x);
-
109  GLM_FUNC_DECL explicit tmat3x2(tmat2x3<T, P> const & x);
-
110  GLM_FUNC_DECL explicit tmat3x2(tmat2x4<T, P> const & x);
-
111  GLM_FUNC_DECL explicit tmat3x2(tmat3x4<T, P> const & x);
-
112  GLM_FUNC_DECL explicit tmat3x2(tmat4x2<T, P> const & x);
-
113  GLM_FUNC_DECL explicit tmat3x2(tmat4x3<T, P> const & x);
-
114 
-
115  // Accesses
-
116  GLM_FUNC_DECL col_type & operator[](length_t i);
-
117  GLM_FUNC_DECL col_type const & operator[](length_t i) const;
-
118 
-
119  // Unary updatable operators
-
120  GLM_FUNC_DECL tmat3x2<T, P> & operator= (tmat3x2<T, P> const & m);
-
121  template <typename U>
-
122  GLM_FUNC_DECL tmat3x2<T, P> & operator= (tmat3x2<U, P> const & m);
-
123  template <typename U>
-
124  GLM_FUNC_DECL tmat3x2<T, P> & operator+= (U s);
-
125  template <typename U>
-
126  GLM_FUNC_DECL tmat3x2<T, P> & operator+= (tmat3x2<U, P> const & m);
-
127  template <typename U>
-
128  GLM_FUNC_DECL tmat3x2<T, P> & operator-= (U s);
-
129  template <typename U>
-
130  GLM_FUNC_DECL tmat3x2<T, P> & operator-= (tmat3x2<U, P> const & m);
-
131  template <typename U>
-
132  GLM_FUNC_DECL tmat3x2<T, P> & operator*= (U s);
-
133  template <typename U>
-
134  GLM_FUNC_DECL tmat3x2<T, P> & operator/= (U s);
-
135 
-
137  // Increment and decrement operators
-
138 
-
139  GLM_FUNC_DECL tmat3x2<T, P> & operator++ ();
-
140  GLM_FUNC_DECL tmat3x2<T, P> & operator-- ();
-
141  GLM_FUNC_DECL tmat3x2<T, P> operator++(int);
-
142  GLM_FUNC_DECL tmat3x2<T, P> operator--(int);
-
143  };
-
144 
-
145  // Binary operators
-
146  template <typename T, precision P>
-
147  GLM_FUNC_DECL tmat3x2<T, P> operator+ (
-
148  tmat3x2<T, P> const & m,
-
149  T const & s);
-
150 
-
151  template <typename T, precision P>
-
152  GLM_FUNC_DECL tmat3x2<T, P> operator+ (
-
153  tmat3x2<T, P> const & m1,
-
154  tmat3x2<T, P> const & m2);
+
60  GLM_FUNC_DECL tmat4x2();
+
61  template <precision Q>
+
62  GLM_FUNC_DECL tmat4x2(tmat4x2<T, Q> const & m);
+
63 
+
64  GLM_FUNC_DECL explicit tmat4x2(ctor);
+
65  GLM_FUNC_DECL explicit tmat4x2(T const & x);
+
66  GLM_FUNC_DECL tmat4x2(
+
67  T const & x0, T const & y0,
+
68  T const & x1, T const & y1,
+
69  T const & x2, T const & y2,
+
70  T const & x3, T const & y3);
+
71  GLM_FUNC_DECL tmat4x2(
+
72  col_type const & v0,
+
73  col_type const & v1,
+
74  col_type const & v2,
+
75  col_type const & v3);
+
76 
+
78  // Conversions
+
79 
+
80  template <
+
81  typename X1, typename Y1,
+
82  typename X2, typename Y2,
+
83  typename X3, typename Y3,
+
84  typename X4, typename Y4>
+
85  GLM_FUNC_DECL tmat4x2(
+
86  X1 const & x1, Y1 const & y1,
+
87  X2 const & x2, Y2 const & y2,
+
88  X3 const & x3, Y3 const & y3,
+
89  X4 const & x4, Y4 const & y4);
+
90 
+
91  template <typename V1, typename V2, typename V3, typename V4>
+
92  GLM_FUNC_DECL tmat4x2(
+
93  tvec2<V1, P> const & v1,
+
94  tvec2<V2, P> const & v2,
+
95  tvec2<V3, P> const & v3,
+
96  tvec2<V4, P> const & v4);
+
97 
+
99  // Matrix conversions
+
100 
+
101 # ifdef GLM_FORCE_EXPLICIT_CTOR
+
102  template <typename U, precision Q>
+
103  GLM_FUNC_DECL explicit tmat4x2(tmat4x2<U, Q> const & m);
+
104 # else
+
105  template <typename U, precision Q>
+
106  GLM_FUNC_DECL tmat4x2(tmat4x2<U, Q> const & m);
+
107 # endif
+
108 
+
109  GLM_FUNC_DECL explicit tmat4x2(tmat2x2<T, P> const & x);
+
110  GLM_FUNC_DECL explicit tmat4x2(tmat3x3<T, P> const & x);
+
111  GLM_FUNC_DECL explicit tmat4x2(tmat4x4<T, P> const & x);
+
112  GLM_FUNC_DECL explicit tmat4x2(tmat2x3<T, P> const & x);
+
113  GLM_FUNC_DECL explicit tmat4x2(tmat3x2<T, P> const & x);
+
114  GLM_FUNC_DECL explicit tmat4x2(tmat2x4<T, P> const & x);
+
115  GLM_FUNC_DECL explicit tmat4x2(tmat4x3<T, P> const & x);
+
116  GLM_FUNC_DECL explicit tmat4x2(tmat3x4<T, P> const & x);
+
117 
+
119  // Accesses
+
120 
+
121 # ifdef GLM_FORCE_SIZE_FUNC
+
122  typedef size_t size_type;
+
123  GLM_FUNC_DECL GLM_CONSTEXPR size_t size() const;
+
124 
+
125  GLM_FUNC_DECL col_type & operator[](size_type i);
+
126  GLM_FUNC_DECL col_type const & operator[](size_type i) const;
+
127 # else
+
128  typedef length_t length_type;
+
129  GLM_FUNC_DECL GLM_CONSTEXPR length_type length() const;
+
130 
+
131  GLM_FUNC_DECL col_type & operator[](length_type i);
+
132  GLM_FUNC_DECL col_type const & operator[](length_type i) const;
+
133 # endif//GLM_FORCE_SIZE_FUNC
+
134 
+
136  // Unary arithmetic operators
+
137 
+
138  template <typename U>
+
139  GLM_FUNC_DECL tmat4x2<T, P>& operator=(tmat4x2<U, P> const & m);
+
140  template <typename U>
+
141  GLM_FUNC_DECL tmat4x2<T, P>& operator+=(U s);
+
142  template <typename U>
+
143  GLM_FUNC_DECL tmat4x2<T, P>& operator+=(tmat4x2<U, P> const & m);
+
144  template <typename U>
+
145  GLM_FUNC_DECL tmat4x2<T, P>& operator-=(U s);
+
146  template <typename U>
+
147  GLM_FUNC_DECL tmat4x2<T, P>& operator-=(tmat4x2<U, P> const & m);
+
148  template <typename U>
+
149  GLM_FUNC_DECL tmat4x2<T, P>& operator*=(U s);
+
150  template <typename U>
+
151  GLM_FUNC_DECL tmat4x2<T, P>& operator/=(U s);
+
152 
+
154  // Increment and decrement operators
155 
-
156  template <typename T, precision P>
-
157  GLM_FUNC_DECL tmat3x2<T, P> operator- (
-
158  tmat3x2<T, P> const & m,
-
159  T const & s);
-
160 
-
161  template <typename T, precision P>
-
162  GLM_FUNC_DECL tmat3x2<T, P> operator- (
-
163  tmat3x2<T, P> const & m1,
-
164  tmat3x2<T, P> const & m2);
+
156  GLM_FUNC_DECL tmat4x2<T, P> & operator++ ();
+
157  GLM_FUNC_DECL tmat4x2<T, P> & operator-- ();
+
158  GLM_FUNC_DECL tmat4x2<T, P> operator++(int);
+
159  GLM_FUNC_DECL tmat4x2<T, P> operator--(int);
+
160  };
+
161 
+
162  // Binary operators
+
163  template <typename T, precision P>
+
164  GLM_FUNC_DECL tmat4x2<T, P> operator+(tmat4x2<T, P> const & m, T const & s);
165 
166  template <typename T, precision P>
-
167  GLM_FUNC_DECL tmat3x2<T, P> operator* (
-
168  tmat3x2<T, P> const & m,
-
169  T const & s);
-
170 
-
171  template <typename T, precision P>
-
172  GLM_FUNC_DECL tmat3x2<T, P> operator* (
-
173  T const & s,
-
174  tmat3x2<T, P> const & m);
-
175 
-
176  template <typename T, precision P>
-
177  GLM_FUNC_DECL typename tmat3x2<T, P>::col_type operator* (
-
178  tmat3x2<T, P> const & m,
-
179  typename tmat3x2<T, P>::row_type const & v);
+
167  GLM_FUNC_DECL tmat4x2<T, P> operator+(tmat4x2<T, P> const & m1, tmat4x2<T, P> const & m2);
+
168 
+
169  template <typename T, precision P>
+
170  GLM_FUNC_DECL tmat4x2<T, P> operator-(tmat4x2<T, P> const & m, T const & s);
+
171 
+
172  template <typename T, precision P>
+
173  GLM_FUNC_DECL tmat4x2<T, P> operator-(tmat4x2<T, P> const & m1, tmat4x2<T, P> const & m2);
+
174 
+
175  template <typename T, precision P>
+
176  GLM_FUNC_DECL tmat4x2<T, P> operator*(tmat4x2<T, P> const & m, T const & s);
+
177 
+
178  template <typename T, precision P>
+
179  GLM_FUNC_DECL tmat4x2<T, P> operator*(T const & s, tmat4x2<T, P> const & m);
180 
181  template <typename T, precision P>
-
182  GLM_FUNC_DECL typename tmat3x2<T, P>::row_type operator* (
-
183  typename tmat3x2<T, P>::col_type const & v,
-
184  tmat3x2<T, P> const & m);
-
185 
-
186  template <typename T, precision P>
-
187  GLM_FUNC_DECL tmat2x2<T, P> operator* (
-
188  tmat3x2<T, P> const & m1,
-
189  tmat2x3<T, P> const & m2);
-
190 
-
191  template <typename T, precision P>
-
192  GLM_FUNC_DECL tmat3x2<T, P> operator* (
-
193  tmat3x2<T, P> const & m1,
-
194  tmat3x3<T, P> const & m2);
-
195 
+
182  GLM_FUNC_DECL typename tmat4x2<T, P>::col_type operator*(tmat4x2<T, P> const & m, typename tmat4x2<T, P>::row_type const & v);
+
183 
+
184  template <typename T, precision P>
+
185  GLM_FUNC_DECL typename tmat4x2<T, P>::row_type operator*(typename tmat4x2<T, P>::col_type const & v, tmat4x2<T, P> const & m);
+
186 
+
187  template <typename T, precision P>
+
188  GLM_FUNC_DECL tmat3x2<T, P> operator*(tmat4x2<T, P> const & m1, tmat3x4<T, P> const & m2);
+
189 
+
190  template <typename T, precision P>
+
191  GLM_FUNC_DECL tmat4x2<T, P> operator*(tmat4x2<T, P> const & m1, tmat4x4<T, P> const & m2);
+
192 
+
193  template <typename T, precision P>
+
194  GLM_FUNC_DECL tmat2x3<T, P> operator*(tmat4x3<T, P> const & m1, tmat2x4<T, P> const & m2);
+
195 
196  template <typename T, precision P>
-
197  GLM_FUNC_DECL tmat4x2<T, P> operator* (
-
198  tmat3x2<T, P> const & m1,
-
199  tmat4x3<T, P> const & m2);
-
200 
-
201  template <typename T, precision P>
-
202  GLM_FUNC_DECL tmat3x2<T, P> operator/ (
-
203  tmat3x2<T, P> const & m,
-
204  T const & s);
-
205 
-
206  template <typename T, precision P>
-
207  GLM_FUNC_DECL tmat3x2<T, P> operator/ (
-
208  T const & s,
-
209  tmat3x2<T, P> const & m);
-
210 
-
211  // Unary constant operators
-
212  template <typename T, precision P>
-
213  GLM_FUNC_DECL tmat3x2<T, P> const operator-(
-
214  tmat3x2<T, P> const & m);
-
215 
-
216 }//namespace detail
-
217 }//namespace glm
-
218 
-
219 #ifndef GLM_EXTERNAL_TEMPLATE
-
220 #include "type_mat3x2.inl"
-
221 #endif
-
222 
-
223 #endif //glm_core_type_mat3x2
-
GLM_FUNC_DECL genType::value_type length(genType const &x)
Returns the length of x, i.e., sqrt(x * x).
+
197  GLM_FUNC_DECL tmat4x2<T, P> operator/(tmat4x2<T, P> const & m, T const & s);
+
198 
+
199  template <typename T, precision P>
+
200  GLM_FUNC_DECL tmat4x2<T, P> operator/(T const & s, tmat4x2<T, P> const & m);
+
201 
+
202  // Unary constant operators
+
203  template <typename T, precision P>
+
204  GLM_FUNC_DECL tmat4x2<T, P> const operator-(tmat4x2<T, P> const & m);
+
205 }//namespace glm
+
206 
+
207 #ifndef GLM_EXTERNAL_TEMPLATE
+
208 #include "type_mat4x2.inl"
+
209 #endif
+
OpenGL Mathematics (glm.g-truc.net)
+
GLM_FUNC_DECL T length(vecType< T, P > const &x)
Returns the length of x, i.e., sqrt(x * x).
+
Definition: _noise.hpp:39
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
diff --git a/doc/api/a00127.html b/doc/api/a00127.html new file mode 100644 index 00000000..3841db68 --- /dev/null +++ b/doc/api/a00127.html @@ -0,0 +1,73 @@ + + + + + + +0.9.6: type_mat4x3.hpp File Reference + + + + + + +
+
+ + + + + + + +
+
0.9.6 +
+
+
+ + + + + +
+
+
+
type_mat4x3.hpp File Reference
+
+
+ +

Go to the source code of this file.

+

Detailed Description

+

OpenGL Mathematics (glm.g-truc.net)

+

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+

GLM Core

+
Date
2006-08-04 / 2011-06-15
+
Author
Christophe Riccio
+ +

Definition in file type_mat4x3.hpp.

+
+ + + + diff --git a/doc/api/a00127_source.html b/doc/api/a00127_source.html index d9993936..b038207d 100644 --- a/doc/api/a00127_source.html +++ b/doc/api/a00127_source.html @@ -3,8 +3,8 @@ - -GLM: type_mat3x3.hpp Source File + +0.9.6: type_mat4x3.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,250 +41,197 @@
-
type_mat3x3.hpp
+
type_mat4x3.hpp
-
1 
-
29 #ifndef glm_core_type_mat3x3
-
30 #define glm_core_type_mat3x3
-
31 
-
32 #include "../fwd.hpp"
-
33 #include "type_vec3.hpp"
-
34 #include "type_mat.hpp"
-
35 #include <limits>
-
36 
-
37 namespace glm{
-
38 namespace detail
-
39 {
-
40  template <typename T, precision P>
-
41  struct tmat3x3
-
42  {
-
43  enum ctor{_null};
-
44  typedef T value_type;
-
45  typedef std::size_t size_type;
-
46  typedef tvec3<T, P> col_type;
-
47  typedef tvec3<T, P> row_type;
-
48  typedef tmat3x3<T, P> type;
-
49  typedef tmat3x3<T, P> transpose_type;
-
50 
-
51  GLM_FUNC_DECL GLM_CONSTEXPR length_t length() const;
+Go to the documentation of this file.
1 
+
33 #pragma once
+
34 
+
35 #include "../fwd.hpp"
+
36 #include "type_vec3.hpp"
+
37 #include "type_vec4.hpp"
+
38 #include "type_mat.hpp"
+
39 #include <limits>
+
40 #include <cstddef>
+
41 
+
42 namespace glm
+
43 {
+
44  template <typename T, precision P = defaultp>
+
45  struct tmat4x3
+
46  {
+
47  typedef tvec3<T, P> col_type;
+
48  typedef tvec4<T, P> row_type;
+
49  typedef tmat4x3<T, P> type;
+
50  typedef tmat3x4<T, P> transpose_type;
+
51  typedef T value_type;
52 
-
53  template <typename U, precision Q>
-
54  friend tvec3<U, Q> operator/(tmat3x3<U, Q> const & m, tvec3<U, Q> const & v);
-
55  template <typename U, precision Q>
-
56  friend tvec3<U, Q> operator/(tvec3<U, Q> const & v, tmat3x3<U, Q> const & m);
-
57 
-
58  private:
-
60  col_type value[3];
-
62 
-
63  public:
-
64  // Constructors
-
65  GLM_FUNC_DECL tmat3x3();
-
66  GLM_FUNC_DECL tmat3x3(tmat3x3<T, P> const & m);
-
67  template <precision Q>
-
68  GLM_FUNC_DECL tmat3x3(tmat3x3<T, Q> const & m);
-
69 
-
70  GLM_FUNC_DECL explicit tmat3x3(
-
71  ctor Null);
-
72  GLM_FUNC_DECL explicit tmat3x3(
-
73  T const & s);
-
74  GLM_FUNC_DECL explicit tmat3x3(
-
75  T const & x0, T const & y0, T const & z0,
-
76  T const & x1, T const & y1, T const & z1,
-
77  T const & x2, T const & y2, T const & z2);
-
78  GLM_FUNC_DECL explicit tmat3x3(
-
79  col_type const & v0,
-
80  col_type const & v1,
-
81  col_type const & v2);
-
82 
-
83 #if(GLM_HAS_INITIALIZER_LISTS)
-
84  template <typename U>
-
85  GLM_FUNC_DECL tmat3x3(std::initializer_list<U> m);
-
86 
-
87  GLM_FUNC_DECL tmat3x3(std::initializer_list<tvec3<T, P> > m);
-
88 #endif//GLM_HAS_INITIALIZER_LISTS
-
89 
-
91  // Conversions
-
92  template<
-
93  typename X1, typename Y1, typename Z1,
-
94  typename X2, typename Y2, typename Z2,
-
95  typename X3, typename Y3, typename Z3>
-
96  GLM_FUNC_DECL explicit tmat3x3(
-
97  X1 const & x1, Y1 const & y1, Z1 const & z1,
-
98  X2 const & x2, Y2 const & y2, Z2 const & z2,
-
99  X3 const & x3, Y3 const & y3, Z3 const & z3);
-
100 
-
101  template <typename V1, typename V2, typename V3>
-
102  GLM_FUNC_DECL explicit tmat3x3(
-
103  tvec3<V1, P> const & v1,
-
104  tvec3<V2, P> const & v2,
-
105  tvec3<V3, P> const & v3);
-
106 
-
107  // Matrix conversions
-
108  template <typename U, precision Q>
-
109  GLM_FUNC_DECL explicit tmat3x3(tmat3x3<U, Q> const & m);
-
110 
-
111  GLM_FUNC_DECL explicit tmat3x3(tmat2x2<T, P> const & x);
-
112  GLM_FUNC_DECL explicit tmat3x3(tmat4x4<T, P> const & x);
-
113  GLM_FUNC_DECL explicit tmat3x3(tmat2x3<T, P> const & x);
-
114  GLM_FUNC_DECL explicit tmat3x3(tmat3x2<T, P> const & x);
-
115  GLM_FUNC_DECL explicit tmat3x3(tmat2x4<T, P> const & x);
-
116  GLM_FUNC_DECL explicit tmat3x3(tmat4x2<T, P> const & x);
-
117  GLM_FUNC_DECL explicit tmat3x3(tmat3x4<T, P> const & x);
-
118  GLM_FUNC_DECL explicit tmat3x3(tmat4x3<T, P> const & x);
+
53  private:
+
54  // Data
+
55  col_type value[4];
+
56 
+
57  public:
+
58  // Constructors
+
59  GLM_FUNC_DECL tmat4x3();
+
60  template <precision Q>
+
61  GLM_FUNC_DECL tmat4x3(tmat4x3<T, Q> const & m);
+
62 
+
63  GLM_FUNC_DECL explicit tmat4x3(ctor);
+
64  GLM_FUNC_DECL explicit tmat4x3(T const & x);
+
65  GLM_FUNC_DECL tmat4x3(
+
66  T const & x0, T const & y0, T const & z0,
+
67  T const & x1, T const & y1, T const & z1,
+
68  T const & x2, T const & y2, T const & z2,
+
69  T const & x3, T const & y3, T const & z3);
+
70  GLM_FUNC_DECL tmat4x3(
+
71  col_type const & v0,
+
72  col_type const & v1,
+
73  col_type const & v2,
+
74  col_type const & v3);
+
75 
+
77  // Conversions
+
78 
+
79  template <
+
80  typename X1, typename Y1, typename Z1,
+
81  typename X2, typename Y2, typename Z2,
+
82  typename X3, typename Y3, typename Z3,
+
83  typename X4, typename Y4, typename Z4>
+
84  GLM_FUNC_DECL tmat4x3(
+
85  X1 const & x1, Y1 const & y1, Z1 const & z1,
+
86  X2 const & x2, Y2 const & y2, Z2 const & z2,
+
87  X3 const & x3, Y3 const & y3, Z3 const & z3,
+
88  X4 const & x4, Y4 const & y4, Z4 const & z4);
+
89 
+
90  template <typename V1, typename V2, typename V3, typename V4>
+
91  GLM_FUNC_DECL tmat4x3(
+
92  tvec3<V1, P> const & v1,
+
93  tvec3<V2, P> const & v2,
+
94  tvec3<V3, P> const & v3,
+
95  tvec3<V4, P> const & v4);
+
96 
+
98  // Matrix conversions
+
99 
+
100 # ifdef GLM_FORCE_EXPLICIT_CTOR
+
101  template <typename U, precision Q>
+
102  GLM_FUNC_DECL explicit tmat4x3(tmat4x3<U, Q> const & m);
+
103 # else
+
104  template <typename U, precision Q>
+
105  GLM_FUNC_DECL tmat4x3(tmat4x3<U, Q> const & m);
+
106 # endif
+
107 
+
108  GLM_FUNC_DECL explicit tmat4x3(tmat2x2<T, P> const & x);
+
109  GLM_FUNC_DECL explicit tmat4x3(tmat3x3<T, P> const & x);
+
110  GLM_FUNC_DECL explicit tmat4x3(tmat4x4<T, P> const & x);
+
111  GLM_FUNC_DECL explicit tmat4x3(tmat2x3<T, P> const & x);
+
112  GLM_FUNC_DECL explicit tmat4x3(tmat3x2<T, P> const & x);
+
113  GLM_FUNC_DECL explicit tmat4x3(tmat2x4<T, P> const & x);
+
114  GLM_FUNC_DECL explicit tmat4x3(tmat4x2<T, P> const & x);
+
115  GLM_FUNC_DECL explicit tmat4x3(tmat3x4<T, P> const & x);
+
116 
+
118  // Accesses
119 
-
120  // Accesses
-
121  GLM_FUNC_DECL col_type & operator[](length_t i);
-
122  GLM_FUNC_DECL col_type const & operator[](length_t i) const;
+
120 # ifdef GLM_FORCE_SIZE_FUNC
+
121  typedef size_t size_type;
+
122  GLM_FUNC_DECL GLM_CONSTEXPR size_t size() const;
123 
-
124  // Unary updatable operators
-
125  GLM_FUNC_DECL tmat3x3<T, P>& operator= (tmat3x3<T, P> const & m);
-
126  template <typename U>
-
127  GLM_FUNC_DECL tmat3x3<T, P>& operator= (tmat3x3<U, P> const & m);
-
128  template <typename U>
-
129  GLM_FUNC_DECL tmat3x3<T, P>& operator+= (U s);
-
130  template <typename U>
-
131  GLM_FUNC_DECL tmat3x3<T, P>& operator+= (tmat3x3<U, P> const & m);
-
132  template <typename U>
-
133  GLM_FUNC_DECL tmat3x3<T, P>& operator-= (U s);
-
134  template <typename U>
-
135  GLM_FUNC_DECL tmat3x3<T, P>& operator-= (tmat3x3<U, P> const & m);
-
136  template <typename U>
-
137  GLM_FUNC_DECL tmat3x3<T, P>& operator*= (U s);
-
138  template <typename U>
-
139  GLM_FUNC_DECL tmat3x3<T, P>& operator*= (tmat3x3<U, P> const & m);
-
140  template <typename U>
-
141  GLM_FUNC_DECL tmat3x3<T, P>& operator/= (U s);
-
142  template <typename U>
-
143  GLM_FUNC_DECL tmat3x3<T, P>& operator/= (tmat3x3<U, P> const & m);
-
144 
-
146  // Increment and decrement operators
-
147 
-
148  GLM_FUNC_DECL tmat3x3<T, P> & operator++ ();
-
149  GLM_FUNC_DECL tmat3x3<T, P> & operator-- ();
-
150  GLM_FUNC_DECL tmat3x3<T, P> operator++(int);
-
151  GLM_FUNC_DECL tmat3x3<T, P> operator--(int);
-
152  };
-
153 
-
154  template <typename T, precision P>
-
155  GLM_FUNC_DECL tmat3x3<T, P> compute_inverse_mat3(tmat3x3<T, P> const & m);
-
156 
-
157  // Binary operators
-
158  template <typename T, precision P>
-
159  GLM_FUNC_DECL tmat3x3<T, P> operator+ (
-
160  tmat3x3<T, P> const & m,
-
161  T const & s);
-
162 
-
163  template <typename T, precision P>
-
164  GLM_FUNC_DECL tmat3x3<T, P> operator+ (
-
165  T const & s,
-
166  tmat3x3<T, P> const & m);
+
124  GLM_FUNC_DECL col_type & operator[](size_type i);
+
125  GLM_FUNC_DECL col_type const & operator[](size_type i) const;
+
126 # else
+
127  typedef length_t length_type;
+
128  GLM_FUNC_DECL GLM_CONSTEXPR length_type length() const;
+
129 
+
130  GLM_FUNC_DECL col_type & operator[](length_type i);
+
131  GLM_FUNC_DECL col_type const & operator[](length_type i) const;
+
132 # endif//GLM_FORCE_SIZE_FUNC
+
133 
+
135  // Unary arithmetic operators
+
136 
+
137  template <typename U>
+
138  GLM_FUNC_DECL tmat4x3<T, P> & operator=(tmat4x3<U, P> const & m);
+
139  template <typename U>
+
140  GLM_FUNC_DECL tmat4x3<T, P> & operator+=(U s);
+
141  template <typename U>
+
142  GLM_FUNC_DECL tmat4x3<T, P> & operator+=(tmat4x3<U, P> const & m);
+
143  template <typename U>
+
144  GLM_FUNC_DECL tmat4x3<T, P> & operator-=(U s);
+
145  template <typename U>
+
146  GLM_FUNC_DECL tmat4x3<T, P> & operator-=(tmat4x3<U, P> const & m);
+
147  template <typename U>
+
148  GLM_FUNC_DECL tmat4x3<T, P> & operator*=(U s);
+
149  template <typename U>
+
150  GLM_FUNC_DECL tmat4x3<T, P> & operator/=(U s);
+
151 
+
153  // Increment and decrement operators
+
154 
+
155  GLM_FUNC_DECL tmat4x3<T, P> & operator++();
+
156  GLM_FUNC_DECL tmat4x3<T, P> & operator--();
+
157  GLM_FUNC_DECL tmat4x3<T, P> operator++(int);
+
158  GLM_FUNC_DECL tmat4x3<T, P> operator--(int);
+
159  };
+
160 
+
161  // Binary operators
+
162  template <typename T, precision P>
+
163  GLM_FUNC_DECL tmat4x3<T, P> operator+(tmat4x3<T, P> const & m, T const & s);
+
164 
+
165  template <typename T, precision P>
+
166  GLM_FUNC_DECL tmat4x3<T, P> operator+(tmat4x3<T, P> const & m1, tmat4x3<T, P> const & m2);
167 
168  template <typename T, precision P>
-
169  GLM_FUNC_DECL tmat3x3<T, P> operator+ (
-
170  tmat3x3<T, P> const & m1,
-
171  tmat3x3<T, P> const & m2);
-
172 
-
173  template <typename T, precision P>
-
174  GLM_FUNC_DECL tmat3x3<T, P> operator- (
-
175  tmat3x3<T, P> const & m,
-
176  T const & s);
-
177 
-
178  template <typename T, precision P>
-
179  GLM_FUNC_DECL tmat3x3<T, P> operator- (
-
180  T const & s,
-
181  tmat3x3<T, P> const & m);
+
169  GLM_FUNC_DECL tmat4x3<T, P> operator-(tmat4x3<T, P> const & m, T const & s);
+
170 
+
171  template <typename T, precision P>
+
172  GLM_FUNC_DECL tmat4x3<T, P> operator-(tmat4x3<T, P> const & m1, tmat4x3<T, P> const & m2);
+
173 
+
174  template <typename T, precision P>
+
175  GLM_FUNC_DECL tmat4x3<T, P> operator*(tmat4x3<T, P> const & m, T const & s);
+
176 
+
177  template <typename T, precision P>
+
178  GLM_FUNC_DECL tmat4x3<T, P> operator*(T const & s, tmat4x3<T, P> const & m);
+
179 
+
180  template <typename T, precision P>
+
181  GLM_FUNC_DECL typename tmat4x3<T, P>::col_type operator*(tmat4x3<T, P> const & m, typename tmat4x3<T, P>::row_type const & v);
182 
183  template <typename T, precision P>
-
184  GLM_FUNC_DECL tmat3x3<T, P> operator- (
-
185  tmat3x3<T, P> const & m1,
-
186  tmat3x3<T, P> const & m2);
-
187 
-
188  template <typename T, precision P>
-
189  GLM_FUNC_DECL tmat3x3<T, P> operator* (
-
190  tmat3x3<T, P> const & m,
-
191  T const & s);
-
192 
-
193  template <typename T, precision P>
-
194  GLM_FUNC_DECL tmat3x3<T, P> operator* (
-
195  T const & s,
-
196  tmat3x3<T, P> const & m);
+
184  GLM_FUNC_DECL typename tmat4x3<T, P>::row_type operator*(typename tmat4x3<T, P>::col_type const & v, tmat4x3<T, P> const & m);
+
185 
+
186  template <typename T, precision P>
+
187  GLM_FUNC_DECL tmat2x3<T, P> operator*(tmat4x3<T, P> const & m1, tmat2x4<T, P> const & m2);
+
188 
+
189  template <typename T, precision P>
+
190  GLM_FUNC_DECL tmat3x3<T, P> operator*(tmat4x3<T, P> const & m1, tmat3x4<T, P> const & m2);
+
191 
+
192  template <typename T, precision P>
+
193  GLM_FUNC_DECL tmat4x3<T, P> operator*(tmat4x3<T, P> const & m1, tmat4x4<T, P> const & m2);
+
194 
+
195  template <typename T, precision P>
+
196  GLM_FUNC_DECL tmat4x3<T, P> operator/(tmat4x3<T, P> const & m, T const & s);
197 
198  template <typename T, precision P>
-
199  GLM_FUNC_DECL typename tmat3x3<T, P>::col_type operator* (
-
200  tmat3x3<T, P> const & m,
-
201  typename tmat3x3<T, P>::row_type const & v);
-
202 
-
203  template <typename T, precision P>
-
204  GLM_FUNC_DECL typename tmat3x3<T, P>::row_type operator* (
-
205  typename tmat3x3<T, P>::col_type const & v,
-
206  tmat3x3<T, P> const & m);
-
207 
-
208  template <typename T, precision P>
-
209  GLM_FUNC_DECL tmat3x3<T, P> operator* (
-
210  tmat3x3<T, P> const & m1,
-
211  tmat3x3<T, P> const & m2);
-
212 
-
213  template <typename T, precision P>
-
214  GLM_FUNC_DECL tmat2x3<T, P> operator* (
-
215  tmat3x3<T, P> const & m1,
-
216  tmat2x3<T, P> const & m2);
-
217 
-
218  template <typename T, precision P>
-
219  GLM_FUNC_DECL tmat4x3<T, P> operator* (
-
220  tmat3x3<T, P> const & m1,
-
221  tmat4x3<T, P> const & m2);
-
222 
-
223  template <typename T, precision P>
-
224  GLM_FUNC_DECL tmat3x3<T, P> operator/ (
-
225  tmat3x3<T, P> const & m,
-
226  T const & s);
-
227 
-
228  template <typename T, precision P>
-
229  GLM_FUNC_DECL tmat3x3<T, P> operator/ (
-
230  T const & s,
-
231  tmat3x3<T, P> const & m);
-
232 
-
233  template <typename T, precision P>
-
234  GLM_FUNC_DECL typename tmat3x3<T, P>::col_type operator/ (
-
235  tmat3x3<T, P> const & m,
-
236  typename tmat3x3<T, P>::row_type const & v);
-
237 
-
238  template <typename T, precision P>
-
239  GLM_FUNC_DECL typename tmat3x3<T, P>::row_type operator/ (
-
240  typename tmat3x3<T, P>::col_type const & v,
-
241  tmat3x3<T, P> const & m);
-
242 
-
243  template <typename T, precision P>
-
244  GLM_FUNC_DECL tmat3x3<T, P> operator/ (
-
245  tmat3x3<T, P> const & m1,
-
246  tmat3x3<T, P> const & m2);
-
247 
-
248  // Unary constant operators
-
249  template <typename T, precision P>
-
250  GLM_FUNC_DECL tmat3x3<T, P> const operator-(
-
251  tmat3x3<T, P> const & m);
-
252 
-
253 }//namespace detail
-
254 }//namespace glm
-
255 
-
256 #ifndef GLM_EXTERNAL_TEMPLATE
-
257 #include "type_mat3x3.inl"
-
258 #endif
-
259 
-
260 #endif //glm_core_type_mat3x3
-
GLM_FUNC_DECL genType::value_type length(genType const &x)
Returns the length of x, i.e., sqrt(x * x).
+
199  GLM_FUNC_DECL tmat4x3<T, P> operator/(T const & s, tmat4x3<T, P> const & m);
+
200 
+
201  // Unary constant operators
+
202  template <typename T, precision P>
+
203  GLM_FUNC_DECL tmat4x3<T, P> const operator-(tmat4x3<T, P> const & m);
+
204 }//namespace glm
+
205 
+
206 #ifndef GLM_EXTERNAL_TEMPLATE
+
207 #include "type_mat4x3.inl"
+
208 #endif //GLM_EXTERNAL_TEMPLATE
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
GLM_FUNC_DECL T length(vecType< T, P > const &x)
Returns the length of x, i.e., sqrt(x * x).
+
Definition: _noise.hpp:39
+
OpenGL Mathematics (glm.g-truc.net)
diff --git a/doc/api/a00128.html b/doc/api/a00128.html new file mode 100644 index 00000000..43ba0365 --- /dev/null +++ b/doc/api/a00128.html @@ -0,0 +1,73 @@ + + + + + + +0.9.6: type_mat4x4.hpp File Reference + + + + + + +
+
+ + + + + + + +
+
0.9.6 +
+
+
+ + + + + +
+
+
+
type_mat4x4.hpp File Reference
+
+
+ +

Go to the source code of this file.

+

Detailed Description

+

OpenGL Mathematics (glm.g-truc.net)

+

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+

GLM Core

+
Date
2005-01-27 / 2011-06-15
+
Author
Christophe Riccio
+ +

Definition in file type_mat4x4.hpp.

+
+ + + + diff --git a/doc/api/a00128_source.html b/doc/api/a00128_source.html index 9fa191d4..ed7b02a1 100644 --- a/doc/api/a00128_source.html +++ b/doc/api/a00128_source.html @@ -3,8 +3,8 @@ - -GLM: type_mat3x4.hpp Source File + +0.9.6: type_mat4x4.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,215 +41,218 @@
-
type_mat3x4.hpp
+
type_mat4x4.hpp
-
1 
-
29 #ifndef glm_core_type_mat3x4
-
30 #define glm_core_type_mat3x4
-
31 
-
32 #include "../fwd.hpp"
-
33 #include "type_vec3.hpp"
-
34 #include "type_vec4.hpp"
-
35 #include "type_mat.hpp"
-
36 #include <limits>
-
37 
-
38 namespace glm{
-
39 namespace detail
-
40 {
-
41  template <typename T, precision P>
-
42  struct tmat3x4
-
43  {
-
44  enum ctor{_null};
-
45  typedef T value_type;
-
46  typedef std::size_t size_type;
-
47  typedef tvec4<T, P> col_type;
-
48  typedef tvec3<T, P> row_type;
-
49  typedef tmat3x4<T, P> type;
-
50  typedef tmat4x3<T, P> transpose_type;
+Go to the documentation of this file.
1 
+
33 #pragma once
+
34 
+
35 #include "../fwd.hpp"
+
36 #include "type_vec4.hpp"
+
37 #include "type_mat.hpp"
+
38 #include <limits>
+
39 #include <cstddef>
+
40 
+
41 namespace glm
+
42 {
+
43  template <typename T, precision P = defaultp>
+
44  struct tmat4x4
+
45  {
+
46  typedef tvec4<T, P> col_type;
+
47  typedef tvec4<T, P> row_type;
+
48  typedef tmat4x4<T, P> type;
+
49  typedef tmat4x4<T, P> transpose_type;
+
50  typedef T value_type;
51 
-
52  GLM_FUNC_DECL GLM_CONSTEXPR length_t length() const;
-
53 
-
54  private:
-
55  // Data
-
56  col_type value[3];
-
57 
-
58  public:
-
59  // Constructors
-
60  GLM_FUNC_DECL tmat3x4();
-
61  GLM_FUNC_DECL tmat3x4(tmat3x4<T, P> const & m);
-
62  template <precision Q>
-
63  GLM_FUNC_DECL tmat3x4(tmat3x4<T, Q> const & m);
-
64 
-
65  GLM_FUNC_DECL explicit tmat3x4(
-
66  ctor Null);
-
67  GLM_FUNC_DECL explicit tmat3x4(
-
68  T const & s);
-
69  GLM_FUNC_DECL explicit tmat3x4(
-
70  T const & x0, T const & y0, T const & z0, T const & w0,
-
71  T const & x1, T const & y1, T const & z1, T const & w1,
-
72  T const & x2, T const & y2, T const & z2, T const & w2);
-
73  GLM_FUNC_DECL explicit tmat3x4(
-
74  col_type const & v0,
-
75  col_type const & v1,
-
76  col_type const & v2);
-
77 
-
78 #if(GLM_HAS_INITIALIZER_LISTS)
-
79  template <typename U>
-
80  GLM_FUNC_DECL tmat3x4(std::initializer_list<U> m);
-
81 
-
82  GLM_FUNC_DECL tmat3x4(std::initializer_list<tvec4<T, P> > m);
-
83 #endif//GLM_HAS_INITIALIZER_LISTS
-
84 
-
86  // Conversions
-
87  template<
-
88  typename X1, typename Y1, typename Z1, typename W1,
-
89  typename X2, typename Y2, typename Z2, typename W2,
-
90  typename X3, typename Y3, typename Z3, typename W3>
-
91  GLM_FUNC_DECL explicit tmat3x4(
-
92  X1 const & x1, Y1 const & y1, Z1 const & z1, W1 const & w1,
-
93  X2 const & x2, Y2 const & y2, Z2 const & z2, W2 const & w2,
-
94  X3 const & x3, Y3 const & y3, Z3 const & z3, W3 const & w3);
-
95 
-
96  template <typename V1, typename V2, typename V3>
-
97  GLM_FUNC_DECL explicit tmat3x4(
-
98  tvec4<V1, P> const & v1,
-
99  tvec4<V2, P> const & v2,
-
100  tvec4<V3, P> const & v3);
+
52  template <typename U, precision Q>
+
53  friend tvec4<U, Q> operator/(tmat4x4<U, Q> const & m, tvec4<U, Q> const & v);
+
54  template <typename U, precision Q>
+
55  friend tvec4<U, Q> operator/(tvec4<U, Q> const & v, tmat4x4<U, Q> const & m);
+
56 
+
57  private:
+
59  col_type value[4];
+
61 
+
62  public:
+
63  // Constructors
+
64  GLM_FUNC_DECL tmat4x4();
+
65  template <precision Q>
+
66  GLM_FUNC_DECL tmat4x4(tmat4x4<T, Q> const & m);
+
67 
+
68  GLM_FUNC_DECL explicit tmat4x4(ctor);
+
69  GLM_FUNC_DECL explicit tmat4x4(T const & x);
+
70  GLM_FUNC_DECL tmat4x4(
+
71  T const & x0, T const & y0, T const & z0, T const & w0,
+
72  T const & x1, T const & y1, T const & z1, T const & w1,
+
73  T const & x2, T const & y2, T const & z2, T const & w2,
+
74  T const & x3, T const & y3, T const & z3, T const & w3);
+
75  GLM_FUNC_DECL tmat4x4(
+
76  col_type const & v0,
+
77  col_type const & v1,
+
78  col_type const & v2,
+
79  col_type const & v3);
+
80 
+
82  // Conversions
+
83 
+
84  template <
+
85  typename X1, typename Y1, typename Z1, typename W1,
+
86  typename X2, typename Y2, typename Z2, typename W2,
+
87  typename X3, typename Y3, typename Z3, typename W3,
+
88  typename X4, typename Y4, typename Z4, typename W4>
+
89  GLM_FUNC_DECL tmat4x4(
+
90  X1 const & x1, Y1 const & y1, Z1 const & z1, W1 const & w1,
+
91  X2 const & x2, Y2 const & y2, Z2 const & z2, W2 const & w2,
+
92  X3 const & x3, Y3 const & y3, Z3 const & z3, W3 const & w3,
+
93  X4 const & x4, Y4 const & y4, Z4 const & z4, W4 const & w4);
+
94 
+
95  template <typename V1, typename V2, typename V3, typename V4>
+
96  GLM_FUNC_DECL tmat4x4(
+
97  tvec4<V1, P> const & v1,
+
98  tvec4<V2, P> const & v2,
+
99  tvec4<V3, P> const & v3,
+
100  tvec4<V4, P> const & v4);
101 
-
102  // Matrix conversion
-
103  template <typename U, precision Q>
-
104  GLM_FUNC_DECL explicit tmat3x4(tmat3x4<U, Q> const & m);
-
105 
-
106  GLM_FUNC_DECL explicit tmat3x4(tmat2x2<T, P> const & x);
-
107  GLM_FUNC_DECL explicit tmat3x4(tmat3x3<T, P> const & x);
-
108  GLM_FUNC_DECL explicit tmat3x4(tmat4x4<T, P> const & x);
-
109  GLM_FUNC_DECL explicit tmat3x4(tmat2x3<T, P> const & x);
-
110  GLM_FUNC_DECL explicit tmat3x4(tmat3x2<T, P> const & x);
-
111  GLM_FUNC_DECL explicit tmat3x4(tmat2x4<T, P> const & x);
-
112  GLM_FUNC_DECL explicit tmat3x4(tmat4x2<T, P> const & x);
-
113  GLM_FUNC_DECL explicit tmat3x4(tmat4x3<T, P> const & x);
-
114 
-
115  // Accesses
-
116  GLM_FUNC_DECL col_type & operator[](length_t i);
-
117  GLM_FUNC_DECL col_type const & operator[](length_t i) const;
-
118 
-
119  // Unary updatable operators
-
120  GLM_FUNC_DECL tmat3x4<T, P> & operator= (tmat3x4<T, P> const & m);
-
121  template <typename U>
-
122  GLM_FUNC_DECL tmat3x4<T, P> & operator= (tmat3x4<U, P> const & m);
-
123  template <typename U>
-
124  GLM_FUNC_DECL tmat3x4<T, P> & operator+= (U s);
-
125  template <typename U>
-
126  GLM_FUNC_DECL tmat3x4<T, P> & operator+= (tmat3x4<U, P> const & m);
-
127  template <typename U>
-
128  GLM_FUNC_DECL tmat3x4<T, P> & operator-= (U s);
-
129  template <typename U>
-
130  GLM_FUNC_DECL tmat3x4<T, P> & operator-= (tmat3x4<U, P> const & m);
-
131  template <typename U>
-
132  GLM_FUNC_DECL tmat3x4<T, P> & operator*= (U s);
-
133  template <typename U>
-
134  GLM_FUNC_DECL tmat3x4<T, P> & operator/= (U s);
-
135 
-
137  // Increment and decrement operators
+
103  // Matrix conversions
+
104 
+
105 # ifdef GLM_FORCE_EXPLICIT_CTOR
+
106  template <typename U, precision Q>
+
107  GLM_FUNC_DECL explicit tmat4x4(tmat4x4<U, Q> const & m);
+
108 # else
+
109  template <typename U, precision Q>
+
110  GLM_FUNC_DECL tmat4x4(tmat4x4<U, Q> const & m);
+
111 # endif
+
112 
+
113  GLM_FUNC_DECL explicit tmat4x4(tmat2x2<T, P> const & x);
+
114  GLM_FUNC_DECL explicit tmat4x4(tmat3x3<T, P> const & x);
+
115  GLM_FUNC_DECL explicit tmat4x4(tmat2x3<T, P> const & x);
+
116  GLM_FUNC_DECL explicit tmat4x4(tmat3x2<T, P> const & x);
+
117  GLM_FUNC_DECL explicit tmat4x4(tmat2x4<T, P> const & x);
+
118  GLM_FUNC_DECL explicit tmat4x4(tmat4x2<T, P> const & x);
+
119  GLM_FUNC_DECL explicit tmat4x4(tmat3x4<T, P> const & x);
+
120  GLM_FUNC_DECL explicit tmat4x4(tmat4x3<T, P> const & x);
+
121 
+
123  // Accesses
+
124 
+
125 # ifdef GLM_FORCE_SIZE_FUNC
+
126  typedef size_t size_type;
+
127  GLM_FUNC_DECL GLM_CONSTEXPR size_t size() const;
+
128 
+
129  GLM_FUNC_DECL col_type & operator[](size_type i);
+
130  GLM_FUNC_DECL col_type const & operator[](size_type i) const;
+
131 # else
+
132  typedef length_t length_type;
+
133  GLM_FUNC_DECL GLM_CONSTEXPR length_type length() const;
+
134 
+
135  GLM_FUNC_DECL col_type & operator[](length_type i);
+
136  GLM_FUNC_DECL col_type const & operator[](length_type i) const;
+
137 # endif//GLM_FORCE_SIZE_FUNC
138 
-
139  GLM_FUNC_DECL tmat3x4<T, P> & operator++ ();
-
140  GLM_FUNC_DECL tmat3x4<T, P> & operator-- ();
-
141  GLM_FUNC_DECL tmat3x4<T, P> operator++(int);
-
142  GLM_FUNC_DECL tmat3x4<T, P> operator--(int);
-
143  };
-
144 
-
145  // Binary operators
-
146  template <typename T, precision P>
-
147  GLM_FUNC_DECL tmat3x4<T, P> operator+ (
-
148  tmat3x4<T, P> const & m,
-
149  T const & s);
-
150 
-
151  template <typename T, precision P>
-
152  GLM_FUNC_DECL tmat3x4<T, P> operator+ (
-
153  tmat3x4<T, P> const & m1,
-
154  tmat3x4<T, P> const & m2);
-
155 
-
156  template <typename T, precision P>
-
157  GLM_FUNC_DECL tmat3x4<T, P> operator- (
-
158  tmat3x4<T, P> const & m,
-
159  T const & s);
+
140  // Unary arithmetic operators
+
141 
+
142  template <typename U>
+
143  GLM_FUNC_DECL tmat4x4<T, P> & operator=(tmat4x4<U, P> const & m);
+
144  template <typename U>
+
145  GLM_FUNC_DECL tmat4x4<T, P> & operator+=(U s);
+
146  template <typename U>
+
147  GLM_FUNC_DECL tmat4x4<T, P> & operator+=(tmat4x4<U, P> const & m);
+
148  template <typename U>
+
149  GLM_FUNC_DECL tmat4x4<T, P> & operator-=(U s);
+
150  template <typename U>
+
151  GLM_FUNC_DECL tmat4x4<T, P> & operator-=(tmat4x4<U, P> const & m);
+
152  template <typename U>
+
153  GLM_FUNC_DECL tmat4x4<T, P> & operator*=(U s);
+
154  template <typename U>
+
155  GLM_FUNC_DECL tmat4x4<T, P> & operator*=(tmat4x4<U, P> const & m);
+
156  template <typename U>
+
157  GLM_FUNC_DECL tmat4x4<T, P> & operator/=(U s);
+
158  template <typename U>
+
159  GLM_FUNC_DECL tmat4x4<T, P> & operator/=(tmat4x4<U, P> const & m);
160 
-
161  template <typename T, precision P>
-
162  GLM_FUNC_DECL tmat3x4<T, P> operator- (
-
163  tmat3x4<T, P> const & m1,
-
164  tmat3x4<T, P> const & m2);
-
165 
-
166  template <typename T, precision P>
-
167  GLM_FUNC_DECL tmat3x4<T, P> operator* (
-
168  tmat3x4<T, P> const & m,
-
169  T const & s);
-
170 
+
162  // Increment and decrement operators
+
163 
+
164  GLM_FUNC_DECL tmat4x4<T, P> & operator++();
+
165  GLM_FUNC_DECL tmat4x4<T, P> & operator--();
+
166  GLM_FUNC_DECL tmat4x4<T, P> operator++(int);
+
167  GLM_FUNC_DECL tmat4x4<T, P> operator--(int);
+
168  };
+
169 
+
170  // Binary operators
171  template <typename T, precision P>
-
172  GLM_FUNC_DECL tmat3x4<T, P> operator* (
-
173  T const & s,
-
174  tmat3x4<T, P> const & m);
-
175 
-
176  template <typename T, precision P>
-
177  GLM_FUNC_DECL typename tmat3x4<T, P>::col_type operator* (
-
178  tmat3x4<T, P> const & m,
-
179  typename tmat3x4<T, P>::row_type const & v);
-
180 
-
181  template <typename T, precision P>
-
182  GLM_FUNC_DECL typename tmat3x4<T, P>::row_type operator* (
-
183  typename tmat3x4<T, P>::col_type const & v,
-
184  tmat3x4<T, P> const & m);
+
172  GLM_FUNC_DECL tmat4x4<T, P> operator+(tmat4x4<T, P> const & m, T const & s);
+
173 
+
174  template <typename T, precision P>
+
175  GLM_FUNC_DECL tmat4x4<T, P> operator+(T const & s, tmat4x4<T, P> const & m);
+
176 
+
177  template <typename T, precision P>
+
178  GLM_FUNC_DECL tmat4x4<T, P> operator+(tmat4x4<T, P> const & m1, tmat4x4<T, P> const & m2);
+
179 
+
180  template <typename T, precision P>
+
181  GLM_FUNC_DECL tmat4x4<T, P> operator-(tmat4x4<T, P> const & m, T const & s);
+
182 
+
183  template <typename T, precision P>
+
184  GLM_FUNC_DECL tmat4x4<T, P> operator-(T const & s, tmat4x4<T, P> const & m);
185 
186  template <typename T, precision P>
-
187  GLM_FUNC_DECL tmat4x4<T, P> operator* (
-
188  tmat3x4<T, P> const & m1,
-
189  tmat4x3<T, P> const & m2);
-
190 
-
191  template <typename T, precision P>
-
192  GLM_FUNC_DECL tmat2x4<T, P> operator* (
-
193  tmat3x4<T, P> const & m1,
-
194  tmat2x3<T, P> const & m2);
-
195 
-
196  template <typename T, precision P>
-
197  GLM_FUNC_DECL tmat3x4<T, P> operator* (
-
198  tmat3x4<T, P> const & m1,
-
199  tmat3x3<T, P> const & m2);
+
187  GLM_FUNC_DECL tmat4x4<T, P> operator-(tmat4x4<T, P> const & m1, tmat4x4<T, P> const & m2);
+
188 
+
189  template <typename T, precision P>
+
190  GLM_FUNC_DECL tmat4x4<T, P> operator*(tmat4x4<T, P> const & m, T const & s);
+
191 
+
192  template <typename T, precision P>
+
193  GLM_FUNC_DECL tmat4x4<T, P> operator*(T const & s, tmat4x4<T, P> const & m);
+
194 
+
195  template <typename T, precision P>
+
196  GLM_FUNC_DECL typename tmat4x4<T, P>::col_type operator*(tmat4x4<T, P> const & m, typename tmat4x4<T, P>::row_type const & v);
+
197 
+
198  template <typename T, precision P>
+
199  GLM_FUNC_DECL typename tmat4x4<T, P>::row_type operator*(typename tmat4x4<T, P>::col_type const & v, tmat4x4<T, P> const & m);
200 
201  template <typename T, precision P>
-
202  GLM_FUNC_DECL tmat3x4<T, P> operator/ (
-
203  tmat3x4<T, P> const & m,
-
204  T const & s);
-
205 
-
206  template <typename T, precision P>
-
207  GLM_FUNC_DECL tmat3x4<T, P> operator/ (
-
208  T const & s,
-
209  tmat3x4<T, P> const & m);
-
210 
-
211  // Unary constant operators
-
212  template <typename T, precision P>
-
213  GLM_FUNC_DECL tmat3x4<T, P> const operator-(
-
214  tmat3x4<T, P> const & m);
+
202  GLM_FUNC_DECL tmat2x4<T, P> operator*(tmat4x4<T, P> const & m1, tmat2x4<T, P> const & m2);
+
203 
+
204  template <typename T, precision P>
+
205  GLM_FUNC_DECL tmat3x4<T, P> operator*(tmat4x4<T, P> const & m1, tmat3x4<T, P> const & m2);
+
206 
+
207  template <typename T, precision P>
+
208  GLM_FUNC_DECL tmat4x4<T, P> operator*(tmat4x4<T, P> const & m1, tmat4x4<T, P> const & m2);
+
209 
+
210  template <typename T, precision P>
+
211  GLM_FUNC_DECL tmat4x4<T, P> operator/(tmat4x4<T, P> const & m, T const & s);
+
212 
+
213  template <typename T, precision P>
+
214  GLM_FUNC_DECL tmat4x4<T, P> operator/(T const & s, tmat4x4<T, P> const & m);
215 
-
216 }//namespace detail
-
217 }//namespace glm
+
216  template <typename T, precision P>
+
217  GLM_FUNC_DECL typename tmat4x4<T, P>::col_type operator/(tmat4x4<T, P> const & m, typename tmat4x4<T, P>::row_type const & v);
218 
-
219 #ifndef GLM_EXTERNAL_TEMPLATE
-
220 #include "type_mat3x4.inl"
-
221 #endif
-
222 
-
223 #endif //glm_core_type_mat3x4
-
GLM_FUNC_DECL genType::value_type length(genType const &x)
Returns the length of x, i.e., sqrt(x * x).
+
219  template <typename T, precision P>
+
220  GLM_FUNC_DECL typename tmat4x4<T, P>::row_type operator/(typename tmat4x4<T, P>::col_type & v, tmat4x4<T, P> const & m);
+
221 
+
222  template <typename T, precision P>
+
223  GLM_FUNC_DECL tmat4x4<T, P> operator/(tmat4x4<T, P> const & m1, tmat4x4<T, P> const & m2);
+
224 
+
225  // Unary constant operators
+
226  template <typename T, precision P>
+
227  GLM_FUNC_DECL tmat4x4<T, P> const operator-(tmat4x4<T, P> const & m);
+
228 }//namespace glm
+
229 
+
230 #ifndef GLM_EXTERNAL_TEMPLATE
+
231 #include "type_mat4x4.inl"
+
232 #endif//GLM_EXTERNAL_TEMPLATE
+
OpenGL Mathematics (glm.g-truc.net)
+
GLM_FUNC_DECL T length(vecType< T, P > const &x)
Returns the length of x, i.e., sqrt(x * x).
+
Definition: _noise.hpp:39
+
OpenGL Mathematics (glm.g-truc.net)
diff --git a/doc/api/a00129.html b/doc/api/a00129.html new file mode 100644 index 00000000..6278de5d --- /dev/null +++ b/doc/api/a00129.html @@ -0,0 +1,78 @@ + + + + + + +0.9.6: type_precision.hpp File Reference + + + + + + +
+
+ + + + + + + +
+
0.9.6 +
+
+
+ + + + + +
+
+
+
type_precision.hpp File Reference
+
+
+ +

Go to the source code of this file.

+

Detailed Description

+

OpenGL Mathematics (glm.g-truc.net)

+

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+

GLM_GTC_type_precision

+
Date
2009-06-04 / 2011-12-07
+
Author
Christophe Riccio
+
See also
GLM Core (dependence)
+
+gtc_half_float (dependence)
+
+GLM_GTC_quaternion (dependence)
+ +

Definition in file type_precision.hpp.

+
+ + + + diff --git a/doc/api/a00129_source.html b/doc/api/a00129_source.html index 7e8b424b..b920c2d6 100644 --- a/doc/api/a00129_source.html +++ b/doc/api/a00129_source.html @@ -3,8 +3,8 @@ - -GLM: type_mat4x2.hpp Source File + +0.9.6: type_precision.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,221 +41,652 @@
-
type_mat4x2.hpp
+
type_precision.hpp
-
1 
-
29 #ifndef glm_core_type_mat4x2
-
30 #define glm_core_type_mat4x2
-
31 
-
32 #include "../fwd.hpp"
-
33 #include "type_vec2.hpp"
-
34 #include "type_vec4.hpp"
-
35 #include "type_mat.hpp"
-
36 #include <limits>
-
37 
-
38 namespace glm{
-
39 namespace detail
-
40 {
-
41  template <typename T, precision P>
-
42  struct tmat4x2
-
43  {
-
44  enum ctor{_null};
-
45  typedef T value_type;
-
46  typedef std::size_t size_type;
-
47  typedef tvec2<T, P> col_type;
-
48  typedef tvec4<T, P> row_type;
-
49  typedef tmat4x2<T, P> type;
-
50  typedef tmat2x4<T, P> transpose_type;
-
51 
-
52  GLM_FUNC_DECL GLM_CONSTEXPR length_t length() const;
-
53 
-
54  private:
-
55  // Data
-
56  col_type value[4];
-
57 
-
58  public:
-
59  // Constructors
-
60  GLM_FUNC_DECL tmat4x2();
-
61  GLM_FUNC_DECL tmat4x2(tmat4x2<T, P> const & m);
-
62  template <precision Q>
-
63  GLM_FUNC_DECL tmat4x2(tmat4x2<T, Q> const & m);
+Go to the documentation of this file.
1 
+
47 #pragma once
+
48 
+
49 // Dependency:
+
50 #include "../gtc/quaternion.hpp"
+
51 #include "../gtc/vec1.hpp"
+
52 #include "../vec2.hpp"
+
53 #include "../vec3.hpp"
+
54 #include "../vec4.hpp"
+
55 #include "../mat2x2.hpp"
+
56 #include "../mat2x3.hpp"
+
57 #include "../mat2x4.hpp"
+
58 #include "../mat3x2.hpp"
+
59 #include "../mat3x3.hpp"
+
60 #include "../mat3x4.hpp"
+
61 #include "../mat4x2.hpp"
+
62 #include "../mat4x3.hpp"
+
63 #include "../mat4x4.hpp"
64 
-
65  GLM_FUNC_DECL explicit tmat4x2(
-
66  ctor Null);
-
67  GLM_FUNC_DECL explicit tmat4x2(
-
68  T const & x);
-
69  GLM_FUNC_DECL explicit tmat4x2(
-
70  T const & x0, T const & y0,
-
71  T const & x1, T const & y1,
-
72  T const & x2, T const & y2,
-
73  T const & x3, T const & y3);
-
74  GLM_FUNC_DECL explicit tmat4x2(
-
75  col_type const & v0,
-
76  col_type const & v1,
-
77  col_type const & v2,
-
78  col_type const & v3);
-
79 
-
80 #if(GLM_HAS_INITIALIZER_LISTS)
-
81  template <typename U>
-
82  GLM_FUNC_DECL tmat4x2(std::initializer_list<U> m);
-
83 
-
84  GLM_FUNC_DECL tmat4x2(std::initializer_list<tvec2<T, P> > m);
-
85 #endif//GLM_HAS_INITIALIZER_LISTS
-
86 
-
88  // Conversions
-
89 
-
90  template<
-
91  typename X1, typename Y1,
-
92  typename X2, typename Y2,
-
93  typename X3, typename Y3,
-
94  typename X4, typename Y4>
-
95  GLM_FUNC_DECL explicit tmat4x2(
-
96  X1 const & x1, Y1 const & y1,
-
97  X2 const & x2, Y2 const & y2,
-
98  X3 const & x3, Y3 const & y3,
-
99  X4 const & x4, Y4 const & y4);
+
65 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+
66 # pragma message("GLM: GLM_GTC_type_precision extension included")
+
67 #endif
+
68 
+
69 namespace glm
+
70 {
+
72  // Signed int vector types
+
73 
+
76 
+
79  typedef detail::int8 lowp_int8;
+
80 
+
83  typedef detail::int16 lowp_int16;
+
84 
+
87  typedef detail::int32 lowp_int32;
+
88 
+
91  typedef detail::int64 lowp_int64;
+
92 
+
95  typedef detail::int8 lowp_int8_t;
+
96 
+
99  typedef detail::int16 lowp_int16_t;
100 
-
101  template <typename V1, typename V2, typename V3, typename V4>
-
102  GLM_FUNC_DECL explicit tmat4x2(
-
103  tvec2<V1, P> const & v1,
-
104  tvec2<V2, P> const & v2,
-
105  tvec2<V3, P> const & v3,
-
106  tvec2<V4, P> const & v4);
-
107 
-
108  // Matrix conversions
-
109  template <typename U, precision Q>
-
110  GLM_FUNC_DECL explicit tmat4x2(tmat4x2<U, Q> const & m);
-
111 
-
112  GLM_FUNC_DECL explicit tmat4x2(tmat2x2<T, P> const & x);
-
113  GLM_FUNC_DECL explicit tmat4x2(tmat3x3<T, P> const & x);
-
114  GLM_FUNC_DECL explicit tmat4x2(tmat4x4<T, P> const & x);
-
115  GLM_FUNC_DECL explicit tmat4x2(tmat2x3<T, P> const & x);
-
116  GLM_FUNC_DECL explicit tmat4x2(tmat3x2<T, P> const & x);
-
117  GLM_FUNC_DECL explicit tmat4x2(tmat2x4<T, P> const & x);
-
118  GLM_FUNC_DECL explicit tmat4x2(tmat4x3<T, P> const & x);
-
119  GLM_FUNC_DECL explicit tmat4x2(tmat3x4<T, P> const & x);
+
103  typedef detail::int32 lowp_int32_t;
+
104 
+
107  typedef detail::int64 lowp_int64_t;
+
108 
+
111  typedef detail::int8 lowp_i8;
+
112 
+
115  typedef detail::int16 lowp_i16;
+
116 
+
119  typedef detail::int32 lowp_i32;
120 
-
121  // Accesses
-
122  GLM_FUNC_DECL col_type & operator[](length_t i);
-
123  GLM_FUNC_DECL col_type const & operator[](length_t i) const;
+
123  typedef detail::int64 lowp_i64;
124 
-
125  // Unary updatable operators
-
126  GLM_FUNC_DECL tmat4x2<T, P>& operator= (tmat4x2<T, P> const & m);
-
127  template <typename U>
-
128  GLM_FUNC_DECL tmat4x2<T, P>& operator= (tmat4x2<U, P> const & m);
-
129  template <typename U>
-
130  GLM_FUNC_DECL tmat4x2<T, P>& operator+= (U s);
-
131  template <typename U>
-
132  GLM_FUNC_DECL tmat4x2<T, P>& operator+= (tmat4x2<U, P> const & m);
-
133  template <typename U>
-
134  GLM_FUNC_DECL tmat4x2<T, P>& operator-= (U s);
-
135  template <typename U>
-
136  GLM_FUNC_DECL tmat4x2<T, P>& operator-= (tmat4x2<U, P> const & m);
-
137  template <typename U>
-
138  GLM_FUNC_DECL tmat4x2<T, P>& operator*= (U s);
-
139  template <typename U>
-
140  GLM_FUNC_DECL tmat4x2<T, P>& operator/= (U s);
-
141 
-
143  // Increment and decrement operators
-
144 
-
145  GLM_FUNC_DECL tmat4x2<T, P> & operator++ ();
-
146  GLM_FUNC_DECL tmat4x2<T, P> & operator-- ();
-
147  GLM_FUNC_DECL tmat4x2<T, P> operator++(int);
-
148  GLM_FUNC_DECL tmat4x2<T, P> operator--(int);
-
149  };
-
150 
-
151  // Binary operators
-
152  template <typename T, precision P>
-
153  GLM_FUNC_DECL tmat4x2<T, P> operator+ (
-
154  tmat4x2<T, P> const & m,
-
155  T const & s);
+
127  typedef detail::int8 mediump_int8;
+
128 
+
131  typedef detail::int16 mediump_int16;
+
132 
+
135  typedef detail::int32 mediump_int32;
+
136 
+
139  typedef detail::int64 mediump_int64;
+
140 
+
143  typedef detail::int8 mediump_int8_t;
+
144 
+
147  typedef detail::int16 mediump_int16_t;
+
148 
+
151  typedef detail::int32 mediump_int32_t;
+
152 
+
155  typedef detail::int64 mediump_int64_t;
156 
-
157  template <typename T, precision P>
-
158  GLM_FUNC_DECL tmat4x2<T, P> operator+ (
-
159  tmat4x2<T, P> const & m1,
-
160  tmat4x2<T, P> const & m2);
-
161 
-
162  template <typename T, precision P>
-
163  GLM_FUNC_DECL tmat4x2<T, P> operator- (
-
164  tmat4x2<T, P> const & m,
-
165  T const & s);
-
166 
-
167  template <typename T, precision P>
-
168  GLM_FUNC_DECL tmat4x2<T, P> operator- (
-
169  tmat4x2<T, P> const & m1,
-
170  tmat4x2<T, P> const & m2);
-
171 
-
172  template <typename T, precision P>
-
173  GLM_FUNC_DECL tmat4x2<T, P> operator* (
-
174  tmat4x2<T, P> const & m,
-
175  T const & s);
-
176 
-
177  template <typename T, precision P>
-
178  GLM_FUNC_DECL tmat4x2<T, P> operator* (
-
179  T const & s,
-
180  tmat4x2<T, P> const & m);
-
181 
-
182  template <typename T, precision P>
-
183  GLM_FUNC_DECL typename tmat4x2<T, P>::col_type operator* (
-
184  tmat4x2<T, P> const & m,
-
185  typename tmat4x2<T, P>::row_type const & v);
-
186 
-
187  template <typename T, precision P>
-
188  GLM_FUNC_DECL typename tmat4x2<T, P>::row_type operator* (
-
189  typename tmat4x2<T, P>::col_type const & v,
-
190  tmat4x2<T, P> const & m);
-
191 
-
192  template <typename T, precision P>
-
193  GLM_FUNC_DECL tmat3x2<T, P> operator* (
-
194  tmat4x2<T, P> const & m1,
-
195  tmat3x4<T, P> const & m2);
-
196 
-
197  template <typename T, precision P>
-
198  GLM_FUNC_DECL tmat4x2<T, P> operator* (
-
199  tmat4x2<T, P> const & m1,
-
200  tmat4x4<T, P> const & m2);
-
201 
-
202  template <typename T, precision P>
-
203  GLM_FUNC_DECL tmat2x3<T, P> operator* (
-
204  tmat4x3<T, P> const & m1,
-
205  tmat2x4<T, P> const & m2);
-
206 
-
207  template <typename T, precision P>
-
208  GLM_FUNC_DECL tmat4x2<T, P> operator/ (
-
209  tmat4x2<T, P> const & m,
-
210  T const & s);
-
211 
-
212  template <typename T, precision P>
-
213  GLM_FUNC_DECL tmat4x2<T, P> operator/ (
-
214  T const & s,
-
215  tmat4x2<T, P> const & m);
+
159  typedef detail::int8 mediump_i8;
+
160 
+
163  typedef detail::int16 mediump_i16;
+
164 
+
167  typedef detail::int32 mediump_i32;
+
168 
+
171  typedef detail::int64 mediump_i64;
+
172 
+
175  typedef detail::int8 highp_int8;
+
176 
+
179  typedef detail::int16 highp_int16;
+
180 
+
183  typedef detail::int32 highp_int32;
+
184 
+
187  typedef detail::int64 highp_int64;
+
188 
+
191  typedef detail::int8 highp_int8_t;
+
192 
+
195  typedef detail::int16 highp_int16_t;
+
196 
+
199  typedef detail::int32 highp_int32_t;
+
200 
+
203  typedef detail::int64 highp_int64_t;
+
204 
+
207  typedef detail::int8 highp_i8;
+
208 
+
211  typedef detail::int16 highp_i16;
+
212 
+
215  typedef detail::int32 highp_i32;
216 
-
217  // Unary constant operators
-
218  template <typename T, precision P>
-
219  GLM_FUNC_DECL tmat4x2<T, P> const operator-(
-
220  tmat4x2<T, P> const & m);
-
221 
-
222 }//namespace detail
-
223 }//namespace glm
-
224 
-
225 #ifndef GLM_EXTERNAL_TEMPLATE
-
226 #include "type_mat4x2.inl"
-
227 #endif
-
228 
-
229 #endif //glm_core_type_mat4x2
-
GLM_FUNC_DECL genType::value_type length(genType const &x)
Returns the length of x, i.e., sqrt(x * x).
+
219  typedef detail::int64 highp_i64;
+
220 
+
221 
+
224  typedef detail::int8 int8;
+
225 
+
228  typedef detail::int16 int16;
+
229 
+
232  typedef detail::int32 int32;
+
233 
+
236  typedef detail::int64 int64;
+
237 
+
238 #if GLM_HAS_EXTENDED_INTEGER_TYPE
+
239  using std::int8_t;
+
240  using std::int16_t;
+
241  using std::int32_t;
+
242  using std::int64_t;
+
243 #else
+
244  typedef detail::int8 int8_t;
+
247 
+
250  typedef detail::int16 int16_t;
+
251 
+
254  typedef detail::int32 int32_t;
+
255 
+
258  typedef detail::int64 int64_t;
+
259 #endif
+
260 
+
263  typedef detail::int8 i8;
+
264 
+
267  typedef detail::int16 i16;
+
268 
+
271  typedef detail::int32 i32;
+
272 
+
275  typedef detail::int64 i64;
+
276 
+
277 
+
280  typedef tvec1<i8, defaultp> i8vec1;
+
281 
+
284  typedef tvec2<i8, defaultp> i8vec2;
+
285 
+
288  typedef tvec3<i8, defaultp> i8vec3;
+
289 
+
292  typedef tvec4<i8, defaultp> i8vec4;
+
293 
+
294 
+
297  typedef tvec1<i16, defaultp> i16vec1;
+
298 
+
301  typedef tvec2<i16, defaultp> i16vec2;
+
302 
+
305  typedef tvec3<i16, defaultp> i16vec3;
+
306 
+
309  typedef tvec4<i16, defaultp> i16vec4;
+
310 
+
311 
+
314  typedef tvec1<i32, defaultp> i32vec1;
+
315 
+
318  typedef tvec2<i32, defaultp> i32vec2;
+
319 
+
322  typedef tvec3<i32, defaultp> i32vec3;
+
323 
+
326  typedef tvec4<i32, defaultp> i32vec4;
+
327 
+
328 
+
331  typedef tvec1<i64, defaultp> i64vec1;
+
332 
+
335  typedef tvec2<i64, defaultp> i64vec2;
+
336 
+
339  typedef tvec3<i64, defaultp> i64vec3;
+
340 
+
343  typedef tvec4<i64, defaultp> i64vec4;
+
344 
+
345 
+
347  // Unsigned int vector types
+
348 
+
351  typedef detail::uint8 lowp_uint8;
+
352 
+
355  typedef detail::uint16 lowp_uint16;
+
356 
+
359  typedef detail::uint32 lowp_uint32;
+
360 
+
363  typedef detail::uint64 lowp_uint64;
+
364 
+
367  typedef detail::uint8 lowp_uint8_t;
+
368 
+
371  typedef detail::uint16 lowp_uint16_t;
+
372 
+
375  typedef detail::uint32 lowp_uint32_t;
+
376 
+
379  typedef detail::uint64 lowp_uint64_t;
+
380 
+
383  typedef detail::uint8 lowp_u8;
+
384 
+
387  typedef detail::uint16 lowp_u16;
+
388 
+
391  typedef detail::uint32 lowp_u32;
+
392 
+
395  typedef detail::uint64 lowp_u64;
+
396 
+
399  typedef detail::uint8 mediump_uint8;
+
400 
+
403  typedef detail::uint16 mediump_uint16;
+
404 
+
407  typedef detail::uint32 mediump_uint32;
+
408 
+
411  typedef detail::uint64 mediump_uint64;
+
412 
+
415  typedef detail::uint8 mediump_uint8_t;
+
416 
+
419  typedef detail::uint16 mediump_uint16_t;
+
420 
+
423  typedef detail::uint32 mediump_uint32_t;
+
424 
+
427  typedef detail::uint64 mediump_uint64_t;
+
428 
+
431  typedef detail::uint8 mediump_u8;
+
432 
+
435  typedef detail::uint16 mediump_u16;
+
436 
+
439  typedef detail::uint32 mediump_u32;
+
440 
+
443  typedef detail::uint64 mediump_u64;
+
444 
+
447  typedef detail::uint8 highp_uint8;
+
448 
+
451  typedef detail::uint16 highp_uint16;
+
452 
+
455  typedef detail::uint32 highp_uint32;
+
456 
+
459  typedef detail::uint64 highp_uint64;
+
460 
+
463  typedef detail::uint8 highp_uint8_t;
+
464 
+
467  typedef detail::uint16 highp_uint16_t;
+
468 
+
471  typedef detail::uint32 highp_uint32_t;
+
472 
+
475  typedef detail::uint64 highp_uint64_t;
+
476 
+
479  typedef detail::uint8 highp_u8;
+
480 
+
483  typedef detail::uint16 highp_u16;
+
484 
+
487  typedef detail::uint32 highp_u32;
+
488 
+
491  typedef detail::uint64 highp_u64;
+
492 
+
495  typedef detail::uint8 uint8;
+
496 
+
499  typedef detail::uint16 uint16;
+
500 
+
503  typedef detail::uint32 uint32;
+
504 
+
507  typedef detail::uint64 uint64;
+
508 
+
509 #if GLM_HAS_EXTENDED_INTEGER_TYPE
+
510  using std::uint8_t;
+
511  using std::uint16_t;
+
512  using std::uint32_t;
+
513  using std::uint64_t;
+
514 #else
+
515  typedef detail::uint8 uint8_t;
+
518 
+
521  typedef detail::uint16 uint16_t;
+
522 
+
525  typedef detail::uint32 uint32_t;
+
526 
+
529  typedef detail::uint64 uint64_t;
+
530 #endif
+
531 
+
534  typedef detail::uint8 u8;
+
535 
+
538  typedef detail::uint16 u16;
+
539 
+
542  typedef detail::uint32 u32;
+
543 
+
546  typedef detail::uint64 u64;
+
547 
+
548 
+
549 
+
552  typedef tvec1<u8, defaultp> u8vec1;
+
553 
+
556  typedef tvec2<u8, defaultp> u8vec2;
+
557 
+
560  typedef tvec3<u8, defaultp> u8vec3;
+
561 
+
564  typedef tvec4<u8, defaultp> u8vec4;
+
565 
+
566 
+
569  typedef tvec1<u16, defaultp> u16vec1;
+
570 
+
573  typedef tvec2<u16, defaultp> u16vec2;
+
574 
+
577  typedef tvec3<u16, defaultp> u16vec3;
+
578 
+
581  typedef tvec4<u16, defaultp> u16vec4;
+
582 
+
583 
+
586  typedef tvec1<u32, defaultp> u32vec1;
+
587 
+
590  typedef tvec2<u32, defaultp> u32vec2;
+
591 
+
594  typedef tvec3<u32, defaultp> u32vec3;
+
595 
+
598  typedef tvec4<u32, defaultp> u32vec4;
+
599 
+
600 
+
603  typedef tvec1<u64, defaultp> u64vec1;
+
604 
+
607  typedef tvec2<u64, defaultp> u64vec2;
+
608 
+
611  typedef tvec3<u64, defaultp> u64vec3;
+
612 
+
615  typedef tvec4<u64, defaultp> u64vec4;
+
616 
+
617 
+
619  // Float vector types
+
620 
+
623  typedef detail::float32 float32;
+
624 
+
627  typedef detail::float64 float64;
+
628 
+
629 
+
632  typedef detail::float32 float32_t;
+
633 
+
636  typedef detail::float64 float64_t;
+
637 
+
638 
+
641  typedef float32 f32;
+
642 
+
645  typedef float64 f64;
+
646 
+
647 
+
650  typedef tvec1<float, defaultp> fvec1;
+
651 
+
654  typedef tvec2<float, defaultp> fvec2;
+
655 
+
658  typedef tvec3<float, defaultp> fvec3;
+
659 
+
662  typedef tvec4<float, defaultp> fvec4;
+
663 
+
664 
+
667  typedef tvec1<f32, defaultp> f32vec1;
+
668 
+
671  typedef tvec2<f32, defaultp> f32vec2;
+
672 
+
675  typedef tvec3<f32, defaultp> f32vec3;
+
676 
+
679  typedef tvec4<f32, defaultp> f32vec4;
+
680 
+
681 
+
684  typedef tvec1<f64, defaultp> f64vec1;
+
685 
+
688  typedef tvec2<f64, defaultp> f64vec2;
+
689 
+
692  typedef tvec3<f64, defaultp> f64vec3;
+
693 
+
696  typedef tvec4<f64, defaultp> f64vec4;
+
697 
+
698 
+
700  // Float matrix types
+
701 
+
704  //typedef detail::tmat1x1<f32> fmat1;
+
705 
+
708  typedef tmat2x2<f32, defaultp> fmat2;
+
709 
+
712  typedef tmat3x3<f32, defaultp> fmat3;
+
713 
+
716  typedef tmat4x4<f32, defaultp> fmat4;
+
717 
+
718 
+
721  //typedef f32 fmat1x1;
+
722 
+
725  typedef tmat2x2<f32, defaultp> fmat2x2;
+
726 
+
729  typedef tmat2x3<f32, defaultp> fmat2x3;
+
730 
+
733  typedef tmat2x4<f32, defaultp> fmat2x4;
+
734 
+
737  typedef tmat3x2<f32, defaultp> fmat3x2;
+
738 
+
741  typedef tmat3x3<f32, defaultp> fmat3x3;
+
742 
+
745  typedef tmat3x4<f32, defaultp> fmat3x4;
+
746 
+
749  typedef tmat4x2<f32, defaultp> fmat4x2;
+
750 
+
753  typedef tmat4x3<f32, defaultp> fmat4x3;
+
754 
+
757  typedef tmat4x4<f32, defaultp> fmat4x4;
+
758 
+
759 
+
762  //typedef detail::tmat1x1<f32, defaultp> f32mat1;
+
763 
+
766  typedef tmat2x2<f32, defaultp> f32mat2;
+
767 
+
770  typedef tmat3x3<f32, defaultp> f32mat3;
+
771 
+
774  typedef tmat4x4<f32, defaultp> f32mat4;
+
775 
+
776 
+
779  //typedef f32 f32mat1x1;
+
780 
+
783  typedef tmat2x2<f32, defaultp> f32mat2x2;
+
784 
+
787  typedef tmat2x3<f32, defaultp> f32mat2x3;
+
788 
+
791  typedef tmat2x4<f32, defaultp> f32mat2x4;
+
792 
+
795  typedef tmat3x2<f32, defaultp> f32mat3x2;
+
796 
+
799  typedef tmat3x3<f32, defaultp> f32mat3x3;
+
800 
+
803  typedef tmat3x4<f32, defaultp> f32mat3x4;
+
804 
+
807  typedef tmat4x2<f32, defaultp> f32mat4x2;
+
808 
+
811  typedef tmat4x3<f32, defaultp> f32mat4x3;
+
812 
+
815  typedef tmat4x4<f32, defaultp> f32mat4x4;
+
816 
+
817 
+
820  //typedef detail::tmat1x1<f64, defaultp> f64mat1;
+
821 
+
824  typedef tmat2x2<f64, defaultp> f64mat2;
+
825 
+
828  typedef tmat3x3<f64, defaultp> f64mat3;
+
829 
+
832  typedef tmat4x4<f64, defaultp> f64mat4;
+
833 
+
834 
+
837  //typedef f64 f64mat1x1;
+
838 
+
841  typedef tmat2x2<f64, defaultp> f64mat2x2;
+
842 
+
845  typedef tmat2x3<f64, defaultp> f64mat2x3;
+
846 
+
849  typedef tmat2x4<f64, defaultp> f64mat2x4;
+
850 
+
853  typedef tmat3x2<f64, defaultp> f64mat3x2;
+
854 
+
857  typedef tmat3x3<f64, defaultp> f64mat3x3;
+
858 
+
861  typedef tmat3x4<f64, defaultp> f64mat3x4;
+
862 
+
865  typedef tmat4x2<f64, defaultp> f64mat4x2;
+
866 
+
869  typedef tmat4x3<f64, defaultp> f64mat4x3;
+
870 
+
873  typedef tmat4x4<f64, defaultp> f64mat4x4;
+
874 
+
875 
+
877  // Quaternion types
+
878 
+
881  typedef tquat<f32, defaultp> f32quat;
+
882 
+
885  typedef tquat<f64, defaultp> f64quat;
+
886 
+
888 }//namespace glm
+
889 
+
890 #include "type_precision.inl"
+
detail::int8 highp_int8
High precision 8 bit signed integer type.
Definition: fwd.hpp:228
+
detail::uint64 lowp_uint64
Low precision 64 bit unsigned integer type.
Definition: fwd.hpp:747
+
highp_i16vec4 i16vec4
Default precision 16 bit signed integer vector of 4 components type.
Definition: fwd.hpp:488
+
highp_f32vec2 f32vec2
Default single-precision floating-point vector of 2 components.
Definition: fwd.hpp:2433
+
detail::uint8 lowp_uint8_t
Low precision 8 bit unsigned integer type.
Definition: fwd.hpp:752
+
detail::int16 highp_i16
High precision 16 bit signed integer type.
Definition: fwd.hpp:264
+
highp_f32mat3x4 f32mat3x4
Default single-precision floating-point 3x4 matrix.
Definition: fwd.hpp:2465
+
detail::uint64 uint64_t
64 bit unsigned integer type.
Definition: fwd.hpp:921
+
highp_f32mat4x2 f32mat4x2
Default single-precision floating-point 4x2 matrix.
Definition: fwd.hpp:2469
+
highp_u16vec1 u16vec1
Default precision 16 bit unsigned integer scalar type.
Definition: fwd.hpp:1085
+
highp_f32vec1 fvec1
Default single-precision floating-point vector of 1 components.
Definition: fwd.hpp:2359
+
detail::uint16 highp_u16
Medium precision 16 bit unsigned integer type.
Definition: fwd.hpp:873
+
highp_i32vec1 i32vec1
Default precision 32 bit signed integer scalar type.
Definition: fwd.hpp:555
+
detail::int16 mediump_int16
Medium precision 16 bit signed integer type.
Definition: fwd.hpp:184
+
highp_float64_t float64_t
Default 64 bit double-precision floating-point scalar.
Definition: fwd.hpp:1533
+
detail::uint32 lowp_u32
Low precision 32 bit unsigned integer type.
Definition: fwd.hpp:777
+
highp_u64vec2 u64vec2
Default precision 64 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:1327
+
highp_i16vec2 i16vec2
Default precision 16 bit signed integer vector of 2 components type.
Definition: fwd.hpp:480
+
detail::uint32 uint32_t
32 bit unsigned integer type.
Definition: fwd.hpp:917
+
detail::int32 int32_t
32 bit signed integer type.
Definition: fwd.hpp:308
+
highp_u16vec2 u16vec2
Default precision 16 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:1089
+
highp_f32mat4x4 f32mat4x4
Default single-precision floating-point 4x4 matrix.
Definition: fwd.hpp:2477
+
highp_i32vec4 i32vec4
Default precision 32 bit signed integer vector of 4 components type.
Definition: fwd.hpp:567
+
highp_f32mat3x2 fmat3x2
Default single-precision floating-point 3x2 matrix.
Definition: fwd.hpp:2387
+
detail::uint64 mediump_uint64
Medium precision 64 bit unsigned integer type.
Definition: fwd.hpp:799
+
highp_u64vec1 u64vec1
Default precision 64 bit unsigned integer scalar type.
Definition: fwd.hpp:1323
+
detail::int64 lowp_i64
Low precision 64 bit signed integer type.
Definition: fwd.hpp:176
+
detail::int32 highp_int32_t
32 bit signed integer type.
Definition: fwd.hpp:252
+
detail::int64 lowp_int64
Low precision 64 bit signed integer type.
Definition: fwd.hpp:144
+
detail::int16 lowp_int16_t
Low precision 16 bit signed integer type.
Definition: fwd.hpp:152
+
detail::int32 lowp_int32
Low precision 32 bit signed integer type.
Definition: fwd.hpp:140
+
detail::uint8 lowp_u8
Low precision 8 bit unsigned integer type.
Definition: fwd.hpp:769
+
detail::uint16 mediump_uint16_t
Medium precision 16 bit unsigned integer type.
Definition: fwd.hpp:807
+
highp_f32mat3x2 f32mat3x2
Default single-precision floating-point 3x2 matrix.
Definition: fwd.hpp:2457
+
detail::uint8 u8
8 bit unsigned integer type.
Definition: fwd.hpp:926
+
detail::uint16 uint16_t
16 bit unsigned integer type.
Definition: fwd.hpp:913
+
detail::uint8 highp_uint8_t
Medium precision 8 bit unsigned integer type.
Definition: fwd.hpp:853
+
highp_f64mat4x2 f64mat4x2
Default double-precision floating-point 4x2 matrix.
Definition: fwd.hpp:2575
+
highp_i32vec3 i32vec3
Default precision 32 bit signed integer vector of 3 components type.
Definition: fwd.hpp:563
+
highp_f32mat4x4 fmat4x4
Default single-precision floating-point 4x4 matrix.
Definition: fwd.hpp:2407
+
highp_u8vec1 u8vec1
Default precision 8 bit unsigned integer scalar type.
Definition: fwd.hpp:1005
+
detail::int8 lowp_i8
Low precision 8 bit signed integer type.
Definition: fwd.hpp:164
+
detail::int8 highp_i8
High precision 8 bit signed integer type.
Definition: fwd.hpp:260
+
highp_f32mat3x3 f32mat3x3
Default single-precision floating-point 3x3 matrix.
Definition: fwd.hpp:2461
+
detail::int16 lowp_i16
Low precision 16 bit signed integer type.
Definition: fwd.hpp:168
+
detail::int64 highp_i64
High precision 64 bit signed integer type.
Definition: fwd.hpp:272
+
highp_f32vec3 fvec3
Default single-precision floating-point vector of 3 components.
Definition: fwd.hpp:2367
+
highp_u32vec4 u32vec4
Default precision 32 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:1176
+
detail::int16 int16_t
16 bit signed integer type.
Definition: fwd.hpp:304
+
highp_i16vec3 i16vec3
Default precision 16 bit signed integer vector of 3 components type.
Definition: fwd.hpp:484
+
detail::int16 highp_int16
High precision 16 bit signed integer type.
Definition: fwd.hpp:232
+
detail::int8 lowp_int8
Low precision 8 bit signed integer type.
Definition: fwd.hpp:132
+
detail::int16 lowp_int16
Low precision 16 bit signed integer type.
Definition: fwd.hpp:136
+
highp_f64vec2 f64vec2
Default double-precision floating-point vector of 2 components.
Definition: fwd.hpp:2539
+
detail::int64 i64
64 bit signed integer type.
Definition: fwd.hpp:329
+
detail::int64 mediump_int64_t
Medium precision 64 bit signed integer type.
Definition: fwd.hpp:208
+
highp_f64mat2x4 f64mat2x4
Default double-precision floating-point 2x4 matrix.
Definition: fwd.hpp:2559
+
detail::uint32 mediump_uint32
Medium precision 32 bit unsigned integer type.
Definition: fwd.hpp:795
+
f32mat3x3 f32mat3
Default single-precision floating-point 3x3 matrix.
Definition: fwd.hpp:2485
+
detail::uint8 mediump_u8
Medium precision 8 bit unsigned integer type.
Definition: fwd.hpp:819
+
detail::uint64 u64
64 bit unsigned integer type.
Definition: fwd.hpp:938
+
highp_u64vec3 u64vec3
Default precision 64 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:1331
+
highp_f64quat f64quat
Default double-precision floating-point quaternion.
Definition: fwd.hpp:2599
+
highp_f32mat2x3 f32mat2x3
Default single-precision floating-point 2x3 matrix.
Definition: fwd.hpp:2449
+
detail::uint64 highp_u64
Medium precision 64 bit unsigned integer type.
Definition: fwd.hpp:881
+
detail::int64 highp_int64
High precision 64 bit signed integer type.
Definition: fwd.hpp:240
+
detail::uint32 mediump_u32
Medium precision 32 bit unsigned integer type.
Definition: fwd.hpp:827
+
detail::int8 mediump_int8
Medium precision 8 bit signed integer type.
Definition: fwd.hpp:180
+
fmat3x3 fmat3
Default single-precision floating-point 3x3 matrix.
Definition: fwd.hpp:2415
+
f32mat2x2 f32mat2
Default single-precision floating-point 2x2 matrix.
Definition: fwd.hpp:2481
+
detail::uint32 mediump_uint32_t
Medium precision 32 bit unsigned integer type.
Definition: fwd.hpp:811
+
detail::uint8 mediump_uint8
Medium precision 8 bit unsigned integer type.
Definition: fwd.hpp:787
+
highp_f32vec3 f32vec3
Default single-precision floating-point vector of 3 components.
Definition: fwd.hpp:2437
+
highp_f32mat4x3 f32mat4x3
Default single-precision floating-point 4x3 matrix.
Definition: fwd.hpp:2473
+
highp_f32mat2x4 f32mat2x4
Default single-precision floating-point 2x4 matrix.
Definition: fwd.hpp:2453
+
highp_f64vec4 f64vec4
Default double-precision floating-point vector of 4 components.
Definition: fwd.hpp:2547
+
detail::uint8 mediump_uint8_t
Medium precision 8 bit unsigned integer type.
Definition: fwd.hpp:803
+
detail::uint16 u16
16 bit unsigned integer type.
Definition: fwd.hpp:930
+
detail::uint32 u32
32 bit unsigned integer type.
Definition: fwd.hpp:934
+
highp_f32mat4x2 fmat4x2
Default single-precision floating-point 4x2 matrix.
Definition: fwd.hpp:2399
+
fmat2x2 fmat2
Default single-precision floating-point 2x2 matrix.
Definition: fwd.hpp:2411
+
f64mat3x3 f64mat3
Default double-precision floating-point 3x3 matrix.
Definition: fwd.hpp:2591
+
detail::int8 mediump_i8
Medium precision 8 bit signed integer type.
Definition: fwd.hpp:212
+
highp_f64mat3x3 f64mat3x3
Default double-precision floating-point 3x3 matrix.
Definition: fwd.hpp:2567
+
detail::int16 mediump_int16_t
Medium precision 16 bit signed integer type.
Definition: fwd.hpp:200
+
detail::uint16 mediump_uint16
Medium precision 16 bit unsigned integer type.
Definition: fwd.hpp:791
+
detail::int32 highp_i32
High precision 32 bit signed integer type.
Definition: fwd.hpp:268
+
highp_i64vec2 i64vec2
Default precision 64 bit signed integer vector of 2 components type.
Definition: fwd.hpp:718
+
highp_i8vec2 i8vec2
Default precision 8 bit signed integer vector of 2 components type.
Definition: fwd.hpp:400
+
highp_float32_t float32_t
Default 32 bit single-precision floating-point scalar.
Definition: fwd.hpp:1529
+
detail::uint8 lowp_uint8
Low precision 8 bit unsigned integer type.
Definition: fwd.hpp:735
+
highp_u8vec3 u8vec3
Default precision 8 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:1013
+
detail::uint32 highp_u32
Medium precision 32 bit unsigned integer type.
Definition: fwd.hpp:877
+
highp_f32mat3x3 fmat3x3
Default single-precision floating-point 3x3 matrix.
Definition: fwd.hpp:2391
+
highp_i8vec4 i8vec4
Default precision 8 bit signed integer vector of 4 components type.
Definition: fwd.hpp:408
+
highp_float64_t f64
Default 64 bit double-precision floating-point scalar.
Definition: fwd.hpp:1541
+
highp_u64vec4 u64vec4
Default precision 64 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:1335
+
detail::uint32 highp_uint32
Medium precision 32 bit unsigned integer type.
Definition: fwd.hpp:845
+
detail::uint64 mediump_uint64_t
Medium precision 64 bit unsigned integer type.
Definition: fwd.hpp:815
+
highp_f64mat2x3 f64mat2x3
Default double-precision floating-point 2x3 matrix.
Definition: fwd.hpp:2555
+
highp_u16vec3 u16vec3
Default precision 16 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:1093
+
detail::uint8 highp_u8
Medium precision 8 bit unsigned integer type.
Definition: fwd.hpp:869
+
detail::int32 lowp_int32_t
Low precision 32 bit signed integer type.
Definition: fwd.hpp:156
+
detail::int8 mediump_int8_t
Medium precision 8 bit signed integer type.
Definition: fwd.hpp:196
+
highp_i64vec1 i64vec1
Default precision 64 bit signed integer scalar type.
Definition: fwd.hpp:714
+
highp_i8vec1 i8vec1
Default precision 8 bit signed integer scalar type.
Definition: fwd.hpp:396
+
detail::uint32 highp_uint32_t
Medium precision 32 bit unsigned integer type.
Definition: fwd.hpp:861
+
highp_f32vec2 fvec2
Default single-precision floating-point vector of 2 components.
Definition: fwd.hpp:2363
+
highp_float32_t f32
Default 32 bit single-precision floating-point scalar.
Definition: fwd.hpp:1537
+
detail::int8 lowp_int8_t
Low precision 8 bit signed integer type.
Definition: fwd.hpp:148
+
highp_f32vec4 f32vec4
Default single-precision floating-point vector of 4 components.
Definition: fwd.hpp:2441
+
f32mat4x4 f32mat4
Default single-precision floating-point 4x4 matrix.
Definition: fwd.hpp:2489
+
detail::int64 mediump_int64
Medium precision 64 bit signed integer type.
Definition: fwd.hpp:192
+
detail::uint64 mediump_u64
Medium precision 64 bit unsigned integer type.
Definition: fwd.hpp:831
+
highp_f32mat2x2 fmat2x2
Default single-precision floating-point 2x2 matrix.
Definition: fwd.hpp:2375
+
highp_i64vec3 i64vec3
Default precision 64 bit signed integer vector of 3 components type.
Definition: fwd.hpp:722
+
detail::uint64 lowp_uint64_t
Low precision 64 bit unsigned integer type.
Definition: fwd.hpp:764
+
highp_u32vec1 u32vec1
Default precision 32 bit unsigned integer scalar type.
Definition: fwd.hpp:1164
+
detail::int64 int64_t
64 bit signed integer type.
Definition: fwd.hpp:312
+
detail::int32 i32
32 bit signed integer type.
Definition: fwd.hpp:325
+
detail::uint32 lowp_uint32_t
Low precision 32 bit unsigned integer type.
Definition: fwd.hpp:760
+
highp_f32mat2x2 f32mat2x2
Default single-precision floating-point 2x2 matrix.
Definition: fwd.hpp:2445
+
highp_f32quat f32quat
Default single-precision floating-point quaternion.
Definition: fwd.hpp:2493
+
detail::int16 i16
16 bit signed integer type.
Definition: fwd.hpp:321
+
highp_u8vec4 u8vec4
Default precision 8 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:1017
+
highp_i64vec4 i64vec4
Default precision 64 bit signed integer vector of 4 components type.
Definition: fwd.hpp:726
+
detail::int64 highp_int64_t
High precision 64 bit signed integer type.
Definition: fwd.hpp:256
+
detail::uint16 highp_uint16
Medium precision 16 bit unsigned integer type.
Definition: fwd.hpp:841
+
f64mat2x2 f64mat2
Default double-precision floating-point 2x2 matrix.
Definition: fwd.hpp:2587
+
detail::int64 lowp_int64_t
Low precision 64 bit signed integer type.
Definition: fwd.hpp:160
+
detail::int16 highp_int16_t
High precision 16 bit signed integer type.
Definition: fwd.hpp:248
+
detail::int32 mediump_i32
Medium precision 32 bit signed integer type.
Definition: fwd.hpp:220
+
detail::uint8 highp_uint8
Medium precision 8 bit unsigned integer type.
Definition: fwd.hpp:837
+
detail::int8 highp_int8_t
High precision 8 bit signed integer type.
Definition: fwd.hpp:244
+
detail::int8 int8_t
8 bit signed integer type.
Definition: fwd.hpp:300
+
highp_u32vec3 u32vec3
Default precision 32 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:1172
+
highp_i16vec1 i16vec1
Default precision 16 bit signed integer scalar type.
Definition: fwd.hpp:476
+
detail::uint64 lowp_u64
Low precision 64 bit unsigned integer type.
Definition: fwd.hpp:781
+
Definition: _noise.hpp:39
+
highp_f32vec1 f32vec1
Default single-precision floating-point vector of 1 components.
Definition: fwd.hpp:2429
+
highp_f32mat4x3 fmat4x3
Default single-precision floating-point 4x3 matrix.
Definition: fwd.hpp:2403
+
detail::int64 mediump_i64
Medium precision 64 bit signed integer type.
Definition: fwd.hpp:224
+
highp_f64mat4x4 f64mat4x4
Default double-precision floating-point 4x4 matrix.
Definition: fwd.hpp:2583
+
detail::uint16 lowp_uint16_t
Low precision 16 bit unsigned integer type.
Definition: fwd.hpp:756
+
f64mat4x4 f64mat4
Default double-precision floating-point 4x4 matrix.
Definition: fwd.hpp:2595
+
highp_f64mat3x2 f64mat3x2
Default double-precision floating-point 3x2 matrix.
Definition: fwd.hpp:2563
+
highp_f64mat3x4 f64mat3x4
Default double-precision floating-point 3x4 matrix.
Definition: fwd.hpp:2571
+
detail::uint16 lowp_u16
Low precision 16 bit unsigned integer type.
Definition: fwd.hpp:773
+
fmat4x4 fmat4
Default single-precision floating-point 4x4 matrix.
Definition: fwd.hpp:2419
+
detail::uint64 highp_uint64
Medium precision 64 bit unsigned integer type.
Definition: fwd.hpp:849
+
detail::uint16 lowp_uint16
Low precision 16 bit unsigned integer type.
Definition: fwd.hpp:739
+
detail::int8 i8
8 bit signed integer type.
Definition: fwd.hpp:317
+
highp_f64vec3 f64vec3
Default double-precision floating-point vector of 3 components.
Definition: fwd.hpp:2543
+
highp_u16vec4 u16vec4
Default precision 16 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:1097
+
highp_f32mat3x4 fmat3x4
Default single-precision floating-point 3x4 matrix.
Definition: fwd.hpp:2395
+
highp_f32vec4 fvec4
Default single-precision floating-point vector of 4 components.
Definition: fwd.hpp:2371
+
detail::int32 highp_int32
High precision 32 bit signed integer type.
Definition: fwd.hpp:236
+
highp_u8vec2 u8vec2
Default precision 8 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:1009
+
detail::int32 mediump_int32
Medium precision 32 bit signed integer type.
Definition: fwd.hpp:188
+
detail::int32 mediump_int32_t
Medium precision 32 bit signed integer type.
Definition: fwd.hpp:204
+
detail::int32 lowp_i32
Low precision 32 bit signed integer type.
Definition: fwd.hpp:172
+
detail::uint8 uint8_t
8 bit unsigned integer type.
Definition: fwd.hpp:909
+
highp_i8vec3 i8vec3
Default precision 8 bit signed integer vector of 3 components type.
Definition: fwd.hpp:404
+
detail::uint64 highp_uint64_t
Medium precision 64 bit unsigned integer type.
Definition: fwd.hpp:865
+
detail::uint32 lowp_uint32
Low precision 32 bit unsigned integer type.
Definition: fwd.hpp:743
+
highp_f64mat2x2 f64mat2x2
Default double-precision floating-point 2x2 matrix.
Definition: fwd.hpp:2551
+
detail::uint16 mediump_u16
Medium precision 16 bit unsigned integer type.
Definition: fwd.hpp:823
+
detail::uint16 highp_uint16_t
Medium precision 16 bit unsigned integer type.
Definition: fwd.hpp:857
+
highp_f32mat2x3 fmat2x3
Default single-precision floating-point 2x3 matrix.
Definition: fwd.hpp:2379
+
highp_f64mat4x3 f64mat4x3
Default double-precision floating-point 4x3 matrix.
Definition: fwd.hpp:2579
+
highp_f32mat2x4 fmat2x4
Default single-precision floating-point 2x4 matrix.
Definition: fwd.hpp:2383
+
highp_f64vec1 f64vec1
Default double-precision floating-point vector of 1 components.
Definition: fwd.hpp:2535
+
highp_i32vec2 i32vec2
Default precision 32 bit signed integer vector of 2 components type.
Definition: fwd.hpp:559
+
detail::int16 mediump_i16
Medium precision 16 bit signed integer type.
Definition: fwd.hpp:216
+
highp_u32vec2 u32vec2
Default precision 32 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:1168
diff --git a/doc/api/a00130.html b/doc/api/a00130.html new file mode 100644 index 00000000..d0a9008e --- /dev/null +++ b/doc/api/a00130.html @@ -0,0 +1,148 @@ + + + + + + +0.9.6: type_ptr.hpp File Reference + + + + + + +
+
+ + + + + + + +
+
0.9.6 +
+
+
+ + + + + +
+
+ +
+
type_ptr.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename T >
GLM_FUNC_DECL tmat2x2< T,
+defaultp > 
make_mat2 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL tmat2x2< T,
+defaultp > 
make_mat2x2 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL tmat2x3< T,
+defaultp > 
make_mat2x3 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL tmat2x4< T,
+defaultp > 
make_mat2x4 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL tmat3x3< T,
+defaultp > 
make_mat3 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL tmat3x2< T,
+defaultp > 
make_mat3x2 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL tmat3x3< T,
+defaultp > 
make_mat3x3 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL tmat3x4< T,
+defaultp > 
make_mat3x4 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL tmat4x4< T,
+defaultp > 
make_mat4 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL tmat4x2< T,
+defaultp > 
make_mat4x2 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL tmat4x3< T,
+defaultp > 
make_mat4x3 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL tmat4x4< T,
+defaultp > 
make_mat4x4 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL tquat< T, defaultp > make_quat (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL tvec2< T, defaultp > make_vec2 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL tvec3< T, defaultp > make_vec3 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL tvec4< T, defaultp > make_vec4 (T const *const ptr)
 
template<typename genType >
GLM_FUNC_DECL
+genType::value_type const * 
value_ptr (genType const &vec)
 
+

Detailed Description

+

OpenGL Mathematics (glm.g-truc.net)

+

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+

GLM_GTC_type_ptr

+
Date
2009-05-06 / 2011-06-05
+
Author
Christophe Riccio
+
See also
GLM Core (dependence)
+
+gtc_half_float (dependence)
+
+GLM_GTC_quaternion (dependence)
+ +

Definition in file type_ptr.hpp.

+
+ + + + diff --git a/doc/api/a00130_source.html b/doc/api/a00130_source.html index 72c77d7d..bb10fc60 100644 --- a/doc/api/a00130_source.html +++ b/doc/api/a00130_source.html @@ -3,8 +3,8 @@ - -GLM: type_mat4x3.hpp Source File + +0.9.6: type_ptr.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,221 +41,118 @@
-
type_mat4x3.hpp
+
type_ptr.hpp
-
1 
-
29 #ifndef glm_core_type_mat4x3
-
30 #define glm_core_type_mat4x3
-
31 
-
32 #include "../fwd.hpp"
-
33 #include "type_vec3.hpp"
-
34 #include "type_vec4.hpp"
-
35 #include "type_mat.hpp"
-
36 #include <limits>
-
37 
-
38 namespace glm{
-
39 namespace detail
-
40 {
-
41  template <typename T, precision P>
-
42  struct tmat4x3
-
43  {
-
44  enum ctor{_null};
-
45  typedef T value_type;
-
46  typedef std::size_t size_type;
-
47  typedef tvec3<T, P> col_type;
-
48  typedef tvec4<T, P> row_type;
-
49  typedef tmat4x3<T, P> type;
-
50  typedef tmat3x4<T, P> transpose_type;
-
51 
-
52  GLM_FUNC_DECL GLM_CONSTEXPR length_t length() const;
-
53 
-
54  private:
-
55  // Data
-
56  col_type value[4];
-
57 
-
58  public:
-
59  // Constructors
-
60  GLM_FUNC_DECL tmat4x3();
-
61  GLM_FUNC_DECL tmat4x3(tmat4x3<T, P> const & m);
-
62  template <precision Q>
-
63  GLM_FUNC_DECL tmat4x3(tmat4x3<T, Q> const & m);
+Go to the documentation of this file.
1 
+
63 #pragma once
64 
-
65  GLM_FUNC_DECL explicit tmat4x3(
-
66  ctor Null);
-
67  GLM_FUNC_DECL explicit tmat4x3(
-
68  T const & x);
-
69  GLM_FUNC_DECL explicit tmat4x3(
-
70  T const & x0, T const & y0, T const & z0,
-
71  T const & x1, T const & y1, T const & z1,
-
72  T const & x2, T const & y2, T const & z2,
-
73  T const & x3, T const & y3, T const & z3);
-
74  GLM_FUNC_DECL explicit tmat4x3(
-
75  col_type const & v0,
-
76  col_type const & v1,
-
77  col_type const & v2,
-
78  col_type const & v3);
-
79 
-
80 #if(GLM_HAS_INITIALIZER_LISTS)
-
81  template <typename U>
-
82  GLM_FUNC_DECL tmat4x3(std::initializer_list<U> m);
-
83 
-
84  GLM_FUNC_DECL tmat4x3(std::initializer_list<tvec3<T, P> > m);
-
85 #endif//GLM_HAS_INITIALIZER_LISTS
-
86 
-
88  // Conversions
+
65 // Dependency:
+
66 #include "../gtc/quaternion.hpp"
+
67 #include "../vec2.hpp"
+
68 #include "../vec3.hpp"
+
69 #include "../vec4.hpp"
+
70 #include "../mat2x2.hpp"
+
71 #include "../mat2x3.hpp"
+
72 #include "../mat2x4.hpp"
+
73 #include "../mat3x2.hpp"
+
74 #include "../mat3x3.hpp"
+
75 #include "../mat3x4.hpp"
+
76 #include "../mat4x2.hpp"
+
77 #include "../mat4x3.hpp"
+
78 #include "../mat4x4.hpp"
+
79 #include <cstring>
+
80 
+
81 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+
82 # pragma message("GLM: GLM_GTC_type_ptr extension included")
+
83 #endif
+
84 
+
85 namespace glm
+
86 {
89 
-
90  template <
-
91  typename X1, typename Y1, typename Z1,
-
92  typename X2, typename Y2, typename Z2,
-
93  typename X3, typename Y3, typename Z3,
-
94  typename X4, typename Y4, typename Z4>
-
95  GLM_FUNC_DECL explicit tmat4x3(
-
96  X1 const & x1, Y1 const & y1, Z1 const & z1,
-
97  X2 const & x2, Y2 const & y2, Z2 const & z2,
-
98  X3 const & x3, Y3 const & y3, Z3 const & z3,
-
99  X4 const & x4, Y4 const & y4, Z4 const & z4);
-
100 
-
101  template <typename V1, typename V2, typename V3, typename V4>
-
102  GLM_FUNC_DECL explicit tmat4x3(
-
103  tvec3<V1, P> const & v1,
-
104  tvec3<V2, P> const & v2,
-
105  tvec3<V3, P> const & v3,
-
106  tvec3<V4, P> const & v4);
-
107 
-
108  // Matrix conversions
-
109  template <typename U, precision Q>
-
110  GLM_FUNC_DECL explicit tmat4x3(tmat4x3<U, Q> const & m);
-
111 
-
112  GLM_FUNC_DECL explicit tmat4x3(tmat2x2<T, P> const & x);
-
113  GLM_FUNC_DECL explicit tmat4x3(tmat3x3<T, P> const & x);
-
114  GLM_FUNC_DECL explicit tmat4x3(tmat4x4<T, P> const & x);
-
115  GLM_FUNC_DECL explicit tmat4x3(tmat2x3<T, P> const & x);
-
116  GLM_FUNC_DECL explicit tmat4x3(tmat3x2<T, P> const & x);
-
117  GLM_FUNC_DECL explicit tmat4x3(tmat2x4<T, P> const & x);
-
118  GLM_FUNC_DECL explicit tmat4x3(tmat4x2<T, P> const & x);
-
119  GLM_FUNC_DECL explicit tmat4x3(tmat3x4<T, P> const & x);
-
120 
-
121  // Accesses
-
122  GLM_FUNC_DECL col_type & operator[](size_type i);
-
123  GLM_FUNC_DECL col_type const & operator[](size_type i) const;
+
92  template<typename genType>
+
93  GLM_FUNC_DECL typename genType::value_type const * value_ptr(genType const & vec);
+
94 
+
97  template<typename T>
+
98  GLM_FUNC_DECL tvec2<T, defaultp> make_vec2(T const * const ptr);
+
99 
+
102  template<typename T>
+
103  GLM_FUNC_DECL tvec3<T, defaultp> make_vec3(T const * const ptr);
+
104 
+
107  template<typename T>
+
108  GLM_FUNC_DECL tvec4<T, defaultp> make_vec4(T const * const ptr);
+
109 
+
112  template<typename T>
+
113  GLM_FUNC_DECL tmat2x2<T, defaultp> make_mat2x2(T const * const ptr);
+
114 
+
117  template<typename T>
+
118  GLM_FUNC_DECL tmat2x3<T, defaultp> make_mat2x3(T const * const ptr);
+
119 
+
122  template<typename T>
+
123  GLM_FUNC_DECL tmat2x4<T, defaultp> make_mat2x4(T const * const ptr);
124 
-
125  // Unary updatable operators
-
126  GLM_FUNC_DECL tmat4x3<T, P> & operator= (tmat4x3<T, P> const & m);
-
127  template <typename U>
-
128  GLM_FUNC_DECL tmat4x3<T, P> & operator= (tmat4x3<U, P> const & m);
-
129  template <typename U>
-
130  GLM_FUNC_DECL tmat4x3<T, P> & operator+= (U s);
-
131  template <typename U>
-
132  GLM_FUNC_DECL tmat4x3<T, P> & operator+= (tmat4x3<U, P> const & m);
-
133  template <typename U>
-
134  GLM_FUNC_DECL tmat4x3<T, P> & operator-= (U s);
-
135  template <typename U>
-
136  GLM_FUNC_DECL tmat4x3<T, P> & operator-= (tmat4x3<U, P> const & m);
-
137  template <typename U>
-
138  GLM_FUNC_DECL tmat4x3<T, P> & operator*= (U s);
-
139  template <typename U>
-
140  GLM_FUNC_DECL tmat4x3<T, P> & operator/= (U s);
-
141 
-
143  // Increment and decrement operators
+
127  template<typename T>
+
128  GLM_FUNC_DECL tmat3x2<T, defaultp> make_mat3x2(T const * const ptr);
+
129 
+
132  template<typename T>
+
133  GLM_FUNC_DECL tmat3x3<T, defaultp> make_mat3x3(T const * const ptr);
+
134 
+
137  template<typename T>
+
138  GLM_FUNC_DECL tmat3x4<T, defaultp> make_mat3x4(T const * const ptr);
+
139 
+
142  template<typename T>
+
143  GLM_FUNC_DECL tmat4x2<T, defaultp> make_mat4x2(T const * const ptr);
144 
-
145  GLM_FUNC_DECL tmat4x3<T, P> & operator++ ();
-
146  GLM_FUNC_DECL tmat4x3<T, P> & operator-- ();
-
147  GLM_FUNC_DECL tmat4x3<T, P> operator++(int);
-
148  GLM_FUNC_DECL tmat4x3<T, P> operator--(int);
-
149  };
-
150 
-
151  // Binary operators
-
152  template <typename T, precision P>
-
153  GLM_FUNC_DECL tmat4x3<T, P> operator+ (
-
154  tmat4x3<T, P> const & m,
-
155  T const & s);
-
156 
-
157  template <typename T, precision P>
-
158  GLM_FUNC_DECL tmat4x3<T, P> operator+ (
-
159  tmat4x3<T, P> const & m1,
-
160  tmat4x3<T, P> const & m2);
-
161 
-
162  template <typename T, precision P>
-
163  GLM_FUNC_DECL tmat4x3<T, P> operator- (
-
164  tmat4x3<T, P> const & m,
-
165  T const & s);
-
166 
-
167  template <typename T, precision P>
-
168  GLM_FUNC_DECL tmat4x3<T, P> operator- (
-
169  tmat4x3<T, P> const & m1,
-
170  tmat4x3<T, P> const & m2);
-
171 
-
172  template <typename T, precision P>
-
173  GLM_FUNC_DECL tmat4x3<T, P> operator* (
-
174  tmat4x3<T, P> const & m,
-
175  T const & s);
-
176 
-
177  template <typename T, precision P>
-
178  GLM_FUNC_DECL tmat4x3<T, P> operator* (
-
179  T const & s,
-
180  tmat4x3<T, P> const & m);
-
181 
-
182  template <typename T, precision P>
-
183  GLM_FUNC_DECL typename tmat4x3<T, P>::col_type operator* (
-
184  tmat4x3<T, P> const & m,
-
185  typename tmat4x3<T, P>::row_type const & v);
-
186 
-
187  template <typename T, precision P>
-
188  GLM_FUNC_DECL typename tmat4x3<T, P>::row_type operator* (
-
189  typename tmat4x3<T, P>::col_type const & v,
-
190  tmat4x3<T, P> const & m);
-
191 
-
192  template <typename T, precision P>
-
193  GLM_FUNC_DECL tmat2x3<T, P> operator* (
-
194  tmat4x3<T, P> const & m1,
-
195  tmat2x4<T, P> const & m2);
-
196 
-
197  template <typename T, precision P>
-
198  GLM_FUNC_DECL tmat3x3<T, P> operator* (
-
199  tmat4x3<T, P> const & m1,
-
200  tmat3x4<T, P> const & m2);
-
201 
-
202  template <typename T, precision P>
-
203  GLM_FUNC_DECL tmat4x3<T, P> operator* (
-
204  tmat4x3<T, P> const & m1,
-
205  tmat4x4<T, P> const & m2);
-
206 
-
207  template <typename T, precision P>
-
208  GLM_FUNC_DECL tmat4x3<T, P> operator/ (
-
209  tmat4x3<T, P> const & m,
-
210  T const & s);
-
211 
-
212  template <typename T, precision P>
-
213  GLM_FUNC_DECL tmat4x3<T, P> operator/ (
-
214  T const & s,
-
215  tmat4x3<T, P> const & m);
-
216 
-
217  // Unary constant operators
-
218  template <typename T, precision P>
-
219  GLM_FUNC_DECL tmat4x3<T, P> const operator- (
-
220  tmat4x3<T, P> const & m);
-
221 
-
222 }//namespace detail
-
223 }//namespace glm
-
224 
-
225 #ifndef GLM_EXTERNAL_TEMPLATE
-
226 #include "type_mat4x3.inl"
-
227 #endif //GLM_EXTERNAL_TEMPLATE
-
228 
-
229 #endif//glm_core_type_mat4x3
-
GLM_FUNC_DECL genType::value_type length(genType const &x)
Returns the length of x, i.e., sqrt(x * x).
+
147  template<typename T>
+
148  GLM_FUNC_DECL tmat4x3<T, defaultp> make_mat4x3(T const * const ptr);
+
149 
+
152  template<typename T>
+
153  GLM_FUNC_DECL tmat4x4<T, defaultp> make_mat4x4(T const * const ptr);
+
154 
+
157  template<typename T>
+
158  GLM_FUNC_DECL tmat2x2<T, defaultp> make_mat2(T const * const ptr);
+
159 
+
162  template<typename T>
+
163  GLM_FUNC_DECL tmat3x3<T, defaultp> make_mat3(T const * const ptr);
+
164 
+
167  template<typename T>
+
168  GLM_FUNC_DECL tmat4x4<T, defaultp> make_mat4(T const * const ptr);
+
169 
+
172  template<typename T>
+
173  GLM_FUNC_DECL tquat<T, defaultp> make_quat(T const * const ptr);
+
174 
+
176 }//namespace glm
+
177 
+
178 #include "type_ptr.inl"
+
GLM_FUNC_DECL tmat2x3< T, defaultp > make_mat2x3(T const *const ptr)
Build a matrix from a pointer.
+
GLM_FUNC_DECL tmat2x2< T, defaultp > make_mat2x2(T const *const ptr)
Build a matrix from a pointer.
+
GLM_FUNC_DECL tmat3x3< T, defaultp > make_mat3x3(T const *const ptr)
Build a matrix from a pointer.
+
GLM_FUNC_DECL tvec3< T, defaultp > make_vec3(T const *const ptr)
Build a vector from a pointer.
+
GLM_FUNC_DECL tmat4x3< T, defaultp > make_mat4x3(T const *const ptr)
Build a matrix from a pointer.
+
GLM_FUNC_DECL tmat4x4< T, defaultp > make_mat4x4(T const *const ptr)
Build a matrix from a pointer.
+
GLM_FUNC_DECL tmat3x2< T, defaultp > make_mat3x2(T const *const ptr)
Build a matrix from a pointer.
+
GLM_FUNC_DECL tmat3x4< T, defaultp > make_mat3x4(T const *const ptr)
Build a matrix from a pointer.
+
GLM_FUNC_DECL tquat< T, defaultp > make_quat(T const *const ptr)
Build a quaternion from a pointer.
+
GLM_FUNC_DECL tmat4x4< T, defaultp > make_mat4(T const *const ptr)
Build a matrix from a pointer.
+
GLM_FUNC_DECL tvec4< T, defaultp > make_vec4(T const *const ptr)
Build a vector from a pointer.
+
GLM_FUNC_DECL tmat2x4< T, defaultp > make_mat2x4(T const *const ptr)
Build a matrix from a pointer.
+
GLM_FUNC_DECL tmat2x2< T, defaultp > make_mat2(T const *const ptr)
Build a matrix from a pointer.
+
GLM_FUNC_DECL genType::value_type const * value_ptr(genType const &vec)
Return the constant address to the data of the input parameter.
+
Definition: _noise.hpp:39
+
GLM_FUNC_DECL tmat4x2< T, defaultp > make_mat4x2(T const *const ptr)
Build a matrix from a pointer.
+
GLM_FUNC_DECL tvec2< T, defaultp > make_vec2(T const *const ptr)
Build a vector from a pointer.
+
GLM_FUNC_DECL tmat3x3< T, defaultp > make_mat3(T const *const ptr)
Build a matrix from a pointer.
diff --git a/doc/api/a00131.html b/doc/api/a00131.html new file mode 100644 index 00000000..5d49c505 --- /dev/null +++ b/doc/api/a00131.html @@ -0,0 +1,199 @@ + + + + + + +0.9.6: type_vec.hpp File Reference + + + + + + +
+
+ + + + + + + +
+
0.9.6 +
+
+
+ + + + + +
+
+ +
+
type_vec.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Typedefs

typedef highp_bvec2 bvec2
 
typedef highp_bvec3 bvec3
 
typedef highp_bvec4 bvec4
 
typedef highp_dvec2 dvec2
 
typedef highp_dvec3 dvec3
 
typedef highp_dvec4 dvec4
 
typedef tvec2< bool, highp > highp_bvec2
 
typedef tvec3< bool, highp > highp_bvec3
 
typedef tvec4< bool, highp > highp_bvec4
 
typedef tvec2< double, highp > highp_dvec2
 
typedef tvec3< double, highp > highp_dvec3
 
typedef tvec4< double, highp > highp_dvec4
 
typedef tvec2< int, highp > highp_ivec2
 
typedef tvec3< int, highp > highp_ivec3
 
typedef tvec4< int, highp > highp_ivec4
 
typedef tvec2< uint, highp > highp_uvec2
 
typedef tvec3< uint, highp > highp_uvec3
 
typedef tvec4< uint, highp > highp_uvec4
 
typedef tvec2< float, highp > highp_vec2
 
typedef tvec3< float, highp > highp_vec3
 
typedef tvec4< float, highp > highp_vec4
 
typedef highp_ivec2 ivec2
 
typedef highp_ivec3 ivec3
 
typedef highp_ivec4 ivec4
 
typedef tvec2< bool, lowp > lowp_bvec2
 
typedef tvec3< bool, lowp > lowp_bvec3
 
typedef tvec4< bool, lowp > lowp_bvec4
 
typedef tvec2< double, lowp > lowp_dvec2
 
typedef tvec3< double, lowp > lowp_dvec3
 
typedef tvec4< double, lowp > lowp_dvec4
 
typedef tvec2< int, lowp > lowp_ivec2
 
typedef tvec3< int, lowp > lowp_ivec3
 
typedef tvec4< int, lowp > lowp_ivec4
 
typedef tvec2< uint, lowp > lowp_uvec2
 
typedef tvec3< uint, lowp > lowp_uvec3
 
typedef tvec4< uint, lowp > lowp_uvec4
 
typedef tvec2< float, lowp > lowp_vec2
 
typedef tvec3< float, lowp > lowp_vec3
 
typedef tvec4< float, lowp > lowp_vec4
 
typedef tvec2< bool, mediump > mediump_bvec2
 
typedef tvec3< bool, mediump > mediump_bvec3
 
typedef tvec4< bool, mediump > mediump_bvec4
 
typedef tvec2< double, mediump > mediump_dvec2
 
typedef tvec3< double, mediump > mediump_dvec3
 
typedef tvec4< double, mediump > mediump_dvec4
 
typedef tvec2< int, mediump > mediump_ivec2
 
typedef tvec3< int, mediump > mediump_ivec3
 
typedef tvec4< int, mediump > mediump_ivec4
 
typedef tvec2< uint, mediump > mediump_uvec2
 
typedef tvec3< uint, mediump > mediump_uvec3
 
typedef tvec4< uint, mediump > mediump_uvec4
 
typedef tvec2< float, mediump > mediump_vec2
 
typedef tvec3< float, mediump > mediump_vec3
 
typedef tvec4< float, mediump > mediump_vec4
 
typedef highp_uvec2 uvec2
 
typedef highp_uvec3 uvec3
 
typedef highp_uvec4 uvec4
 
typedef highp_vec2 vec2
 
typedef highp_vec3 vec3
 
typedef highp_vec4 vec4
 
+

Detailed Description

+

OpenGL Mathematics (glm.g-truc.net)

+

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+

GLM Core

+
Date
2010-01-26 / 2014-10-05
+
Author
Christophe Riccio
+ +

Definition in file type_vec.hpp.

+
+ + + + diff --git a/doc/api/a00131_source.html b/doc/api/a00131_source.html index f999786f..091598a9 100644 --- a/doc/api/a00131_source.html +++ b/doc/api/a00131_source.html @@ -3,8 +3,8 @@ - -GLM: type_mat4x4.hpp Source File + +0.9.6: type_vec.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,260 +41,301 @@
-
type_mat4x4.hpp
+
type_vec.hpp
-
1 
-
29 #ifndef glm_core_type_mat4x4
-
30 #define glm_core_type_mat4x4
-
31 
-
32 #include "../fwd.hpp"
-
33 #include "type_vec4.hpp"
-
34 #include "type_mat.hpp"
-
35 #if(GLM_HAS_INITIALIZER_LISTS)
-
36 # include <initializer_list>
-
37 #endif //GLM_HAS_INITIALIZER_LISTS
-
38 #include <limits>
-
39 #include <cstddef>
-
40 
-
41 namespace glm{
-
42 namespace detail
-
43 {
-
44  template <typename T, precision P>
-
45  struct tmat4x4
-
46  {
-
47  enum ctor{_null};
-
48  typedef T value_type;
-
49  typedef std::size_t size_type;
-
50  typedef tvec4<T, P> col_type;
-
51  typedef tvec4<T, P> row_type;
-
52  typedef tmat4x4<T, P> type;
-
53  typedef tmat4x4<T, P> transpose_type;
-
54 
-
55  GLM_FUNC_DECL GLM_CONSTEXPR length_t length() const;
-
56 
-
57  template <typename U, precision Q>
-
58  friend tvec4<U, Q> operator/(tmat4x4<U, Q> const & m, tvec4<U, Q> const & v);
-
59  template <typename U, precision Q>
-
60  friend tvec4<U, Q> operator/(tvec4<U, Q> const & v, tmat4x4<U, Q> const & m);
-
61 
-
62  private:
-
64  col_type value[4];
-
65 
-
66  public:
-
67  // Constructors
-
68  GLM_FUNC_DECL tmat4x4();
-
69  GLM_FUNC_DECL tmat4x4(tmat4x4<T, P> const & m);
-
70  template <precision Q>
-
71  GLM_FUNC_DECL tmat4x4(tmat4x4<T, Q> const & m);
-
72 
-
73  GLM_FUNC_DECL explicit tmat4x4(
-
74  ctor Null);
-
75  GLM_FUNC_DECL explicit tmat4x4(
-
76  T const & x);
-
77  GLM_FUNC_DECL explicit tmat4x4(
-
78  T const & x0, T const & y0, T const & z0, T const & w0,
-
79  T const & x1, T const & y1, T const & z1, T const & w1,
-
80  T const & x2, T const & y2, T const & z2, T const & w2,
-
81  T const & x3, T const & y3, T const & z3, T const & w3);
-
82  GLM_FUNC_DECL explicit tmat4x4(
-
83  col_type const & v0,
-
84  col_type const & v1,
-
85  col_type const & v2,
-
86  col_type const & v3);
-
87 
-
88 #if(GLM_HAS_INITIALIZER_LISTS)
-
89  template <typename U>
-
90  GLM_FUNC_DECL tmat4x4(std::initializer_list<U> m);
+Go to the documentation of this file.
1 
+
33 #pragma once
+
34 
+
35 #include "precision.hpp"
+
36 #include "type_int.hpp"
+
37 
+
38 namespace glm
+
39 {
+
40  template <typename T, precision P> struct tvec1;
+
41  template <typename T, precision P> struct tvec2;
+
42  template <typename T, precision P> struct tvec3;
+
43  template <typename T, precision P> struct tvec4;
+
44 
+
45  typedef tvec1<float, highp> highp_vec1_t;
+
46  typedef tvec1<float, mediump> mediump_vec1_t;
+
47  typedef tvec1<float, lowp> lowp_vec1_t;
+
48  typedef tvec1<double, highp> highp_dvec1_t;
+
49  typedef tvec1<double, mediump> mediump_dvec1_t;
+
50  typedef tvec1<double, lowp> lowp_dvec1_t;
+
51  typedef tvec1<int, highp> highp_ivec1_t;
+
52  typedef tvec1<int, mediump> mediump_ivec1_t;
+
53  typedef tvec1<int, lowp> lowp_ivec1_t;
+
54  typedef tvec1<uint, highp> highp_uvec1_t;
+
55  typedef tvec1<uint, mediump> mediump_uvec1_t;
+
56  typedef tvec1<uint, lowp> lowp_uvec1_t;
+
57  typedef tvec1<bool, highp> highp_bvec1_t;
+
58  typedef tvec1<bool, mediump> mediump_bvec1_t;
+
59  typedef tvec1<bool, lowp> lowp_bvec1_t;
+
60 
+
63 
+
69  typedef tvec2<float, highp> highp_vec2;
+
70 
+
76  typedef tvec2<float, mediump> mediump_vec2;
+
77 
+
83  typedef tvec2<float, lowp> lowp_vec2;
+
84 
+
90  typedef tvec2<double, highp> highp_dvec2;
91 
-
92  GLM_FUNC_DECL tmat4x4(std::initializer_list<tvec4<T, P> > m);
-
93 #endif//GLM_HAS_INITIALIZER_LISTS
-
94 
-
96  // Conversions
-
97 
-
98  template <
-
99  typename X1, typename Y1, typename Z1, typename W1,
-
100  typename X2, typename Y2, typename Z2, typename W2,
-
101  typename X3, typename Y3, typename Z3, typename W3,
-
102  typename X4, typename Y4, typename Z4, typename W4>
-
103  GLM_FUNC_DECL explicit tmat4x4(
-
104  X1 const & x1, Y1 const & y1, Z1 const & z1, W1 const & w1,
-
105  X2 const & x2, Y2 const & y2, Z2 const & z2, W2 const & w2,
-
106  X3 const & x3, Y3 const & y3, Z3 const & z3, W3 const & w3,
-
107  X4 const & x4, Y4 const & y4, Z4 const & z4, W4 const & w4);
-
108 
-
109  template <typename V1, typename V2, typename V3, typename V4>
-
110  GLM_FUNC_DECL explicit tmat4x4(
-
111  tvec4<V1, P> const & v1,
-
112  tvec4<V2, P> const & v2,
-
113  tvec4<V3, P> const & v3,
-
114  tvec4<V4, P> const & v4);
-
115 
-
116  // Matrix conversions
-
117  template <typename U, precision Q>
-
118  GLM_FUNC_DECL explicit tmat4x4(tmat4x4<U, Q> const & m);
+
97  typedef tvec2<double, mediump> mediump_dvec2;
+
98 
+
104  typedef tvec2<double, lowp> lowp_dvec2;
+
105 
+
111  typedef tvec2<int, highp> highp_ivec2;
+
112 
+
118  typedef tvec2<int, mediump> mediump_ivec2;
119 
-
120  GLM_FUNC_DECL explicit tmat4x4(tmat2x2<T, P> const & x);
-
121  GLM_FUNC_DECL explicit tmat4x4(tmat3x3<T, P> const & x);
-
122  GLM_FUNC_DECL explicit tmat4x4(tmat2x3<T, P> const & x);
-
123  GLM_FUNC_DECL explicit tmat4x4(tmat3x2<T, P> const & x);
-
124  GLM_FUNC_DECL explicit tmat4x4(tmat2x4<T, P> const & x);
-
125  GLM_FUNC_DECL explicit tmat4x4(tmat4x2<T, P> const & x);
-
126  GLM_FUNC_DECL explicit tmat4x4(tmat3x4<T, P> const & x);
-
127  GLM_FUNC_DECL explicit tmat4x4(tmat4x3<T, P> const & x);
-
128 
-
129  // Accesses
-
130  GLM_FUNC_DECL col_type & operator[](length_t i);
-
131  GLM_FUNC_DECL col_type const & operator[](length_t i) const;
-
132 
-
133  // Unary updatable operators
-
134  GLM_FUNC_DECL tmat4x4<T, P> & operator= (tmat4x4<T, P> const & m);
-
135  template <typename U>
-
136  GLM_FUNC_DECL tmat4x4<T, P> & operator= (tmat4x4<U, P> const & m);
-
137  template <typename U>
-
138  GLM_FUNC_DECL tmat4x4<T, P> & operator+= (U s);
-
139  template <typename U>
-
140  GLM_FUNC_DECL tmat4x4<T, P> & operator+= (tmat4x4<U, P> const & m);
-
141  template <typename U>
-
142  GLM_FUNC_DECL tmat4x4<T, P> & operator-= (U s);
-
143  template <typename U>
-
144  GLM_FUNC_DECL tmat4x4<T, P> & operator-= (tmat4x4<U, P> const & m);
-
145  template <typename U>
-
146  GLM_FUNC_DECL tmat4x4<T, P> & operator*= (U s);
-
147  template <typename U>
-
148  GLM_FUNC_DECL tmat4x4<T, P> & operator*= (tmat4x4<U, P> const & m);
-
149  template <typename U>
-
150  GLM_FUNC_DECL tmat4x4<T, P> & operator/= (U s);
-
151  template <typename U>
-
152  GLM_FUNC_DECL tmat4x4<T, P> & operator/= (tmat4x4<U, P> const & m);
-
153 
-
155  // Increment and decrement operators
-
156 
-
157  GLM_FUNC_DECL tmat4x4<T, P> & operator++ ();
-
158  GLM_FUNC_DECL tmat4x4<T, P> & operator-- ();
-
159  GLM_FUNC_DECL tmat4x4<T, P> operator++(int);
-
160  GLM_FUNC_DECL tmat4x4<T, P> operator--(int);
-
161  };
-
162 
-
163  template <typename T, precision P>
-
164  GLM_FUNC_DECL tmat4x4<T, P> compute_inverse_mat4(tmat4x4<T, P> const & m);
-
165 
-
166  // Binary operators
-
167  template <typename T, precision P>
-
168  GLM_FUNC_DECL tmat4x4<T, P> operator+ (
-
169  tmat4x4<T, P> const & m,
-
170  T const & s);
+
125  typedef tvec2<int, lowp> lowp_ivec2;
+
126 
+
132  typedef tvec2<uint, highp> highp_uvec2;
+
133 
+
139  typedef tvec2<uint, mediump> mediump_uvec2;
+
140 
+
146  typedef tvec2<uint, lowp> lowp_uvec2;
+
147 
+
153  typedef tvec2<bool, highp> highp_bvec2;
+
154 
+
160  typedef tvec2<bool, mediump> mediump_bvec2;
+
161 
+
167  typedef tvec2<bool, lowp> lowp_bvec2;
+
168 
+
170 
171 
-
172  template <typename T, precision P>
-
173  GLM_FUNC_DECL tmat4x4<T, P> operator+ (
-
174  T const & s,
-
175  tmat4x4<T, P> const & m);
-
176 
-
177  template <typename T, precision P>
-
178  GLM_FUNC_DECL tmat4x4<T, P> operator+ (
-
179  tmat4x4<T, P> const & m1,
-
180  tmat4x4<T, P> const & m2);
+
174 
+
180  typedef tvec3<float, highp> highp_vec3;
181 
-
182  template <typename T, precision P>
-
183  GLM_FUNC_DECL tmat4x4<T, P> operator- (
-
184  tmat4x4<T, P> const & m,
-
185  T const & s);
-
186 
-
187  template <typename T, precision P>
-
188  GLM_FUNC_DECL tmat4x4<T, P> operator- (
-
189  T const & s,
-
190  tmat4x4<T, P> const & m);
-
191 
-
192  template <typename T, precision P>
-
193  GLM_FUNC_DECL tmat4x4<T, P> operator- (
-
194  tmat4x4<T, P> const & m1,
-
195  tmat4x4<T, P> const & m2);
-
196 
-
197  template <typename T, precision P>
-
198  GLM_FUNC_DECL tmat4x4<T, P> operator* (
-
199  tmat4x4<T, P> const & m,
-
200  T const & s);
-
201 
-
202  template <typename T, precision P>
-
203  GLM_FUNC_DECL tmat4x4<T, P> operator* (
-
204  T const & s,
-
205  tmat4x4<T, P> const & m);
-
206 
-
207  template <typename T, precision P>
-
208  GLM_FUNC_DECL typename tmat4x4<T, P>::col_type operator* (
-
209  tmat4x4<T, P> const & m,
-
210  typename tmat4x4<T, P>::row_type const & v);
-
211 
-
212  template <typename T, precision P>
-
213  GLM_FUNC_DECL typename tmat4x4<T, P>::row_type operator* (
-
214  typename tmat4x4<T, P>::col_type const & v,
-
215  tmat4x4<T, P> const & m);
-
216 
-
217  template <typename T, precision P>
-
218  GLM_FUNC_DECL tmat2x4<T, P> operator* (
-
219  tmat4x4<T, P> const & m1,
-
220  tmat2x4<T, P> const & m2);
-
221 
-
222  template <typename T, precision P>
-
223  GLM_FUNC_DECL tmat3x4<T, P> operator* (
-
224  tmat4x4<T, P> const & m1,
-
225  tmat3x4<T, P> const & m2);
-
226 
-
227  template <typename T, precision P>
-
228  GLM_FUNC_DECL tmat4x4<T, P> operator* (
-
229  tmat4x4<T, P> const & m1,
-
230  tmat4x4<T, P> const & m2);
-
231 
-
232  template <typename T, precision P>
-
233  GLM_FUNC_DECL tmat4x4<T, P> operator/ (
-
234  tmat4x4<T, P> const & m,
-
235  T const & s);
-
236 
-
237  template <typename T, precision P>
-
238  GLM_FUNC_DECL tmat4x4<T, P> operator/ (
-
239  T const & s,
-
240  tmat4x4<T, P> const & m);
-
241 
-
242  template <typename T, precision P>
-
243  GLM_FUNC_DECL typename tmat4x4<T, P>::col_type operator/ (
-
244  tmat4x4<T, P> const & m,
-
245  typename tmat4x4<T, P>::row_type const & v);
-
246 
-
247  template <typename T, precision P>
-
248  GLM_FUNC_DECL typename tmat4x4<T, P>::row_type operator/ (
-
249  typename tmat4x4<T, P>::col_type & v,
-
250  tmat4x4<T, P> const & m);
+
187  typedef tvec3<float, mediump> mediump_vec3;
+
188 
+
194  typedef tvec3<float, lowp> lowp_vec3;
+
195 
+
201  typedef tvec3<double, highp> highp_dvec3;
+
202 
+
208  typedef tvec3<double, mediump> mediump_dvec3;
+
209 
+
215  typedef tvec3<double, lowp> lowp_dvec3;
+
216 
+
222  typedef tvec3<int, highp> highp_ivec3;
+
223 
+
229  typedef tvec3<int, mediump> mediump_ivec3;
+
230 
+
236  typedef tvec3<int, lowp> lowp_ivec3;
+
237 
+
243  typedef tvec3<uint, highp> highp_uvec3;
+
244 
+
250  typedef tvec3<uint, mediump> mediump_uvec3;
251 
-
252  template <typename T, precision P>
-
253  GLM_FUNC_DECL tmat4x4<T, P> operator/ (
-
254  tmat4x4<T, P> const & m1,
-
255  tmat4x4<T, P> const & m2);
-
256 
-
257  // Unary constant operators
-
258  template <typename T, precision P>
-
259  GLM_FUNC_DECL tmat4x4<T, P> const operator- (
-
260  tmat4x4<T, P> const & m);
-
261 
-
262 }//namespace detail
-
263 }//namespace glm
+
257  typedef tvec3<uint, lowp> lowp_uvec3;
+
258 
+
263  typedef tvec3<bool, highp> highp_bvec3;
264 
-
265 #ifndef GLM_EXTERNAL_TEMPLATE
-
266 #include "type_mat4x4.inl"
-
267 #endif//GLM_EXTERNAL_TEMPLATE
-
268 
-
269 #endif//glm_core_type_mat4x4
-
GLM_FUNC_DECL genType::value_type length(genType const &x)
Returns the length of x, i.e., sqrt(x * x).
+
269  typedef tvec3<bool, mediump> mediump_bvec3;
+
270 
+
275  typedef tvec3<bool, lowp> lowp_bvec3;
+
276 
+
278 
+
281 
+
286  typedef tvec4<float, highp> highp_vec4;
+
287 
+
292  typedef tvec4<float, mediump> mediump_vec4;
+
293 
+
298  typedef tvec4<float, lowp> lowp_vec4;
+
299 
+
304  typedef tvec4<double, highp> highp_dvec4;
+
305 
+
310  typedef tvec4<double, mediump> mediump_dvec4;
+
311 
+
316  typedef tvec4<double, lowp> lowp_dvec4;
+
317 
+
322  typedef tvec4<int, highp> highp_ivec4;
+
323 
+
328  typedef tvec4<int, mediump> mediump_ivec4;
+
329 
+
334  typedef tvec4<int, lowp> lowp_ivec4;
+
335 
+
340  typedef tvec4<uint, highp> highp_uvec4;
+
341 
+
346  typedef tvec4<uint, mediump> mediump_uvec4;
+
347 
+
352  typedef tvec4<uint, lowp> lowp_uvec4;
+
353 
+
358  typedef tvec4<bool, highp> highp_bvec4;
+
359 
+
364  typedef tvec4<bool, mediump> mediump_bvec4;
+
365 
+
370  typedef tvec4<bool, lowp> lowp_bvec4;
+
371 
+
373 
+
376 
+
378  // Default float definition
+
379 
+
380 #if(defined(GLM_PRECISION_LOWP_FLOAT))
+
381  typedef lowp_vec2 vec2;
+
382  typedef lowp_vec3 vec3;
+
383  typedef lowp_vec4 vec4;
+
384 #elif(defined(GLM_PRECISION_MEDIUMP_FLOAT))
+
385  typedef mediump_vec2 vec2;
+
386  typedef mediump_vec3 vec3;
+
387  typedef mediump_vec4 vec4;
+
388 #else //defined(GLM_PRECISION_HIGHP_FLOAT)
+
389  typedef highp_vec2 vec2;
+
393 
+
397  typedef highp_vec3 vec3;
+
398 
+
402  typedef highp_vec4 vec4;
+
403 #endif//GLM_PRECISION
+
404 
+
406  // Default double definition
+
407 
+
408 #if(defined(GLM_PRECISION_LOWP_DOUBLE))
+
409  typedef lowp_dvec2 dvec2;
+
410  typedef lowp_dvec3 dvec3;
+
411  typedef lowp_dvec4 dvec4;
+
412 #elif(defined(GLM_PRECISION_MEDIUMP_DOUBLE))
+
413  typedef mediump_dvec2 dvec2;
+
414  typedef mediump_dvec3 dvec3;
+
415  typedef mediump_dvec4 dvec4;
+
416 #else //defined(GLM_PRECISION_HIGHP_DOUBLE)
+
417  typedef highp_dvec2 dvec2;
+
421 
+
425  typedef highp_dvec3 dvec3;
+
426 
+
430  typedef highp_dvec4 dvec4;
+
431 #endif//GLM_PRECISION
+
432 
+
434  // Signed integer definition
+
435 
+
436 #if(defined(GLM_PRECISION_LOWP_INT))
+
437  typedef lowp_ivec2 ivec2;
+
438  typedef lowp_ivec3 ivec3;
+
439  typedef lowp_ivec4 ivec4;
+
440 #elif(defined(GLM_PRECISION_MEDIUMP_INT))
+
441  typedef mediump_ivec2 ivec2;
+
442  typedef mediump_ivec3 ivec3;
+
443  typedef mediump_ivec4 ivec4;
+
444 #else //defined(GLM_PRECISION_HIGHP_INT)
+
445  typedef highp_ivec2 ivec2;
+
449 
+
453  typedef highp_ivec3 ivec3;
+
454 
+
458  typedef highp_ivec4 ivec4;
+
459 #endif//GLM_PRECISION
+
460 
+
462  // Unsigned integer definition
+
463 
+
464 #if(defined(GLM_PRECISION_LOWP_UINT))
+
465  typedef lowp_uvec2 uvec2;
+
466  typedef lowp_uvec3 uvec3;
+
467  typedef lowp_uvec4 uvec4;
+
468 #elif(defined(GLM_PRECISION_MEDIUMP_UINT))
+
469  typedef mediump_uvec2 uvec2;
+
470  typedef mediump_uvec3 uvec3;
+
471  typedef mediump_uvec4 uvec4;
+
472 #else //defined(GLM_PRECISION_HIGHP_UINT)
+
473  typedef highp_uvec2 uvec2;
+
477 
+
481  typedef highp_uvec3 uvec3;
+
482 
+
486  typedef highp_uvec4 uvec4;
+
487 #endif//GLM_PRECISION
+
488 
+
490  // Boolean definition
+
491 
+
492 #if(defined(GLM_PRECISION_LOWP_BOOL))
+
493  typedef lowp_bvec2 bvec2;
+
494  typedef lowp_bvec3 bvec3;
+
495  typedef lowp_bvec4 bvec4;
+
496 #elif(defined(GLM_PRECISION_MEDIUMP_BOOL))
+
497  typedef mediump_bvec2 bvec2;
+
498  typedef mediump_bvec3 bvec3;
+
499  typedef mediump_bvec4 bvec4;
+
500 #else //defined(GLM_PRECISION_HIGHP_BOOL)
+
501  typedef highp_bvec2 bvec2;
+
505 
+
509  typedef highp_bvec3 bvec3;
+
510 
+
514  typedef highp_bvec4 bvec4;
+
515 #endif//GLM_PRECISION
+
516 
+
518 }//namespace glm
+
tvec3< bool, lowp > lowp_bvec3
3 components vector of low precision bool numbers.
Definition: type_vec.hpp:275
+
tvec4< uint, mediump > mediump_uvec4
4 components vector of medium precision unsigned integer numbers.
Definition: type_vec.hpp:346
+
OpenGL Mathematics (glm.g-truc.net)
+
tvec4< uint, lowp > lowp_uvec4
4 components vector of low precision unsigned integer numbers.
Definition: type_vec.hpp:352
+
tvec2< bool, lowp > lowp_bvec2
2 components vector of low precision bool numbers.
Definition: type_vec.hpp:167
+
tvec4< double, lowp > lowp_dvec4
4 components vector of low double-precision floating-point numbers.
Definition: type_vec.hpp:316
+
tvec2< uint, lowp > lowp_uvec2
2 components vector of low precision unsigned integer numbers.
Definition: type_vec.hpp:146
+
tvec3< int, highp > highp_ivec3
3 components vector of high precision signed integer numbers.
Definition: type_vec.hpp:222
+
tvec4< float, lowp > lowp_vec4
4 components vector of low single-precision floating-point numbers.
Definition: type_vec.hpp:298
+
highp_vec4 vec4
4 components vector of floating-point numbers.
Definition: type_vec.hpp:402
+
tvec4< double, mediump > mediump_dvec4
4 components vector of medium double-precision floating-point numbers.
Definition: type_vec.hpp:310
+
tvec2< float, lowp > lowp_vec2
2 components vector of low single-precision floating-point numbers.
Definition: type_vec.hpp:83
+
tvec3< uint, mediump > mediump_uvec3
3 components vector of medium precision unsigned integer numbers.
Definition: type_vec.hpp:250
+
highp_ivec4 ivec4
4 components vector of signed integer numbers.
Definition: type_vec.hpp:458
+
highp_bvec4 bvec4
4 components vector of boolean.
Definition: type_vec.hpp:514
+
tvec4< bool, highp > highp_bvec4
4 components vector of high precision bool numbers.
Definition: type_vec.hpp:358
+
tvec3< uint, highp > highp_uvec3
3 components vector of high precision unsigned integer numbers.
Definition: type_vec.hpp:243
+
tvec2< bool, mediump > mediump_bvec2
2 components vector of medium precision bool numbers.
Definition: type_vec.hpp:160
+
tvec4< float, mediump > mediump_vec4
4 components vector of medium single-precision floating-point numbers.
Definition: type_vec.hpp:292
+
highp_bvec2 bvec2
2 components vector of boolean.
Definition: type_vec.hpp:504
+
OpenGL Mathematics (glm.g-truc.net)
+
tvec4< int, highp > highp_ivec4
4 components vector of high precision signed integer numbers.
Definition: type_vec.hpp:322
+
tvec3< int, lowp > lowp_ivec3
3 components vector of low precision signed integer numbers.
Definition: type_vec.hpp:236
+
tvec3< float, highp > highp_vec3
3 components vector of high single-precision floating-point numbers.
Definition: type_vec.hpp:180
+
highp_uvec3 uvec3
3 components vector of unsigned integer numbers.
Definition: type_vec.hpp:481
+
tvec4< int, mediump > mediump_ivec4
4 components vector of medium precision signed integer numbers.
Definition: type_vec.hpp:328
+
tvec4< bool, mediump > mediump_bvec4
4 components vector of medium precision bool numbers.
Definition: type_vec.hpp:364
+
tvec3< uint, lowp > lowp_uvec3
3 components vector of low precision unsigned integer numbers.
Definition: type_vec.hpp:257
+
tvec4< bool, lowp > lowp_bvec4
4 components vector of low precision bool numbers.
Definition: type_vec.hpp:370
+
highp_dvec2 dvec2
2 components vector of double-precision floating-point numbers.
Definition: type_vec.hpp:420
+
tvec3< bool, mediump > mediump_bvec3
3 components vector of medium precision bool numbers.
Definition: type_vec.hpp:269
+
tvec3< double, mediump > mediump_dvec3
3 components vector of medium double-precision floating-point numbers.
Definition: type_vec.hpp:208
+
tvec3< float, lowp > lowp_vec3
3 components vector of low single-precision floating-point numbers.
Definition: type_vec.hpp:194
+
tvec2< float, highp > highp_vec2
2 components vector of high single-precision floating-point numbers.
Definition: type_vec.hpp:69
+
tvec3< double, highp > highp_dvec3
3 components vector of high double-precision floating-point numbers.
Definition: type_vec.hpp:201
+
tvec2< int, highp > highp_ivec2
2 components vector of high precision signed integer numbers.
Definition: type_vec.hpp:111
+
tvec4< double, highp > highp_dvec4
4 components vector of high double-precision floating-point numbers.
Definition: type_vec.hpp:304
+
tvec2< int, mediump > mediump_ivec2
2 components vector of medium precision signed integer numbers.
Definition: type_vec.hpp:118
+
tvec2< bool, highp > highp_bvec2
2 components vector of high precision bool numbers.
Definition: type_vec.hpp:153
+
tvec2< double, lowp > lowp_dvec2
2 components vector of low double-precision floating-point numbers.
Definition: type_vec.hpp:104
+
tvec3< double, lowp > lowp_dvec3
3 components vector of low double-precision floating-point numbers.
Definition: type_vec.hpp:215
+
highp_uvec2 uvec2
2 components vector of unsigned integer numbers.
Definition: type_vec.hpp:476
+
tvec2< uint, highp > highp_uvec2
2 components vector of high precision unsigned integer numbers.
Definition: type_vec.hpp:132
+
tvec2< uint, mediump > mediump_uvec2
2 components vector of medium precision unsigned integer numbers.
Definition: type_vec.hpp:139
+
highp_bvec3 bvec3
3 components vector of boolean.
Definition: type_vec.hpp:509
+
tvec2< double, mediump > mediump_dvec2
2 components vector of medium double-precision floating-point numbers.
Definition: type_vec.hpp:97
+
tvec4< float, highp > highp_vec4
4 components vector of high single-precision floating-point numbers.
Definition: type_vec.hpp:286
+
highp_ivec3 ivec3
3 components vector of signed integer numbers.
Definition: type_vec.hpp:453
+
tvec4< uint, highp > highp_uvec4
4 components vector of high precision unsigned integer numbers.
Definition: type_vec.hpp:340
+
tvec4< int, lowp > lowp_ivec4
4 components vector of low precision signed integer numbers.
Definition: type_vec.hpp:334
+
Definition: _noise.hpp:39
+
tvec3< bool, highp > highp_bvec3
3 components vector of high precision bool numbers.
Definition: type_vec.hpp:263
+
tvec3< int, mediump > mediump_ivec3
3 components vector of medium precision signed integer numbers.
Definition: type_vec.hpp:229
+
highp_vec3 vec3
3 components vector of floating-point numbers.
Definition: type_vec.hpp:397
+
tvec2< double, highp > highp_dvec2
2 components vector of high double-precision floating-point numbers.
Definition: type_vec.hpp:90
+
highp_dvec3 dvec3
3 components vector of double-precision floating-point numbers.
Definition: type_vec.hpp:425
+
highp_vec2 vec2
2 components vector of floating-point numbers.
Definition: type_vec.hpp:392
+
tvec3< float, mediump > mediump_vec3
3 components vector of medium single-precision floating-point numbers.
Definition: type_vec.hpp:187
+
tvec2< int, lowp > lowp_ivec2
2 components vector of low precision signed integer numbers.
Definition: type_vec.hpp:125
+
highp_ivec2 ivec2
2 components vector of signed integer numbers.
Definition: type_vec.hpp:448
+
highp_uvec4 uvec4
4 components vector of unsigned integer numbers.
Definition: type_vec.hpp:486
+
tvec2< float, mediump > mediump_vec2
2 components vector of medium single-precision floating-point numbers.
Definition: type_vec.hpp:76
+
highp_dvec4 dvec4
4 components vector of double-precision floating-point numbers.
Definition: type_vec.hpp:430
diff --git a/doc/api/a00132.html b/doc/api/a00132.html index ec3466a3..a2b886e3 100644 --- a/doc/api/a00132.html +++ b/doc/api/a00132.html @@ -3,8 +3,8 @@ - -GLM: type_precision.hpp File Reference + +0.9.6: type_vec1.hpp File Reference @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,45 +41,33 @@
-
-Namespaces
-
type_precision.hpp File Reference
+
type_vec1.hpp File Reference

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 

Detailed Description

OpenGL Mathematics (glm.g-truc.net)

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTC_type_precision

-
Date
2009-06-04 / 2011-12-07
-
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
-
-gtc_half_float (dependence)
-
-GLM_GTC_quaternion (dependence)
+

GLM Core

+
Date
2008-08-25 / 2011-06-15
+
Author
Christophe Riccio
-

Definition in file type_precision.hpp.

+

Definition in file type_vec1.hpp.

diff --git a/doc/api/a00132_source.html b/doc/api/a00132_source.html index 5010e893..97c8d6a0 100644 --- a/doc/api/a00132_source.html +++ b/doc/api/a00132_source.html @@ -3,8 +3,8 @@ - -GLM: type_precision.hpp Source File + +0.9.6: type_vec1.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,649 +41,296 @@
-
type_precision.hpp
+
type_vec1.hpp
Go to the documentation of this file.
1 
-
43 #ifndef GLM_GTC_type_precision
-
44 #define GLM_GTC_type_precision
-
45 
-
46 // Dependency:
-
47 #include "../gtc/quaternion.hpp"
-
48 #include "../vec2.hpp"
-
49 #include "../vec3.hpp"
-
50 #include "../vec4.hpp"
-
51 #include "../mat2x2.hpp"
-
52 #include "../mat2x3.hpp"
-
53 #include "../mat2x4.hpp"
-
54 #include "../mat3x2.hpp"
-
55 #include "../mat3x3.hpp"
-
56 #include "../mat3x4.hpp"
-
57 #include "../mat4x2.hpp"
-
58 #include "../mat4x3.hpp"
-
59 #include "../mat4x4.hpp"
+
33 #pragma once
+
34 
+
35 #include "../fwd.hpp"
+
36 #include "type_vec.hpp"
+
37 #ifdef GLM_SWIZZLE
+
38 # if GLM_HAS_ANONYMOUS_UNION
+
39 # include "_swizzle.hpp"
+
40 # else
+
41 # include "_swizzle_func.hpp"
+
42 # endif
+
43 #endif //GLM_SWIZZLE
+
44 #include <cstddef>
+
45 
+
46 namespace glm
+
47 {
+
48  template <typename T, precision P = defaultp>
+
49  struct tvec1
+
50  {
+
52  // Implementation detail
+
53 
+
54  typedef tvec1<T, P> type;
+
55  typedef tvec1<bool, P> bool_type;
+
56  typedef T value_type;
+
57 
+
59  // Data
60 
-
61 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
62 # pragma message("GLM: GLM_GTC_type_precision extension included")
-
63 #endif
-
64 
-
65 namespace glm
-
66 {
-
68  // Signed int vector types
-
69 
-
72 
-
75  typedef detail::int8 lowp_int8;
-
76 
-
79  typedef detail::int16 lowp_int16;
-
80 
-
83  typedef detail::int32 lowp_int32;
-
84 
-
87  typedef detail::int64 lowp_int64;
-
88 
-
91  typedef detail::int8 lowp_int8_t;
-
92 
- -
96 
- -
100 
-
103  typedef detail::int64 lowp_int64_t;
-
104 
-
107  typedef detail::int8 lowp_i8;
-
108 
-
111  typedef detail::int16 lowp_i16;
-
112 
-
115  typedef detail::int32 lowp_i32;
+
61 # if GLM_HAS_ANONYMOUS_UNION
+
62  union
+
63  {
+
64  T x;
+
65  T r;
+
66  T s;
+
67 /*
+
68 # ifdef GLM_SWIZZLE
+
69  _GLM_SWIZZLE1_2_MEMBERS(T, P, tvec2, x)
+
70  _GLM_SWIZZLE1_2_MEMBERS(T, P, tvec2, r)
+
71  _GLM_SWIZZLE1_2_MEMBERS(T, P, tvec2, s)
+
72  _GLM_SWIZZLE1_3_MEMBERS(T, P, tvec3, x)
+
73  _GLM_SWIZZLE1_3_MEMBERS(T, P, tvec3, r)
+
74  _GLM_SWIZZLE1_3_MEMBERS(T, P, tvec3, s)
+
75  _GLM_SWIZZLE1_4_MEMBERS(T, P, tvec4, x)
+
76  _GLM_SWIZZLE1_4_MEMBERS(T, P, tvec4, r)
+
77  _GLM_SWIZZLE1_4_MEMBERS(T, P, tvec4, s)
+
78 # endif//GLM_SWIZZLE*/
+
79  };
+
80 # else
+
81  union {T x, r, s;};
+
82 /*
+
83 # ifdef GLM_SWIZZLE
+
84  GLM_SWIZZLE_GEN_VEC_FROM_VEC1(T, P, tvec2, tvec2, tvec3, tvec4)
+
85 # endif//GLM_SWIZZLE*/
+
86 # endif
+
87 
+
89  // Accesses
+
90 
+
91 # ifdef GLM_FORCE_SIZE_FUNC
+
92  typedef size_t size_type;
+
94  GLM_FUNC_DECL GLM_CONSTEXPR size_type size() const;
+
95 
+
96  GLM_FUNC_DECL T & operator[](size_type i);
+
97  GLM_FUNC_DECL T const & operator[](size_type i) const;
+
98 # else
+
99  typedef length_t length_type;
+
101  GLM_FUNC_DECL GLM_CONSTEXPR length_type length() const;
+
102 
+
103  GLM_FUNC_DECL T & operator[](length_type i);
+
104  GLM_FUNC_DECL T const & operator[](length_type i) const;
+
105 # endif//GLM_FORCE_SIZE_FUNC
+
106 
+
108  // Implicit basic constructors
+
109 
+
110  GLM_FUNC_DECL tvec1();
+
111  template <precision Q>
+
112  GLM_FUNC_DECL tvec1(tvec1<T, Q> const & v);
+
113 
+
115  // Explicit basic constructors
116 
-
119  typedef detail::int64 lowp_i64;
-
120 
-
123  typedef detail::int8 mediump_int8;
-
124 
- -
128 
- +
117  GLM_FUNC_DECL explicit tvec1(ctor);
+
118  GLM_FUNC_DECL explicit tvec1(T const & s);
+
119 
+
121  // Conversion vector constructors
+
122 
+
124  template <typename U, precision Q>
+
125  GLM_FUNC_DECL explicit tvec1(tvec2<U, Q> const & v);
+
127  template <typename U, precision Q>
+
128  GLM_FUNC_DECL explicit tvec1(tvec3<U, Q> const & v);
+
130  template <typename U, precision Q>
+
131  GLM_FUNC_DECL explicit tvec1(tvec4<U, Q> const & v);
132 
- -
136 
- -
140 
- -
144 
- -
148 
- -
152 
-
155  typedef detail::int8 mediump_i8;
-
156 
-
159  typedef detail::int16 mediump_i16;
-
160 
-
163  typedef detail::int32 mediump_i32;
-
164 
-
167  typedef detail::int64 mediump_i64;
-
168 
-
171  typedef detail::int8 highp_int8;
-
172 
-
175  typedef detail::int16 highp_int16;
-
176 
-
179  typedef detail::int32 highp_int32;
-
180 
-
183  typedef detail::int64 highp_int64;
-
184 
-
187  typedef detail::int8 highp_int8_t;
-
188 
- -
192 
- -
196 
- -
200 
-
203  typedef detail::int8 highp_i8;
-
204 
-
207  typedef detail::int16 highp_i16;
-
208 
-
211  typedef detail::int32 highp_i32;
+
133 # ifdef GLM_FORCE_EXPLICIT_CTOR
+
134  template <typename U, precision Q>
+
136  GLM_FUNC_DECL explicit tvec1(tvec1<U, Q> const & v);
+
137 # else
+
138  template <typename U, precision Q>
+
140  GLM_FUNC_DECL tvec1(tvec1<U, Q> const & v);
+
141 # endif
+
142 
+
144  // Swizzle constructors
+
145 
+
146 # if(GLM_HAS_ANONYMOUS_UNION && defined(GLM_SWIZZLE))
+
147  template <int E0>
+
148  GLM_FUNC_DECL tvec1(detail::_swizzle<1, T, P, tvec1<T, P>, E0, -1,-2,-3> const & that)
+
149  {
+
150  *this = that();
+
151  }
+
152 # endif//(GLM_HAS_ANONYMOUS_UNION && defined(GLM_SWIZZLE))
+
153 
+
155  // Unary arithmetic operators
+
156 
+
157  template <typename U>
+
158  GLM_FUNC_DECL tvec1<T, P> & operator=(tvec1<U, P> const & v);
+
159  template <typename U>
+
160  GLM_FUNC_DECL tvec1<T, P> & operator+=(U const & s);
+
161  template <typename U>
+
162  GLM_FUNC_DECL tvec1<T, P> & operator+=(tvec1<U, P> const & v);
+
163  template <typename U>
+
164  GLM_FUNC_DECL tvec1<T, P> & operator-=(U const & s);
+
165  template <typename U>
+
166  GLM_FUNC_DECL tvec1<T, P> & operator-=(tvec1<U, P> const & v);
+
167  template <typename U>
+
168  GLM_FUNC_DECL tvec1<T, P> & operator*=(U const & s);
+
169  template <typename U>
+
170  GLM_FUNC_DECL tvec1<T, P> & operator*=(tvec1<U, P> const & v);
+
171  template <typename U>
+
172  GLM_FUNC_DECL tvec1<T, P> & operator/=(U const & s);
+
173  template <typename U>
+
174  GLM_FUNC_DECL tvec1<T, P> & operator/=(tvec1<U, P> const & v);
+
175 
+
177  // Increment and decrement operators
+
178 
+
179  GLM_FUNC_DECL tvec1<T, P> & operator++();
+
180  GLM_FUNC_DECL tvec1<T, P> & operator--();
+
181  GLM_FUNC_DECL tvec1<T, P> operator++(int);
+
182  GLM_FUNC_DECL tvec1<T, P> operator--(int);
+
183 
+
185  // Unary bit operators
+
186 
+
187  template <typename U>
+
188  GLM_FUNC_DECL tvec1<T, P> & operator%=(U const & s);
+
189  template <typename U>
+
190  GLM_FUNC_DECL tvec1<T, P> & operator%=(tvec1<U, P> const & v);
+
191  template <typename U>
+
192  GLM_FUNC_DECL tvec1<T, P> & operator&=(U const & s);
+
193  template <typename U>
+
194  GLM_FUNC_DECL tvec1<T, P> & operator&=(tvec1<U, P> const & v);
+
195  template <typename U>
+
196  GLM_FUNC_DECL tvec1<T, P> & operator|=(U const & s);
+
197  template <typename U>
+
198  GLM_FUNC_DECL tvec1<T, P> & operator|=(tvec1<U, P> const & v);
+
199  template <typename U>
+
200  GLM_FUNC_DECL tvec1<T, P> & operator^=(U const & s);
+
201  template <typename U>
+
202  GLM_FUNC_DECL tvec1<T, P> & operator^=(tvec1<U, P> const & v);
+
203  template <typename U>
+
204  GLM_FUNC_DECL tvec1<T, P> & operator<<=(U const & s);
+
205  template <typename U>
+
206  GLM_FUNC_DECL tvec1<T, P> & operator<<=(tvec1<U, P> const & v);
+
207  template <typename U>
+
208  GLM_FUNC_DECL tvec1<T, P> & operator>>=(U const & s);
+
209  template <typename U>
+
210  GLM_FUNC_DECL tvec1<T, P> & operator>>=(tvec1<U, P> const & v);
+
211  };
212 
-
215  typedef detail::int64 highp_i64;
-
216 
-
217 
-
220  typedef detail::int8 int8;
-
221 
-
224  typedef detail::int16 int16;
+
213 
+
214  template <typename T, precision P>
+
215  GLM_FUNC_DECL tvec1<T, P> operator+(tvec1<T, P> const & v, T const & s);
+
216 
+
217  template <typename T, precision P>
+
218  GLM_FUNC_DECL tvec1<T, P> operator+(T const & s, tvec1<T, P> const & v);
+
219 
+
220  template <typename T, precision P>
+
221  GLM_FUNC_DECL tvec1<T, P> operator+(tvec1<T, P> const & v1, tvec1<T, P> const & v2);
+
222 
+
223  template <typename T, precision P>
+
224  GLM_FUNC_DECL tvec1<T, P> operator-(tvec1<T, P> const & v, T const & s);
225 
-
228  typedef detail::int32 int32;
-
229 
-
232  typedef detail::int64 int64;
-
233 
-
236  typedef detail::int8 int8_t;
-
237 
-
240  typedef detail::int16 int16_t;
-
241 
-
244  typedef detail::int32 int32_t;
-
245 
-
248  typedef detail::int64 int64_t;
+
226  template <typename T, precision P>
+
227  GLM_FUNC_DECL tvec1<T, P> operator-(T const & s, tvec1<T, P> const & v);
+
228 
+
229  template <typename T, precision P>
+
230  GLM_FUNC_DECL tvec1<T, P> operator- (tvec1<T, P> const & v1, tvec1<T, P> const & v2);
+
231 
+
232  template <typename T, precision P>
+
233  GLM_FUNC_DECL tvec1<T, P> operator*(tvec1<T, P> const & v, T const & s);
+
234 
+
235  template <typename T, precision P>
+
236  GLM_FUNC_DECL tvec1<T, P> operator*(T const & s, tvec1<T, P> const & v);
+
237 
+
238  template <typename T, precision P>
+
239  GLM_FUNC_DECL tvec1<T, P> operator*(tvec1<T, P> const & v1, tvec1<T, P> const & v2);
+
240 
+
241  template <typename T, precision P>
+
242  GLM_FUNC_DECL tvec1<T, P> operator/(tvec1<T, P> const & v, T const & s);
+
243 
+
244  template <typename T, precision P>
+
245  GLM_FUNC_DECL tvec1<T, P> operator/(T const & s, tvec1<T, P> const & v);
+
246 
+
247  template <typename T, precision P>
+
248  GLM_FUNC_DECL tvec1<T, P> operator/(tvec1<T, P> const & v1, tvec1<T, P> const & v2);
249 
-
252  typedef detail::int8 i8;
-
253 
-
256  typedef detail::int16 i16;
-
257 
-
260  typedef detail::int32 i32;
+
250  template <typename T, precision P>
+
251  GLM_FUNC_DECL tvec1<T, P> operator-(tvec1<T, P> const & v);
+
252 
+
253  template <typename T, precision P>
+
254  GLM_FUNC_DECL bool operator==(tvec1<T, P> const & v1, tvec1<T, P> const & v2);
+
255 
+
256  template <typename T, precision P>
+
257  GLM_FUNC_DECL bool operator!=(tvec1<T, P> const & v1, tvec1<T, P> const & v2);
+
258 
+
259  template <typename T, precision P>
+
260  GLM_FUNC_DECL tvec1<T, P> operator%(tvec1<T, P> const & v, T const & s);
261 
-
264  typedef detail::int64 i64;
-
265 
-
266 
-
269  typedef detail::tvec1<i8, defaultp> i8vec1;
-
270 
-
273  typedef detail::tvec2<i8, defaultp> i8vec2;
-
274 
-
277  typedef detail::tvec3<i8, defaultp> i8vec3;
-
278 
-
281  typedef detail::tvec4<i8, defaultp> i8vec4;
+
262  template <typename T, precision P>
+
263  GLM_FUNC_DECL tvec1<T, P> operator%(T const & s, tvec1<T, P> const & v);
+
264 
+
265  template <typename T, precision P>
+
266  GLM_FUNC_DECL tvec1<T, P> operator%(tvec1<T, P> const & v1, tvec1<T, P> const & v2);
+
267 
+
268  template <typename T, precision P>
+
269  GLM_FUNC_DECL tvec1<T, P> operator&(tvec1<T, P> const & v, T const & s);
+
270 
+
271  template <typename T, precision P>
+
272  GLM_FUNC_DECL tvec1<T, P> operator&(T const & s, tvec1<T, P> const & v);
+
273 
+
274  template <typename T, precision P>
+
275  GLM_FUNC_DECL tvec1<T, P> operator&(tvec1<T, P> const & v1, tvec1<T, P> const & v2);
+
276 
+
277  template <typename T, precision P>
+
278  GLM_FUNC_DECL tvec1<T, P> operator|(tvec1<T, P> const & v, T const & s);
+
279 
+
280  template <typename T, precision P>
+
281  GLM_FUNC_DECL tvec1<T, P> operator|(T const & s, tvec1<T, P> const & v);
282 
-
283 
-
286  typedef detail::tvec1<i16, defaultp> i16vec1;
-
287 
-
290  typedef detail::tvec2<i16, defaultp> i16vec2;
+
283  template <typename T, precision P>
+
284  GLM_FUNC_DECL tvec1<T, P> operator|(tvec1<T, P> const & v1, tvec1<T, P> const & v2);
+
285 
+
286  template <typename T, precision P>
+
287  GLM_FUNC_DECL tvec1<T, P> operator^(tvec1<T, P> const & v, T const & s);
+
288 
+
289  template <typename T, precision P>
+
290  GLM_FUNC_DECL tvec1<T, P> operator^(T const & s, tvec1<T, P> const & v);
291 
-
294  typedef detail::tvec3<i16, defaultp> i16vec3;
-
295 
-
298  typedef detail::tvec4<i16, defaultp> i16vec4;
-
299 
+
292  template <typename T, precision P>
+
293  GLM_FUNC_DECL tvec1<T, P> operator^(tvec1<T, P> const & v1, tvec1<T, P> const & v2);
+
294 
+
295  template <typename T, precision P>
+
296  GLM_FUNC_DECL tvec1<T, P> operator<<(tvec1<T, P> const & v, T const & s);
+
297 
+
298  template <typename T, precision P>
+
299  GLM_FUNC_DECL tvec1<T, P> operator<<(T const & s, tvec1<T, P> const & v);
300 
-
303  typedef detail::tvec1<i32, defaultp> i32vec1;
-
304 
-
307  typedef detail::tvec2<i32, defaultp> i32vec2;
-
308 
-
311  typedef detail::tvec3<i32, defaultp> i32vec3;
+
301  template <typename T, precision P>
+
302  GLM_FUNC_DECL tvec1<T, P> operator<<(tvec1<T, P> const & v1, tvec1<T, P> const & v2);
+
303 
+
304  template <typename T, precision P>
+
305  GLM_FUNC_DECL tvec1<T, P> operator>>(tvec1<T, P> const & v, T const & s);
+
306 
+
307  template <typename T, precision P>
+
308  GLM_FUNC_DECL tvec1<T, P> operator>>(T const & s, tvec1<T, P> const & v);
+
309 
+
310  template <typename T, precision P>
+
311  GLM_FUNC_DECL tvec1<T, P> operator>>(tvec1<T, P> const & v1, tvec1<T, P> const & v2);
312 
-
315  typedef detail::tvec4<i32, defaultp> i32vec4;
+
313  template <typename T, precision P>
+
314  GLM_FUNC_DECL tvec1<T, P> operator~(tvec1<T, P> const & v);
+
315 }//namespace glm
316 
-
317 
-
320  typedef detail::tvec1<i64, defaultp> i64vec1;
-
321 
-
324  typedef detail::tvec2<i64, defaultp> i64vec2;
-
325 
-
328  typedef detail::tvec3<i64, defaultp> i64vec3;
-
329 
-
332  typedef detail::tvec4<i64, defaultp> i64vec4;
-
333 
-
334 
-
336  // Unsigned int vector types
-
337 
-
340  typedef detail::uint8 lowp_uint8;
-
341 
-
344  typedef detail::uint16 lowp_uint16;
-
345 
-
348  typedef detail::uint32 lowp_uint32;
-
349 
-
352  typedef detail::uint64 lowp_uint64;
-
353 
-
356  typedef detail::uint8 lowp_uint8_t;
-
357 
- -
361 
- -
365 
- -
369 
-
372  typedef detail::uint8 lowp_u8;
-
373 
-
376  typedef detail::uint16 lowp_u16;
-
377 
-
380  typedef detail::uint32 lowp_u32;
-
381 
-
384  typedef detail::uint64 lowp_u64;
-
385 
- -
389 
- -
393 
- -
397 
- -
401 
- -
405 
- -
409 
- -
413 
- -
417 
-
420  typedef detail::uint8 mediump_u8;
-
421 
-
424  typedef detail::uint16 mediump_u16;
-
425 
-
428  typedef detail::uint32 mediump_u32;
-
429 
-
432  typedef detail::uint64 mediump_u64;
-
433 
-
436  typedef detail::uint8 highp_uint8;
-
437 
- -
441 
- -
445 
- -
449 
- -
453 
- -
457 
- -
461 
- -
465 
-
468  typedef detail::uint8 highp_u8;
-
469 
-
472  typedef detail::uint16 highp_u16;
-
473 
-
476  typedef detail::uint32 highp_u32;
-
477 
-
480  typedef detail::uint64 highp_u64;
-
481 
-
484  typedef detail::uint8 uint8;
-
485 
-
488  typedef detail::uint16 uint16;
-
489 
-
492  typedef detail::uint32 uint32;
-
493 
-
496  typedef detail::uint64 uint64;
-
497 
-
500  typedef detail::uint8 uint8_t;
-
501 
-
504  typedef detail::uint16 uint16_t;
-
505 
-
508  typedef detail::uint32 uint32_t;
-
509 
-
512  typedef detail::uint64 uint64_t;
-
513 
-
516  typedef detail::uint8 u8;
-
517 
-
520  typedef detail::uint16 u16;
-
521 
-
524  typedef detail::uint32 u32;
-
525 
-
528  typedef detail::uint64 u64;
-
529 
-
530 
-
531 
-
534  typedef detail::tvec1<u8, defaultp> u8vec1;
-
535 
-
538  typedef detail::tvec2<u8, defaultp> u8vec2;
-
539 
-
542  typedef detail::tvec3<u8, defaultp> u8vec3;
-
543 
-
546  typedef detail::tvec4<u8, defaultp> u8vec4;
-
547 
-
548 
-
551  typedef detail::tvec1<u16, defaultp> u16vec1;
-
552 
-
555  typedef detail::tvec2<u16, defaultp> u16vec2;
-
556 
-
559  typedef detail::tvec3<u16, defaultp> u16vec3;
-
560 
-
563  typedef detail::tvec4<u16, defaultp> u16vec4;
-
564 
-
565 
-
568  typedef detail::tvec1<u32, defaultp> u32vec1;
-
569 
-
572  typedef detail::tvec2<u32, defaultp> u32vec2;
-
573 
-
576  typedef detail::tvec3<u32, defaultp> u32vec3;
-
577 
-
580  typedef detail::tvec4<u32, defaultp> u32vec4;
-
581 
-
582 
-
585  typedef detail::tvec1<u64, defaultp> u64vec1;
-
586 
-
589  typedef detail::tvec2<u64, defaultp> u64vec2;
-
590 
-
593  typedef detail::tvec3<u64, defaultp> u64vec3;
-
594 
-
597  typedef detail::tvec4<u64, defaultp> u64vec4;
-
598 
-
599 
-
601  // Float vector types
-
602 
-
605  typedef detail::float32 float32;
-
606 
-
609  typedef detail::float64 float64;
-
610 
-
611 
-
614  typedef detail::float32 float32_t;
-
615 
-
618  typedef detail::float64 float64_t;
-
619 
-
620 
-
623  typedef float32 f32;
-
624 
-
627  typedef float64 f64;
-
628 
-
629 
-
632  typedef detail::tvec1<float, defaultp> fvec1;
-
633 
-
636  typedef detail::tvec2<float, defaultp> fvec2;
-
637 
-
640  typedef detail::tvec3<float, defaultp> fvec3;
-
641 
-
644  typedef detail::tvec4<float, defaultp> fvec4;
-
645 
-
646 
-
649  typedef detail::tvec1<f32, defaultp> f32vec1;
-
650 
-
653  typedef detail::tvec2<f32, defaultp> f32vec2;
-
654 
-
657  typedef detail::tvec3<f32, defaultp> f32vec3;
-
658 
-
661  typedef detail::tvec4<f32, defaultp> f32vec4;
-
662 
-
663 
-
666  typedef detail::tvec1<f64, defaultp> f64vec1;
-
667 
-
670  typedef detail::tvec2<f64, defaultp> f64vec2;
-
671 
-
674  typedef detail::tvec3<f64, defaultp> f64vec3;
-
675 
-
678  typedef detail::tvec4<f64, defaultp> f64vec4;
-
679 
-
680 
-
682  // Float matrix types
-
683 
-
686  //typedef detail::tmat1x1<f32> fmat1;
-
687 
-
690  typedef detail::tmat2x2<f32, defaultp> fmat2;
-
691 
-
694  typedef detail::tmat3x3<f32, defaultp> fmat3;
-
695 
-
698  typedef detail::tmat4x4<f32, defaultp> fmat4;
-
699 
-
700 
-
703  //typedef f32 fmat1x1;
-
704 
-
707  typedef detail::tmat2x2<f32, defaultp> fmat2x2;
-
708 
-
711  typedef detail::tmat2x3<f32, defaultp> fmat2x3;
-
712 
-
715  typedef detail::tmat2x4<f32, defaultp> fmat2x4;
-
716 
-
719  typedef detail::tmat3x2<f32, defaultp> fmat3x2;
-
720 
-
723  typedef detail::tmat3x3<f32, defaultp> fmat3x3;
-
724 
-
727  typedef detail::tmat3x4<f32, defaultp> fmat3x4;
-
728 
-
731  typedef detail::tmat4x2<f32, defaultp> fmat4x2;
-
732 
-
735  typedef detail::tmat4x3<f32, defaultp> fmat4x3;
-
736 
-
739  typedef detail::tmat4x4<f32, defaultp> fmat4x4;
-
740 
-
741 
-
744  //typedef detail::tmat1x1<f32, defaultp> f32mat1;
-
745 
-
748  typedef detail::tmat2x2<f32, defaultp> f32mat2;
-
749 
-
752  typedef detail::tmat3x3<f32, defaultp> f32mat3;
-
753 
-
756  typedef detail::tmat4x4<f32, defaultp> f32mat4;
-
757 
-
758 
-
761  //typedef f32 f32mat1x1;
-
762 
-
765  typedef detail::tmat2x2<f32, defaultp> f32mat2x2;
-
766 
-
769  typedef detail::tmat2x3<f32, defaultp> f32mat2x3;
-
770 
-
773  typedef detail::tmat2x4<f32, defaultp> f32mat2x4;
-
774 
-
777  typedef detail::tmat3x2<f32, defaultp> f32mat3x2;
-
778 
-
781  typedef detail::tmat3x3<f32, defaultp> f32mat3x3;
-
782 
-
785  typedef detail::tmat3x4<f32, defaultp> f32mat3x4;
-
786 
-
789  typedef detail::tmat4x2<f32, defaultp> f32mat4x2;
-
790 
-
793  typedef detail::tmat4x3<f32, defaultp> f32mat4x3;
-
794 
-
797  typedef detail::tmat4x4<f32, defaultp> f32mat4x4;
-
798 
-
799 
-
802  //typedef detail::tmat1x1<f64, defaultp> f64mat1;
-
803 
-
806  typedef detail::tmat2x2<f64, defaultp> f64mat2;
-
807 
-
810  typedef detail::tmat3x3<f64, defaultp> f64mat3;
-
811 
-
814  typedef detail::tmat4x4<f64, defaultp> f64mat4;
-
815 
-
816 
-
819  //typedef f64 f64mat1x1;
-
820 
-
823  typedef detail::tmat2x2<f64, defaultp> f64mat2x2;
-
824 
-
827  typedef detail::tmat2x3<f64, defaultp> f64mat2x3;
-
828 
-
831  typedef detail::tmat2x4<f64, defaultp> f64mat2x4;
-
832 
-
835  typedef detail::tmat3x2<f64, defaultp> f64mat3x2;
-
836 
-
839  typedef detail::tmat3x3<f64, defaultp> f64mat3x3;
-
840 
-
843  typedef detail::tmat3x4<f64, defaultp> f64mat3x4;
-
844 
-
847  typedef detail::tmat4x2<f64, defaultp> f64mat4x2;
-
848 
-
851  typedef detail::tmat4x3<f64, defaultp> f64mat4x3;
-
852 
-
855  typedef detail::tmat4x4<f64, defaultp> f64mat4x4;
-
856 
-
857 
-
859  // Quaternion types
-
860 
-
863  typedef detail::tquat<f32, defaultp> f32quat;
-
864 
-
867  typedef detail::tquat<f64, defaultp> f64quat;
-
868 
-
870 }//namespace glm
-
871 
-
872 #include "type_precision.inl"
-
873 
-
874 #endif//GLM_GTC_type_precision
-
highp_i16vec1 i16vec1
Default precision 16 bit signed integer scalar type.
Definition: fwd.hpp:468
-
highp_u16vec1 u16vec1
Default precision 16 bit unsigned integer scalar type.
Definition: fwd.hpp:1071
-
detail::int8 mediump_int8_t
Medium precision 8 bit signed integer type.
Definition: fwd.hpp:196
-
highp_f32mat4x3 fmat4x3
Default single-precision floating-point 4x3 matrix.
Definition: fwd.hpp:2397
-
detail::uint8 highp_uint8_t
Medium precision 8 bit unsigned integer type.
Definition: fwd.hpp:845
-
highp_f32vec1 fvec1
Default single-precision floating-point vector of 1 components.
Definition: fwd.hpp:2353
-
highp_u8vec3 u8vec3
Default precision 8 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:999
-
detail::int8 int8
8 bit signed integer type.
Definition: type_int.hpp:89
-
highp_i64vec2 i64vec2
Default precision 64 bit signed integer vector of 2 components type.
Definition: fwd.hpp:710
-
highp_u64vec3 u64vec3
Default precision 64 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:1317
-
detail::uint16 mediump_u16
Medium precision 16 bit unsigned integer type.
Definition: fwd.hpp:815
-
detail::uint64 lowp_uint64
Low precision 64 bit unsigned integer type.
Definition: fwd.hpp:739
-
detail::uint32 mediump_uint32
Medium precision 32 bit unsigned integer type.
Definition: fwd.hpp:787
-
detail::uint32 uint32
32 bit unsigned integer type.
Definition: type_int.hpp:96
-
detail::int16 int16
16 bit signed integer type.
Definition: type_int.hpp:90
-
highp_i32vec2 i32vec2
Default precision 32 bit signed integer vector of 2 components type.
Definition: fwd.hpp:551
-
detail::uint8 lowp_uint8_t
Low precision 8 bit unsigned integer type.
Definition: fwd.hpp:744
-
float float32
Default 32 bit single-precision floating-point scalar.
Definition: type_float.hpp:81
-
highp_u16vec3 u16vec3
Default precision 16 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:1079
-
detail::int32 highp_int32
High precision 32 bit signed integer type.
Definition: fwd.hpp:236
-
detail::uint8 uint8_t
8 bit unsigned integer type.
Definition: fwd.hpp:895
-
highp_f32vec3 f32vec3
Default single-precision floating-point vector of 3 components.
Definition: fwd.hpp:2431
-
highp_u64vec1 u64vec1
Default precision 64 bit unsigned integer scalar type.
Definition: fwd.hpp:1309
-
detail::int16 highp_int16_t
High precision 16 bit signed integer type.
Definition: fwd.hpp:248
-
highp_u8vec4 u8vec4
Default precision 8 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:1003
-
detail::int64 mediump_int64_t
Medium precision 64 bit signed integer type.
Definition: fwd.hpp:208
-
detail::int32 lowp_int32
Low precision 32 bit signed integer type.
Definition: fwd.hpp:140
-
detail::int64 int64_t
64 bit signed integer type.
Definition: fwd.hpp:305
-
highp_float32_t f32
Default 32 bit single-precision floating-point scalar.
Definition: fwd.hpp:1523
-
detail::uint32 uint32_t
32 bit unsigned integer type.
Definition: fwd.hpp:903
-
detail::uint8 u8
8 bit unsigned integer type.
Definition: fwd.hpp:911
-
detail::int64 int64
64 bit signed integer type.
Definition: type_int.hpp:92
-
detail::uint16 lowp_u16
Low precision 16 bit unsigned integer type.
Definition: fwd.hpp:765
-
highp_float32_t float32_t
Default 32 bit single-precision floating-point scalar.
Definition: fwd.hpp:1515
-
detail::int32 highp_int32_t
32 bit signed integer type.
Definition: fwd.hpp:252
-
highp_f32vec2 fvec2
Default single-precision floating-point vector of 2 components.
Definition: fwd.hpp:2357
-
highp_i16vec2 i16vec2
Default precision 16 bit signed integer vector of 2 components type.
Definition: fwd.hpp:472
-
detail::uint32 mediump_uint32_t
Medium precision 32 bit unsigned integer type.
Definition: fwd.hpp:803
-
detail::uint32 highp_uint32
Medium precision 32 bit unsigned integer type.
Definition: fwd.hpp:837
-
detail::uint16 mediump_uint16
Medium precision 16 bit unsigned integer type.
Definition: fwd.hpp:783
-
detail::uint16 lowp_uint16_t
Low precision 16 bit unsigned integer type.
Definition: fwd.hpp:748
-
detail::int16 mediump_int16
Medium precision 16 bit signed integer type.
Definition: fwd.hpp:184
-
highp_f64mat3x4 f64mat3x4
Default double-precision floating-point 3x4 matrix.
Definition: fwd.hpp:2566
-
detail::uint8 mediump_uint8_t
Medium precision 8 bit unsigned integer type.
Definition: fwd.hpp:795
-
detail::int32 i32
32 bit signed integer type.
Definition: fwd.hpp:317
-
highp_f64vec1 f64vec1
Default double-precision floating-point vector of 1 components.
Definition: fwd.hpp:2530
-
detail::int8 lowp_int8_t
Low precision 8 bit signed integer type.
Definition: fwd.hpp:148
-
detail::uint16 highp_uint16
Medium precision 16 bit unsigned integer type.
Definition: fwd.hpp:833
-
detail::uint64 mediump_u64
Medium precision 64 bit unsigned integer type.
Definition: fwd.hpp:823
-
detail::uint64 uint64_t
64 bit unsigned integer type.
Definition: fwd.hpp:907
-
highp_i64vec1 i64vec1
Default precision 64 bit signed integer scalar type.
Definition: fwd.hpp:706
-
detail::int16 int16_t
16 bit signed integer type.
Definition: fwd.hpp:297
-
highp_f32vec2 f32vec2
Default single-precision floating-point vector of 2 components.
Definition: fwd.hpp:2427
-
detail::uint16 highp_u16
Medium precision 16 bit unsigned integer type.
Definition: fwd.hpp:865
-
highp_f64mat4x4 f64mat4x4
Default double-precision floating-point 4x4 matrix.
Definition: fwd.hpp:2578
-
highp_f64mat4x2 f64mat4x2
Default double-precision floating-point 4x2 matrix.
Definition: fwd.hpp:2570
-
highp_f32vec3 fvec3
Default single-precision floating-point vector of 3 components.
Definition: fwd.hpp:2361
-
detail::int64 i64
64 bit signed integer type.
Definition: fwd.hpp:321
-
detail::int32 mediump_int32
Medium precision 32 bit signed integer type.
Definition: fwd.hpp:188
-
f32mat4x4 f32mat4
Default single-precision floating-point 4x4 matrix.
Definition: fwd.hpp:2483
-
detail::int64 lowp_i64
Low precision 64 bit signed integer type.
Definition: fwd.hpp:176
-
detail::uint64 uint64
64 bit unsigned integer type.
Definition: type_int.hpp:97
-
detail::int64 highp_int64
High precision 64 bit signed integer type.
Definition: fwd.hpp:240
-
detail::uint32 highp_uint32_t
Medium precision 32 bit unsigned integer type.
Definition: fwd.hpp:853
-
detail::int16 mediump_int16_t
Medium precision 16 bit signed integer type.
Definition: fwd.hpp:200
-
detail::int16 lowp_int16_t
Low precision 16 bit signed integer type.
Definition: fwd.hpp:152
-
highp_i8vec4 i8vec4
Default precision 8 bit signed integer vector of 4 components type.
Definition: fwd.hpp:400
-
detail::int32 mediump_int32_t
Medium precision 32 bit signed integer type.
Definition: fwd.hpp:204
-
highp_f32mat4x3 f32mat4x3
Default single-precision floating-point 4x3 matrix.
Definition: fwd.hpp:2467
-
detail::uint16 lowp_uint16
Low precision 16 bit unsigned integer type.
Definition: fwd.hpp:731
-
highp_f32mat3x4 f32mat3x4
Default single-precision floating-point 3x4 matrix.
Definition: fwd.hpp:2459
-
detail::int64 mediump_int64
Medium precision 64 bit signed integer type.
Definition: fwd.hpp:192
-
highp_u32vec2 u32vec2
Default precision 32 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:1154
-
detail::int32 lowp_int32_t
Low precision 32 bit signed integer type.
Definition: fwd.hpp:156
-
highp_f64mat2x3 f64mat2x3
Default double-precision floating-point 2x3 matrix.
Definition: fwd.hpp:2550
-
detail::uint16 highp_uint16_t
Medium precision 16 bit unsigned integer type.
Definition: fwd.hpp:849
-
highp_f32vec4 f32vec4
Default single-precision floating-point vector of 4 components.
Definition: fwd.hpp:2435
-
f64mat3x3 f64mat3
Default double-precision floating-point 3x3 matrix.
Definition: fwd.hpp:2586
-
detail::uint64 highp_uint64
Medium precision 64 bit unsigned integer type.
Definition: fwd.hpp:841
-
detail::uint64 highp_u64
Medium precision 64 bit unsigned integer type.
Definition: fwd.hpp:873
-
detail::uint8 lowp_uint8
Low precision 8 bit unsigned integer type.
Definition: fwd.hpp:727
-
highp_i16vec3 i16vec3
Default precision 16 bit signed integer vector of 3 components type.
Definition: fwd.hpp:476
-
detail::int16 i16
16 bit signed integer type.
Definition: fwd.hpp:313
-
detail::uint64 lowp_u64
Low precision 64 bit unsigned integer type.
Definition: fwd.hpp:773
-
detail::uint64 lowp_uint64_t
Low precision 64 bit unsigned integer type.
Definition: fwd.hpp:756
-
detail::int8 int8_t
8 bit signed integer type.
Definition: fwd.hpp:293
-
highp_f64vec3 f64vec3
Default double-precision floating-point vector of 3 components.
Definition: fwd.hpp:2538
-
fmat4x4 fmat4
Default single-precision floating-point 4x4 matrix.
Definition: fwd.hpp:2413
-
detail::uint16 uint16_t
16 bit unsigned integer type.
Definition: fwd.hpp:899
-
detail::uint8 lowp_u8
Low precision 8 bit unsigned integer type.
Definition: fwd.hpp:761
-
detail::int8 i8
8 bit signed integer type.
Definition: fwd.hpp:309
-
highp_f32mat4x2 f32mat4x2
Default single-precision floating-point 4x2 matrix.
Definition: fwd.hpp:2463
-
detail::uint32 lowp_uint32_t
Low precision 32 bit unsigned integer type.
Definition: fwd.hpp:752
-
detail::int32 int32
32 bit signed integer type.
Definition: type_int.hpp:91
-
highp_i64vec4 i64vec4
Default precision 64 bit signed integer vector of 4 components type.
Definition: fwd.hpp:718
-
f64mat4x4 f64mat4
Default double-precision floating-point 4x4 matrix.
Definition: fwd.hpp:2590
-
highp_f64mat2x4 f64mat2x4
Default double-precision floating-point 2x4 matrix.
Definition: fwd.hpp:2554
-
highp_f32mat4x2 fmat4x2
Default single-precision floating-point 4x2 matrix.
Definition: fwd.hpp:2393
-
highp_f32mat2x2 fmat2x2
Default single-precision floating-point 2x2 matrix.
Definition: fwd.hpp:2369
-
detail::int32 highp_i32
High precision 32 bit signed integer type.
Definition: fwd.hpp:268
-
fmat2x2 fmat2
Default single-precision floating-point 2x2 matrix.
Definition: fwd.hpp:2405
-
highp_u64vec2 u64vec2
Default precision 64 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:1313
-
detail::int64 highp_int64_t
High precision 64 bit signed integer type.
Definition: fwd.hpp:256
-
detail::int32 int32_t
32 bit signed integer type.
Definition: fwd.hpp:301
-
highp_f32mat3x2 f32mat3x2
Default single-precision floating-point 3x2 matrix.
Definition: fwd.hpp:2451
-
highp_f64mat4x3 f64mat4x3
Default double-precision floating-point 4x3 matrix.
Definition: fwd.hpp:2574
-
detail::int64 lowp_int64_t
Low precision 64 bit signed integer type.
Definition: fwd.hpp:160
-
detail::int8 mediump_int8
Medium precision 8 bit signed integer type.
Definition: fwd.hpp:180
-
detail::uint32 highp_u32
Medium precision 32 bit unsigned integer type.
Definition: fwd.hpp:869
-
highp_u16vec4 u16vec4
Default precision 16 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:1083
-
detail::int16 lowp_int16
Low precision 16 bit signed integer type.
Definition: fwd.hpp:136
-
detail::uint64 mediump_uint64_t
Medium precision 64 bit unsigned integer type.
Definition: fwd.hpp:807
-
highp_u16vec2 u16vec2
Default precision 16 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:1075
-
detail::uint64 u64
64 bit unsigned integer type.
Definition: fwd.hpp:923
-
f64mat2x2 f64mat2
Default double-precision floating-point 2x2 matrix.
Definition: fwd.hpp:2582
-
highp_u64vec4 u64vec4
Default precision 64 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:1321
-
detail::uint8 mediump_u8
Medium precision 8 bit unsigned integer type.
Definition: fwd.hpp:811
-
highp_f32mat4x4 f32mat4x4
Default single-precision floating-point 4x4 matrix.
Definition: fwd.hpp:2471
-
highp_f32mat2x3 fmat2x3
Default single-precision floating-point 2x3 matrix.
Definition: fwd.hpp:2373
-
highp_f32mat4x4 fmat4x4
Default single-precision floating-point 4x4 matrix.
Definition: fwd.hpp:2401
-
highp_u8vec2 u8vec2
Default precision 8 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:995
-
highp_u32vec3 u32vec3
Default precision 32 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:1158
-
detail::uint8 uint8
8 bit unsigned integer type.
Definition: type_int.hpp:94
-
detail::int8 lowp_int8
Low precision 8 bit signed integer type.
Definition: fwd.hpp:132
-
detail::uint32 mediump_u32
Medium precision 32 bit unsigned integer type.
Definition: fwd.hpp:819
-
detail::uint32 lowp_uint32
Low precision 32 bit unsigned integer type.
Definition: fwd.hpp:735
-
detail::int32 lowp_i32
Low precision 32 bit signed integer type.
Definition: fwd.hpp:172
-
detail::uint32 u32
32 bit unsigned integer type.
Definition: fwd.hpp:919
-
highp_i8vec2 i8vec2
Default precision 8 bit signed integer vector of 2 components type.
Definition: fwd.hpp:392
-
highp_i32vec3 i32vec3
Default precision 32 bit signed integer vector of 3 components type.
Definition: fwd.hpp:555
-
highp_f64mat2x2 f64mat2x2
Default double-precision floating-point 2x2 matrix.
Definition: fwd.hpp:2546
-
highp_f32vec1 f32vec1
Default single-precision floating-point vector of 1 components.
Definition: fwd.hpp:2423
-
highp_f32mat2x4 fmat2x4
Default single-precision floating-point 2x4 matrix.
Definition: fwd.hpp:2377
-
detail::int64 highp_i64
High precision 64 bit signed integer type.
Definition: fwd.hpp:272
-
highp_float64_t float64_t
Default 64 bit double-precision floating-point scalar.
Definition: fwd.hpp:1519
-
f32mat3x3 f32mat3
Default single-precision floating-point 3x3 matrix.
Definition: fwd.hpp:2479
-
detail::int8 highp_i8
High precision 8 bit signed integer type.
Definition: fwd.hpp:260
-
highp_i8vec3 i8vec3
Default precision 8 bit signed integer vector of 3 components type.
Definition: fwd.hpp:396
-
detail::int32 mediump_i32
Medium precision 32 bit signed integer type.
Definition: fwd.hpp:220
-
highp_f32quat f32quat
Default single-precision floating-point quaternion.
Definition: fwd.hpp:2487
-
highp_u8vec1 u8vec1
Default precision 8 bit unsigned integer scalar type.
Definition: fwd.hpp:991
-
detail::uint64 mediump_uint64
Medium precision 64 bit unsigned integer type.
Definition: fwd.hpp:791
-
highp_i32vec1 i32vec1
Default precision 32 bit signed integer scalar type.
Definition: fwd.hpp:547
-
highp_u32vec4 u32vec4
Default precision 32 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:1162
-
detail::uint8 highp_u8
Medium precision 8 bit unsigned integer type.
Definition: fwd.hpp:861
-
highp_f32mat2x2 f32mat2x2
Default single-precision floating-point 2x2 matrix.
Definition: fwd.hpp:2439
-
highp_i32vec4 i32vec4
Default precision 32 bit signed integer vector of 4 components type.
Definition: fwd.hpp:559
-
detail::uint8 mediump_uint8
Medium precision 8 bit unsigned integer type.
Definition: fwd.hpp:779
-
highp_i16vec4 i16vec4
Default precision 16 bit signed integer vector of 4 components type.
Definition: fwd.hpp:480
-
highp_float64_t f64
Default 64 bit double-precision floating-point scalar.
Definition: fwd.hpp:1527
-
detail::int8 mediump_i8
Medium precision 8 bit signed integer type.
Definition: fwd.hpp:212
-
detail::int64 mediump_i64
Medium precision 64 bit signed integer type.
Definition: fwd.hpp:224
-
detail::int16 highp_int16
High precision 16 bit signed integer type.
Definition: fwd.hpp:232
-
highp_f64vec2 f64vec2
Default double-precision floating-point vector of 2 components.
Definition: fwd.hpp:2534
-
highp_i8vec1 i8vec1
Default precision 8 bit signed integer scalar type.
Definition: fwd.hpp:388
-
highp_f64mat3x2 f64mat3x2
Default double-precision floating-point 3x2 matrix.
Definition: fwd.hpp:2558
-
detail::uint32 lowp_u32
Low precision 32 bit unsigned integer type.
Definition: fwd.hpp:769
-
detail::int16 highp_i16
High precision 16 bit signed integer type.
Definition: fwd.hpp:264
-
detail::int8 highp_int8
High precision 8 bit signed integer type.
Definition: fwd.hpp:228
-
highp_u32vec1 u32vec1
Default precision 32 bit unsigned integer scalar type.
Definition: fwd.hpp:1150
-
detail::uint16 u16
16 bit unsigned integer type.
Definition: fwd.hpp:915
-
fmat3x3 fmat3
Default single-precision floating-point 3x3 matrix.
Definition: fwd.hpp:2409
-
detail::int16 lowp_i16
Low precision 16 bit signed integer type.
Definition: fwd.hpp:168
-
highp_f32mat2x3 f32mat2x3
Default single-precision floating-point 2x3 matrix.
Definition: fwd.hpp:2443
-
detail::uint16 uint16
16 bit unsigned integer type.
Definition: type_int.hpp:95
-
highp_f32vec4 fvec4
Default single-precision floating-point vector of 4 components.
Definition: fwd.hpp:2365
-
highp_f64quat f64quat
Default double-precision floating-point quaternion.
Definition: fwd.hpp:2594
-
detail::int8 highp_int8_t
High precision 8 bit signed integer type.
Definition: fwd.hpp:244
-
highp_f32mat2x4 f32mat2x4
Default single-precision floating-point 2x4 matrix.
Definition: fwd.hpp:2447
-
f32mat2x2 f32mat2
Default single-precision floating-point 2x2 matrix.
Definition: fwd.hpp:2475
-
highp_f64vec4 f64vec4
Default double-precision floating-point vector of 4 components.
Definition: fwd.hpp:2542
-
detail::int64 lowp_int64
Low precision 64 bit signed integer type.
Definition: fwd.hpp:144
-
detail::uint64 highp_uint64_t
Medium precision 64 bit unsigned integer type.
Definition: fwd.hpp:857
-
double float64
Default 64 bit double-precision floating-point scalar.
Definition: type_float.hpp:82
-
highp_f32mat3x3 fmat3x3
Default single-precision floating-point 3x3 matrix.
Definition: fwd.hpp:2385
-
detail::uint8 highp_uint8
Medium precision 8 bit unsigned integer type.
Definition: fwd.hpp:829
-
detail::int8 lowp_i8
Low precision 8 bit signed integer type.
Definition: fwd.hpp:164
-
highp_f32mat3x3 f32mat3x3
Default single-precision floating-point 3x3 matrix.
Definition: fwd.hpp:2455
-
highp_f64mat3x3 f64mat3x3
Default double-precision floating-point 3x3 matrix.
Definition: fwd.hpp:2562
-
highp_f32mat3x4 fmat3x4
Default single-precision floating-point 3x4 matrix.
Definition: fwd.hpp:2389
-
highp_f32mat3x2 fmat3x2
Default single-precision floating-point 3x2 matrix.
Definition: fwd.hpp:2381
-
detail::int16 mediump_i16
Medium precision 16 bit signed integer type.
Definition: fwd.hpp:216
-
highp_i64vec3 i64vec3
Default precision 64 bit signed integer vector of 3 components type.
Definition: fwd.hpp:714
-
detail::uint16 mediump_uint16_t
Medium precision 16 bit unsigned integer type.
Definition: fwd.hpp:799
+
317 #ifndef GLM_EXTERNAL_TEMPLATE
+
318 #include "type_vec1.inl"
+
319 #endif//GLM_EXTERNAL_TEMPLATE
+
OpenGL Mathematics (glm.g-truc.net)
+
GLM_FUNC_DECL T length(vecType< T, P > const &x)
Returns the length of x, i.e., sqrt(x * x).
+
Definition: _noise.hpp:39
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
diff --git a/doc/api/a00133.html b/doc/api/a00133.html index 5b8d6f5d..971e52e9 100644 --- a/doc/api/a00133.html +++ b/doc/api/a00133.html @@ -3,8 +3,8 @@ - -GLM: type_ptr.hpp File Reference + +0.9.6: type_vec2.hpp File Reference @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,117 +41,33 @@
-
-Namespaces | -Functions
-
type_ptr.hpp File Reference
+
type_vec2.hpp File Reference

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename T >
GLM_FUNC_DECL detail::tmat2x2
-< T, defaultp > 
make_mat2 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL detail::tmat2x2
-< T, defaultp > 
make_mat2x2 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL detail::tmat2x3
-< T, defaultp > 
make_mat2x3 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL detail::tmat2x4
-< T, defaultp > 
make_mat2x4 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL detail::tmat3x3
-< T, defaultp > 
make_mat3 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL detail::tmat3x2
-< T, defaultp > 
make_mat3x2 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL detail::tmat3x3
-< T, defaultp > 
make_mat3x3 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL detail::tmat3x4
-< T, defaultp > 
make_mat3x4 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL detail::tmat4x4
-< T, defaultp > 
make_mat4 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL detail::tmat4x2
-< T, defaultp > 
make_mat4x2 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL detail::tmat4x3
-< T, defaultp > 
make_mat4x3 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL detail::tmat4x4
-< T, defaultp > 
make_mat4x4 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL detail::tquat< T,
-defaultp > 
make_quat (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL detail::tvec2< T,
-defaultp > 
make_vec2 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL detail::tvec3< T,
-defaultp > 
make_vec3 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL detail::tvec4< T,
-defaultp > 
make_vec4 (T const *const ptr)
 
template<typename genType >
GLM_FUNC_DECL
-genType::value_type const * 
value_ptr (genType const &vec)
 

Detailed Description

OpenGL Mathematics (glm.g-truc.net)

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTC_type_ptr

-
Date
2009-05-06 / 2011-06-05
-
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
-
-gtc_half_float (dependence)
-
-GLM_GTC_quaternion (dependence)
+

GLM Core

+
Date
2008-08-18 / 2013-08-27
+
Author
Christophe Riccio
-

Definition in file type_ptr.hpp.

+

Definition in file type_vec2.hpp.

diff --git a/doc/api/a00133_source.html b/doc/api/a00133_source.html index 1a3994f2..5d9bdf23 100644 --- a/doc/api/a00133_source.html +++ b/doc/api/a00133_source.html @@ -3,8 +3,8 @@ - -GLM: type_ptr.hpp Source File + +0.9.6: type_vec2.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,122 +41,376 @@
-
type_ptr.hpp
+
type_vec2.hpp
Go to the documentation of this file.
1 
-
59 #ifndef GLM_GTC_type_ptr
-
60 #define GLM_GTC_type_ptr
-
61 
-
62 // Dependency:
-
63 #include "../gtc/quaternion.hpp"
-
64 #include "../vec2.hpp"
-
65 #include "../vec3.hpp"
-
66 #include "../vec4.hpp"
-
67 #include "../mat2x2.hpp"
-
68 #include "../mat2x3.hpp"
-
69 #include "../mat2x4.hpp"
-
70 #include "../mat3x2.hpp"
-
71 #include "../mat3x3.hpp"
-
72 #include "../mat3x4.hpp"
-
73 #include "../mat4x2.hpp"
-
74 #include "../mat4x3.hpp"
-
75 #include "../mat4x4.hpp"
-
76 #include <cstring>
-
77 
-
78 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
79 # pragma message("GLM: GLM_GTC_type_ptr extension included")
-
80 #endif
-
81 
-
82 namespace glm
-
83 {
-
86 
-
89  template<typename genType>
-
90  GLM_FUNC_DECL typename genType::value_type const * value_ptr(genType const & vec);
+
33 #pragma once
+
34 
+
35 //#include "../fwd.hpp"
+
36 #include "type_vec.hpp"
+
37 #ifdef GLM_SWIZZLE
+
38 # if GLM_HAS_ANONYMOUS_UNION
+
39 # include "_swizzle.hpp"
+
40 # else
+
41 # include "_swizzle_func.hpp"
+
42 # endif
+
43 #endif //GLM_SWIZZLE
+
44 #include <cstddef>
+
45 
+
46 namespace glm
+
47 {
+
48  template <typename T, precision P = defaultp>
+
49  struct tvec2
+
50  {
+
52  // Implementation detail
+
53 
+
54  typedef tvec2<T, P> type;
+
55  typedef tvec2<bool, P> bool_type;
+
56  typedef T value_type;
+
57 
+
59  // Data
+
60 
+
61 # if GLM_HAS_ANONYMOUS_UNION
+
62  union
+
63  {
+
64  struct{ T x, y; };
+
65  struct{ T r, g; };
+
66  struct{ T s, t; };
+
67 
+
68 # ifdef GLM_SWIZZLE
+
69  _GLM_SWIZZLE2_2_MEMBERS(T, P, tvec2, x, y)
+
70  _GLM_SWIZZLE2_2_MEMBERS(T, P, tvec2, r, g)
+
71  _GLM_SWIZZLE2_2_MEMBERS(T, P, tvec2, s, t)
+
72  _GLM_SWIZZLE2_3_MEMBERS(T, P, tvec3, x, y)
+
73  _GLM_SWIZZLE2_3_MEMBERS(T, P, tvec3, r, g)
+
74  _GLM_SWIZZLE2_3_MEMBERS(T, P, tvec3, s, t)
+
75  _GLM_SWIZZLE2_4_MEMBERS(T, P, tvec4, x, y)
+
76  _GLM_SWIZZLE2_4_MEMBERS(T, P, tvec4, r, g)
+
77  _GLM_SWIZZLE2_4_MEMBERS(T, P, tvec4, s, t)
+
78 # endif//GLM_SWIZZLE
+
79  };
+
80 # else
+
81  union {T x, r, s;};
+
82  union {T y, g, t;};
+
83 
+
84 # ifdef GLM_SWIZZLE
+
85  GLM_SWIZZLE_GEN_VEC_FROM_VEC2(T, P, tvec2, tvec2, tvec3, tvec4)
+
86 # endif//GLM_SWIZZLE
+
87 # endif
+
88 
+
90  // Component accesses
91 
-
94  template<typename T>
-
95  GLM_FUNC_DECL detail::tvec2<T, defaultp> make_vec2(T const * const ptr);
+
92 # ifdef GLM_FORCE_SIZE_FUNC
+
93  typedef size_t size_type;
+
95  GLM_FUNC_DECL GLM_CONSTEXPR size_type size() const;
96 
-
99  template<typename T>
-
100  GLM_FUNC_DECL detail::tvec3<T, defaultp> make_vec3(T const * const ptr);
-
101 
-
104  template<typename T>
-
105  GLM_FUNC_DECL detail::tvec4<T, defaultp> make_vec4(T const * const ptr);
-
106 
-
109  template<typename T>
-
110  GLM_FUNC_DECL detail::tmat2x2<T, defaultp> make_mat2x2(T const * const ptr);
-
111 
-
114  template<typename T>
-
115  GLM_FUNC_DECL detail::tmat2x3<T, defaultp> make_mat2x3(T const * const ptr);
-
116 
-
119  template<typename T>
-
120  GLM_FUNC_DECL detail::tmat2x4<T, defaultp> make_mat2x4(T const * const ptr);
+
97  GLM_FUNC_DECL T & operator[](size_type i);
+
98  GLM_FUNC_DECL T const & operator[](size_type i) const;
+
99 # else
+
100  typedef length_t length_type;
+
102  GLM_FUNC_DECL GLM_CONSTEXPR length_type length() const;
+
103 
+
104  GLM_FUNC_DECL T & operator[](length_type i);
+
105  GLM_FUNC_DECL T const & operator[](length_type i) const;
+
106 # endif//GLM_FORCE_SIZE_FUNC
+
107 
+
109  // Implicit basic constructors
+
110 
+
111  GLM_FUNC_DECL tvec2();
+
112  template <precision Q>
+
113  GLM_FUNC_DECL tvec2(tvec2<T, Q> const & v);
+
114 
+
116  // Explicit basic constructors
+
117 
+
118  GLM_FUNC_DECL explicit tvec2(ctor);
+
119  GLM_FUNC_DECL explicit tvec2(T const & s);
+
120  GLM_FUNC_DECL tvec2(T const & s1, T const & s2);
121 
-
124  template<typename T>
-
125  GLM_FUNC_DECL detail::tmat3x2<T, defaultp> make_mat3x2(T const * const ptr);
-
126 
-
129  template<typename T>
-
130  GLM_FUNC_DECL detail::tmat3x3<T, defaultp> make_mat3x3(T const * const ptr);
-
131 
-
134  template<typename T>
-
135  GLM_FUNC_DECL detail::tmat3x4<T, defaultp> make_mat3x4(T const * const ptr);
-
136 
-
139  template<typename T>
-
140  GLM_FUNC_DECL detail::tmat4x2<T, defaultp> make_mat4x2(
-
141  T const * const ptr);
-
142 
-
145  template<typename T>
-
146  GLM_FUNC_DECL detail::tmat4x3<T, defaultp> make_mat4x3(T const * const ptr);
-
147 
-
150  template<typename T>
-
151  GLM_FUNC_DECL detail::tmat4x4<T, defaultp> make_mat4x4(T const * const ptr);
-
152 
-
155  template<typename T>
-
156  GLM_FUNC_DECL detail::tmat2x2<T, defaultp> make_mat2(T const * const ptr);
-
157 
-
160  template<typename T>
-
161  GLM_FUNC_DECL detail::tmat3x3<T, defaultp> make_mat3(T const * const ptr);
-
162 
-
165  template<typename T>
-
166  GLM_FUNC_DECL detail::tmat4x4<T, defaultp> make_mat4(T const * const ptr);
-
167 
-
170  template<typename T>
-
171  GLM_FUNC_DECL detail::tquat<T, defaultp> make_quat(T const * const ptr);
-
172 
-
174 }//namespace glm
-
175 
-
176 #include "type_ptr.inl"
-
177 
-
178 #endif//GLM_GTC_type_ptr
-
179 
-
GLM_FUNC_DECL detail::tmat3x3< T, defaultp > make_mat3x3(T const *const ptr)
Build a matrix from a pointer.
-
GLM_FUNC_DECL detail::tquat< T, defaultp > make_quat(T const *const ptr)
Build a quaternion from a pointer.
-
GLM_FUNC_DECL detail::tmat3x3< T, defaultp > make_mat3(T const *const ptr)
Build a matrix from a pointer.
-
GLM_FUNC_DECL detail::tmat2x2< T, defaultp > make_mat2(T const *const ptr)
Build a matrix from a pointer.
-
GLM_FUNC_DECL detail::tmat3x2< T, defaultp > make_mat3x2(T const *const ptr)
Build a matrix from a pointer.
-
GLM_FUNC_DECL detail::tmat2x2< T, defaultp > make_mat2x2(T const *const ptr)
Build a matrix from a pointer.
-
GLM_FUNC_DECL detail::tmat3x4< T, defaultp > make_mat3x4(T const *const ptr)
Build a matrix from a pointer.
-
GLM_FUNC_DECL detail::tmat4x2< T, defaultp > make_mat4x2(T const *const ptr)
Build a matrix from a pointer.
-
GLM_FUNC_DECL detail::tmat4x4< T, defaultp > make_mat4(T const *const ptr)
Build a matrix from a pointer.
-
GLM_FUNC_DECL detail::tmat2x4< T, defaultp > make_mat2x4(T const *const ptr)
Build a matrix from a pointer.
-
GLM_FUNC_DECL detail::tvec3< T, defaultp > make_vec3(T const *const ptr)
Build a vector from a pointer.
-
GLM_FUNC_DECL detail::tvec2< T, defaultp > make_vec2(T const *const ptr)
Build a vector from a pointer.
-
GLM_FUNC_DECL detail::tvec4< T, defaultp > make_vec4(T const *const ptr)
Build a vector from a pointer.
-
GLM_FUNC_DECL detail::tmat4x3< T, defaultp > make_mat4x3(T const *const ptr)
Build a matrix from a pointer.
-
GLM_FUNC_DECL genType::value_type const * value_ptr(genType const &vec)
Return the constant address to the data of the input parameter.
-
GLM_FUNC_DECL detail::tmat4x4< T, defaultp > make_mat4x4(T const *const ptr)
Build a matrix from a pointer.
-
GLM_FUNC_DECL detail::tmat2x3< T, defaultp > make_mat2x3(T const *const ptr)
Build a matrix from a pointer.
+
123  // Conversion constructors
+
124 
+
126  template <typename A, typename B>
+
127  GLM_FUNC_DECL tvec2(A const & x, B const & y);
+
128  template <typename A, typename B>
+
129  GLM_FUNC_DECL tvec2(tvec1<A, P> const & v1, tvec1<B, P> const & v2);
+
130 
+
132  // Conversion vector constructors
+
133 
+
135  template <typename U, precision Q>
+
136  GLM_FUNC_DECL explicit tvec2(tvec3<U, Q> const & v);
+
138  template <typename U, precision Q>
+
139  GLM_FUNC_DECL explicit tvec2(tvec4<U, Q> const & v);
+
140 
+
141 # ifdef GLM_FORCE_EXPLICIT_CTOR
+
142  template <typename U, precision Q>
+
144  GLM_FUNC_DECL explicit tvec2(tvec2<U, Q> const & v);
+
145 # else
+
146  template <typename U, precision Q>
+
148  GLM_FUNC_DECL tvec2(tvec2<U, Q> const & v);
+
149 # endif
+
150 
+
152  // Swizzle constructors
+
153 
+
154 # if GLM_HAS_ANONYMOUS_UNION && defined(GLM_SWIZZLE)
+
155  template <int E0, int E1>
+
156  GLM_FUNC_DECL tvec2(detail::_swizzle<2, T, P, tvec2<T, P>, E0, E1,-1,-2> const & that)
+
157  {
+
158  *this = that();
+
159  }
+
160 # endif// GLM_HAS_ANONYMOUS_UNION && defined(GLM_SWIZZLE)
+
161 
+
163  // Unary arithmetic operators
+
164 
+
165  template <typename U>
+
166  GLM_FUNC_DECL tvec2<T, P> & operator=(tvec2<U, P> const & v);
+
167  template <typename U>
+
168  GLM_FUNC_DECL tvec2<T, P> & operator+=(U s);
+
169  template <typename U>
+
170  GLM_FUNC_DECL tvec2<T, P> & operator+=(tvec1<U, P> const & v);
+
171  template <typename U>
+
172  GLM_FUNC_DECL tvec2<T, P> & operator+=(tvec2<U, P> const & v);
+
173  template <typename U>
+
174  GLM_FUNC_DECL tvec2<T, P> & operator-=(U s);
+
175  template <typename U>
+
176  GLM_FUNC_DECL tvec2<T, P> & operator-=(tvec1<U, P> const & v);
+
177  template <typename U>
+
178  GLM_FUNC_DECL tvec2<T, P> & operator-=(tvec2<U, P> const & v);
+
179  template <typename U>
+
180  GLM_FUNC_DECL tvec2<T, P> & operator*=(U s);
+
181  template <typename U>
+
182  GLM_FUNC_DECL tvec2<T, P> & operator*=(tvec1<U, P> const & v);
+
183  template <typename U>
+
184  GLM_FUNC_DECL tvec2<T, P> & operator*=(tvec2<U, P> const & v);
+
185  template <typename U>
+
186  GLM_FUNC_DECL tvec2<T, P> & operator/=(U s);
+
187  template <typename U>
+
188  GLM_FUNC_DECL tvec2<T, P> & operator/=(tvec1<U, P> const & v);
+
189  template <typename U>
+
190  GLM_FUNC_DECL tvec2<T, P> & operator/=(tvec2<U, P> const & v);
+
191 
+
193  // Increment and decrement operators
+
194 
+
195  GLM_FUNC_DECL tvec2<T, P> & operator++();
+
196  GLM_FUNC_DECL tvec2<T, P> & operator--();
+
197  GLM_FUNC_DECL tvec2<T, P> operator++(int);
+
198  GLM_FUNC_DECL tvec2<T, P> operator--(int);
+
199 
+
201  // Unary bit operators
+
202 
+
203  template <typename U>
+
204  GLM_FUNC_DECL tvec2<T, P> & operator%= (U s);
+
205  template <typename U>
+
206  GLM_FUNC_DECL tvec2<T, P> & operator%= (tvec1<U, P> const & v);
+
207  template <typename U>
+
208  GLM_FUNC_DECL tvec2<T, P> & operator%= (tvec2<U, P> const & v);
+
209  template <typename U>
+
210  GLM_FUNC_DECL tvec2<T, P> & operator&= (U s);
+
211  template <typename U>
+
212  GLM_FUNC_DECL tvec2<T, P> & operator&= (tvec1<U, P> const & v);
+
213  template <typename U>
+
214  GLM_FUNC_DECL tvec2<T, P> & operator&= (tvec2<U, P> const & v);
+
215  template <typename U>
+
216  GLM_FUNC_DECL tvec2<T, P> & operator|= (U s);
+
217  template <typename U>
+
218  GLM_FUNC_DECL tvec2<T, P> & operator|= (tvec1<U, P> const & v);
+
219  template <typename U>
+
220  GLM_FUNC_DECL tvec2<T, P> & operator|= (tvec2<U, P> const & v);
+
221  template <typename U>
+
222  GLM_FUNC_DECL tvec2<T, P> & operator^= (U s);
+
223  template <typename U>
+
224  GLM_FUNC_DECL tvec2<T, P> & operator^= (tvec1<U, P> const & v);
+
225  template <typename U>
+
226  GLM_FUNC_DECL tvec2<T, P> & operator^= (tvec2<U, P> const & v);
+
227  template <typename U>
+
228  GLM_FUNC_DECL tvec2<T, P> & operator<<=(U s);
+
229  template <typename U>
+
230  GLM_FUNC_DECL tvec2<T, P> & operator<<=(tvec1<U, P> const & v);
+
231  template <typename U>
+
232  GLM_FUNC_DECL tvec2<T, P> & operator<<=(tvec2<U, P> const & v);
+
233  template <typename U>
+
234  GLM_FUNC_DECL tvec2<T, P> & operator>>=(U s);
+
235  template <typename U>
+
236  GLM_FUNC_DECL tvec2<T, P> & operator>>=(tvec1<U, P> const & v);
+
237  template <typename U>
+
238  GLM_FUNC_DECL tvec2<T, P> & operator>>=(tvec2<U, P> const & v);
+
239  };
+
240 
+
241  template <typename T, precision P>
+
242  GLM_FUNC_DECL tvec2<T, P> operator+(tvec2<T, P> const & v, T const & s);
+
243 
+
244  template <typename T, precision P>
+
245  GLM_FUNC_DECL tvec2<T, P> operator+(tvec2<T, P> const & v1, tvec1<T, P> const & v2);
+
246 
+
247  template <typename T, precision P>
+
248  GLM_FUNC_DECL tvec2<T, P> operator+(T const & s, tvec2<T, P> const & v);
+
249 
+
250  template <typename T, precision P>
+
251  GLM_FUNC_DECL tvec2<T, P> operator+(tvec1<T, P> const & v1, tvec2<T, P> const & v2);
+
252 
+
253  template <typename T, precision P>
+
254  GLM_FUNC_DECL tvec2<T, P> operator+(tvec2<T, P> const & v1, tvec2<T, P> const & v2);
+
255 
+
256  template <typename T, precision P>
+
257  GLM_FUNC_DECL tvec2<T, P> operator-(tvec2<T, P> const & v, T const & s);
+
258 
+
259  template <typename T, precision P>
+
260  GLM_FUNC_DECL tvec2<T, P> operator-(tvec2<T, P> const & v1, tvec1<T, P> const & v2);
+
261 
+
262  template <typename T, precision P>
+
263  GLM_FUNC_DECL tvec2<T, P> operator-(T const & s, tvec2<T, P> const & v);
+
264 
+
265  template <typename T, precision P>
+
266  GLM_FUNC_DECL tvec2<T, P> operator-(tvec1<T, P> const & v1, tvec2<T, P> const & v2);
+
267 
+
268  template <typename T, precision P>
+
269  GLM_FUNC_DECL tvec2<T, P> operator-(tvec2<T, P> const & v1, tvec2<T, P> const & v2);
+
270 
+
271  template <typename T, precision P>
+
272  GLM_FUNC_DECL tvec2<T, P> operator*(tvec2<T, P> const & v, T const & s);
+
273 
+
274  template <typename T, precision P>
+
275  GLM_FUNC_DECL tvec2<T, P> operator*(tvec2<T, P> const & v1, tvec1<T, P> const & v2);
+
276 
+
277  template <typename T, precision P>
+
278  GLM_FUNC_DECL tvec2<T, P> operator*(T const & s, tvec2<T, P> const & v);
+
279 
+
280  template <typename T, precision P>
+
281  GLM_FUNC_DECL tvec2<T, P> operator*(tvec1<T, P> const & v1, tvec2<T, P> const & v2);
+
282 
+
283  template <typename T, precision P>
+
284  GLM_FUNC_DECL tvec2<T, P> operator*(tvec2<T, P> const & v1, tvec2<T, P> const & v2);
+
285 
+
286  template <typename T, precision P>
+
287  GLM_FUNC_DECL tvec2<T, P> operator/(tvec2<T, P> const & v, T const & s);
+
288 
+
289  template <typename T, precision P>
+
290  GLM_FUNC_DECL tvec2<T, P> operator/(tvec2<T, P> const & v1, tvec1<T, P> const & v2);
+
291 
+
292  template <typename T, precision P>
+
293  GLM_FUNC_DECL tvec2<T, P> operator/(T const & s, tvec2<T, P> const & v);
+
294 
+
295  template <typename T, precision P>
+
296  GLM_FUNC_DECL tvec2<T, P> operator/(tvec1<T, P> const & v1, tvec2<T, P> const & v2);
+
297 
+
298  template <typename T, precision P>
+
299  GLM_FUNC_DECL tvec2<T, P> operator/(tvec2<T, P> const & v1, tvec2<T, P> const & v2);
+
300 
+
301  template <typename T, precision P>
+
302  GLM_FUNC_DECL tvec2<T, P> operator-(tvec2<T, P> const & v);
+
303 
+
304  template <typename T, precision P>
+
305  GLM_FUNC_DECL tvec2<T, P> operator%(tvec2<T, P> const & v, T const & s);
+
306 
+
307  template <typename T, precision P>
+
308  GLM_FUNC_DECL tvec2<T, P> operator%(tvec2<T, P> const & v1, tvec1<T, P> const & v2);
+
309 
+
310  template <typename T, precision P>
+
311  GLM_FUNC_DECL tvec2<T, P> operator%(T const & s, tvec2<T, P> const & v);
+
312 
+
313  template <typename T, precision P>
+
314  GLM_FUNC_DECL tvec2<T, P> operator%(tvec1<T, P> const & v1, tvec2<T, P> const & v2);
+
315 
+
316  template <typename T, precision P>
+
317  GLM_FUNC_DECL tvec2<T, P> operator%(tvec2<T, P> const & v1, tvec2<T, P> const & v2);
+
318 
+
319  template <typename T, precision P>
+
320  GLM_FUNC_DECL tvec2<T, P> operator&(tvec2<T, P> const & v, T const & s);
+
321 
+
322  template <typename T, precision P>
+
323  GLM_FUNC_DECL tvec2<T, P> operator&(tvec2<T, P> const & v1, tvec1<T, P> const & v2);
+
324 
+
325  template <typename T, precision P>
+
326  GLM_FUNC_DECL tvec2<T, P> operator&(T const & s, tvec2<T, P> const & v);
+
327 
+
328  template <typename T, precision P>
+
329  GLM_FUNC_DECL tvec2<T, P> operator&(tvec1<T, P> const & v1, tvec2<T, P> const & v2);
+
330 
+
331  template <typename T, precision P>
+
332  GLM_FUNC_DECL tvec2<T, P> operator&(tvec2<T, P> const & v1, tvec2<T, P> const & v2);
+
333 
+
334  template <typename T, precision P>
+
335  GLM_FUNC_DECL tvec2<T, P> operator|(tvec2<T, P> const & v, T const & s);
+
336 
+
337  template <typename T, precision P>
+
338  GLM_FUNC_DECL tvec2<T, P> operator|(tvec2<T, P> const & v1, tvec1<T, P> const & v2);
+
339 
+
340  template <typename T, precision P>
+
341  GLM_FUNC_DECL tvec2<T, P> operator|(T const & s, tvec2<T, P> const & v);
+
342 
+
343  template <typename T, precision P>
+
344  GLM_FUNC_DECL tvec2<T, P> operator|(tvec1<T, P> const & v1, tvec2<T, P> const & v2);
+
345 
+
346  template <typename T, precision P>
+
347  GLM_FUNC_DECL tvec2<T, P> operator|(tvec2<T, P> const & v1, tvec2<T, P> const & v2);
+
348 
+
349  template <typename T, precision P>
+
350  GLM_FUNC_DECL tvec2<T, P> operator^(tvec2<T, P> const & v, T const & s);
+
351 
+
352  template <typename T, precision P>
+
353  GLM_FUNC_DECL tvec2<T, P> operator^(tvec2<T, P> const & v1, tvec1<T, P> const & v2);
+
354 
+
355  template <typename T, precision P>
+
356  GLM_FUNC_DECL tvec2<T, P> operator^(T const & s, tvec2<T, P> const & v);
+
357 
+
358  template <typename T, precision P>
+
359  GLM_FUNC_DECL tvec2<T, P> operator^(tvec1<T, P> const & v1, tvec2<T, P> const & v2);
+
360 
+
361  template <typename T, precision P>
+
362  GLM_FUNC_DECL tvec2<T, P> operator^(tvec2<T, P> const & v1, tvec2<T, P> const & v2);
+
363 
+
364  template <typename T, precision P>
+
365  GLM_FUNC_DECL tvec2<T, P> operator<<(tvec2<T, P> const & v, T const & s);
+
366 
+
367  template <typename T, precision P>
+
368  GLM_FUNC_DECL tvec2<T, P> operator<<(tvec2<T, P> const & v1, tvec1<T, P> const & v2);
+
369 
+
370  template <typename T, precision P>
+
371  GLM_FUNC_DECL tvec2<T, P> operator<<(T const & s, tvec2<T, P> const & v);
+
372 
+
373  template <typename T, precision P>
+
374  GLM_FUNC_DECL tvec2<T, P> operator<<(tvec1<T, P> const & v1, tvec2<T, P> const & v2);
+
375 
+
376  template <typename T, precision P>
+
377  GLM_FUNC_DECL tvec2<T, P> operator<<(tvec2<T, P> const & v1, tvec2<T, P> const & v2);
+
378 
+
379  template <typename T, precision P>
+
380  GLM_FUNC_DECL tvec2<T, P> operator>>(tvec2<T, P> const & v, T const & s);
+
381 
+
382  template <typename T, precision P>
+
383  GLM_FUNC_DECL tvec2<T, P> operator>>(tvec2<T, P> const & v1, tvec1<T, P> const & v2);
+
384 
+
385  template <typename T, precision P>
+
386  GLM_FUNC_DECL tvec2<T, P> operator>>(T const & s, tvec2<T, P> const & v);
+
387 
+
388  template <typename T, precision P>
+
389  GLM_FUNC_DECL tvec2<T, P> operator>>(tvec1<T, P> const & v1, tvec2<T, P> const & v2);
+
390 
+
391  template <typename T, precision P>
+
392  GLM_FUNC_DECL tvec2<T, P> operator>>(tvec2<T, P> const & v1, tvec2<T, P> const & v2);
+
393 
+
394  template <typename T, precision P>
+
395  GLM_FUNC_DECL tvec2<T, P> operator~(tvec2<T, P> const & v);
+
396 }//namespace glm
+
397 
+
398 #ifndef GLM_EXTERNAL_TEMPLATE
+
399 #include "type_vec2.inl"
+
400 #endif//GLM_EXTERNAL_TEMPLATE
+
OpenGL Mathematics (glm.g-truc.net)
+
GLM_FUNC_DECL T length(vecType< T, P > const &x)
Returns the length of x, i.e., sqrt(x * x).
+
Definition: _noise.hpp:39
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
diff --git a/doc/api/a00134.html b/doc/api/a00134.html new file mode 100644 index 00000000..c996f43e --- /dev/null +++ b/doc/api/a00134.html @@ -0,0 +1,73 @@ + + + + + + +0.9.6: type_vec3.hpp File Reference + + + + + + +
+
+ + + + + + + +
+
0.9.6 +
+
+
+ + + + + +
+
+
+
type_vec3.hpp File Reference
+
+
+ +

Go to the source code of this file.

+

Detailed Description

+

OpenGL Mathematics (glm.g-truc.net)

+

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+

GLM Core

+
Date
2008-08-22 / 2011-06-15
+
Author
Christophe Riccio
+ +

Definition in file type_vec3.hpp.

+
+ + + + diff --git a/doc/api/a00134_source.html b/doc/api/a00134_source.html index a5e28fc5..d1ebdf01 100644 --- a/doc/api/a00134_source.html +++ b/doc/api/a00134_source.html @@ -3,8 +3,8 @@ - -GLM: type_vec.hpp Source File + +0.9.6: type_vec3.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,300 +41,395 @@
-
type_vec.hpp
+
type_vec3.hpp
-
1 
-
29 #ifndef glm_core_type_vec
-
30 #define glm_core_type_vec
-
31 
-
32 #include "precision.hpp"
-
33 #include "type_int.hpp"
+Go to the documentation of this file.
1 
+
33 #pragma once
34 
-
35 namespace glm{
-
36 namespace detail
-
37 {
-
38  template <typename T, precision P> struct tvec1;
-
39  template <typename T, precision P> struct tvec2;
-
40  template <typename T, precision P> struct tvec3;
-
41  template <typename T, precision P> struct tvec4;
-
42 }//namespace detail
-
43 
-
44  typedef detail::tvec1<float, highp> highp_vec1_t;
-
45  typedef detail::tvec1<float, mediump> mediump_vec1_t;
-
46  typedef detail::tvec1<float, lowp> lowp_vec1_t;
-
47  typedef detail::tvec1<int, highp> highp_ivec1_t;
-
48  typedef detail::tvec1<int, mediump> mediump_ivec1_t;
-
49  typedef detail::tvec1<int, lowp> lowp_ivec1_t;
-
50  typedef detail::tvec1<uint, highp> highp_uvec1_t;
-
51  typedef detail::tvec1<uint, mediump> mediump_uvec1_t;
-
52  typedef detail::tvec1<uint, lowp> lowp_uvec1_t;
-
53  typedef detail::tvec1<bool, highp> highp_bvec1_t;
-
54  typedef detail::tvec1<bool, mediump> mediump_bvec1_t;
-
55  typedef detail::tvec1<bool, lowp> lowp_bvec1_t;
-
56 
-
59 
-
65  typedef detail::tvec2<float, highp> highp_vec2;
-
66 
-
72  typedef detail::tvec2<float, mediump> mediump_vec2;
-
73 
-
79  typedef detail::tvec2<float, lowp> lowp_vec2;
-
80 
-
86  typedef detail::tvec2<double, highp> highp_dvec2;
-
87 
-
93  typedef detail::tvec2<double, mediump> mediump_dvec2;
-
94 
-
100  typedef detail::tvec2<double, lowp> lowp_dvec2;
-
101 
-
107  typedef detail::tvec2<int, highp> highp_ivec2;
-
108 
-
114  typedef detail::tvec2<int, mediump> mediump_ivec2;
-
115 
-
121  typedef detail::tvec2<int, lowp> lowp_ivec2;
-
122 
-
128  typedef detail::tvec2<uint, highp> highp_uvec2;
-
129 
-
135  typedef detail::tvec2<uint, mediump> mediump_uvec2;
-
136 
-
142  typedef detail::tvec2<uint, lowp> lowp_uvec2;
-
143 
-
149  typedef detail::tvec2<bool, highp> highp_bvec2;
-
150 
-
156  typedef detail::tvec2<bool, mediump> mediump_bvec2;
-
157 
-
163  typedef detail::tvec2<bool, lowp> lowp_bvec2;
-
164 
-
166 
-
167 
-
170 
-
176  typedef detail::tvec3<float, highp> highp_vec3;
-
177 
-
183  typedef detail::tvec3<float, mediump> mediump_vec3;
-
184 
-
190  typedef detail::tvec3<float, lowp> lowp_vec3;
-
191 
-
197  typedef detail::tvec3<double, highp> highp_dvec3;
-
198 
-
204  typedef detail::tvec3<double, mediump> mediump_dvec3;
-
205 
-
211  typedef detail::tvec3<double, lowp> lowp_dvec3;
-
212 
-
218  typedef detail::tvec3<int, highp> highp_ivec3;
-
219 
-
225  typedef detail::tvec3<int, mediump> mediump_ivec3;
-
226 
-
232  typedef detail::tvec3<int, lowp> lowp_ivec3;
-
233 
-
239  typedef detail::tvec3<uint, highp> highp_uvec3;
-
240 
-
246  typedef detail::tvec3<uint, mediump> mediump_uvec3;
-
247 
-
253  typedef detail::tvec3<uint, lowp> lowp_uvec3;
-
254 
-
259  typedef detail::tvec3<bool, highp> highp_bvec3;
-
260 
-
265  typedef detail::tvec3<bool, mediump> mediump_bvec3;
-
266 
-
271  typedef detail::tvec3<bool, lowp> lowp_bvec3;
-
272 
-
274 
+
35 //#include "../fwd.hpp"
+
36 #include "type_vec.hpp"
+
37 #ifdef GLM_SWIZZLE
+
38 # if GLM_HAS_ANONYMOUS_UNION
+
39 # include "_swizzle.hpp"
+
40 # else
+
41 # include "_swizzle_func.hpp"
+
42 # endif
+
43 #endif //GLM_SWIZZLE
+
44 #include <cstddef>
+
45 
+
46 namespace glm
+
47 {
+
48  template <typename T, precision P = defaultp>
+
49  struct tvec3
+
50  {
+
52  // Implementation detail
+
53 
+
54  typedef tvec3<T, P> type;
+
55  typedef tvec3<bool, P> bool_type;
+
56  typedef T value_type;
+
57 
+
59  // Data
+
60 
+
61 # if GLM_HAS_ANONYMOUS_UNION
+
62  union
+
63  {
+
64  struct{ T x, y, z; };
+
65  struct{ T r, g, b; };
+
66  struct{ T s, t, p; };
+
67 
+
68 # ifdef GLM_SWIZZLE
+
69  _GLM_SWIZZLE3_2_MEMBERS(T, P, tvec2, x, y, z)
+
70  _GLM_SWIZZLE3_2_MEMBERS(T, P, tvec2, r, g, b)
+
71  _GLM_SWIZZLE3_2_MEMBERS(T, P, tvec2, s, t, p)
+
72  _GLM_SWIZZLE3_3_MEMBERS(T, P, tvec3, x, y, z)
+
73  _GLM_SWIZZLE3_3_MEMBERS(T, P, tvec3, r, g, b)
+
74  _GLM_SWIZZLE3_3_MEMBERS(T, P, tvec3, s, t, p)
+
75  _GLM_SWIZZLE3_4_MEMBERS(T, P, tvec4, x, y, z)
+
76  _GLM_SWIZZLE3_4_MEMBERS(T, P, tvec4, r, g, b)
+
77  _GLM_SWIZZLE3_4_MEMBERS(T, P, tvec4, s, t, p)
+
78 # endif//GLM_SWIZZLE
+
79  };
+
80 # else
+
81  union { T x, r, s; };
+
82  union { T y, g, t; };
+
83  union { T z, b, p; };
+
84 
+
85 # ifdef GLM_SWIZZLE
+
86  GLM_SWIZZLE_GEN_VEC_FROM_VEC3(T, P, tvec3, tvec2, tvec3, tvec4)
+
87 # endif//GLM_SWIZZLE
+
88 # endif//GLM_LANG
+
89 
+
91  // Component accesses
+
92 
+
93 # ifdef GLM_FORCE_SIZE_FUNC
+
94  typedef size_t size_type;
+
96  GLM_FUNC_DECL GLM_CONSTEXPR size_type size() const;
+
97 
+
98  GLM_FUNC_DECL T & operator[](size_type i);
+
99  GLM_FUNC_DECL T const & operator[](size_type i) const;
+
100 # else
+
101  typedef length_t length_type;
+
103  GLM_FUNC_DECL GLM_CONSTEXPR length_type length() const;
+
104 
+
105  GLM_FUNC_DECL T & operator[](length_type i);
+
106  GLM_FUNC_DECL T const & operator[](length_type i) const;
+
107 # endif//GLM_FORCE_SIZE_FUNC
+
108 
+
110  // Implicit basic constructors
+
111 
+
112  GLM_FUNC_DECL tvec3();
+
113  template <precision Q>
+
114  GLM_FUNC_DECL tvec3(tvec3<T, Q> const & v);
+
115 
+
117  // Explicit basic constructors
+
118 
+
119  GLM_FUNC_DECL explicit tvec3(ctor);
+
120  GLM_FUNC_DECL explicit tvec3(T const & s);
+
121  GLM_FUNC_DECL tvec3(T const & a, T const & b, T const & c);
+
122 
+
124  // Conversion scalar constructors
+
125 
+
127  template <typename A, typename B, typename C>
+
128  GLM_FUNC_DECL tvec3(A const & a, B const & b, C const & c);
+
129  template <typename A, typename B, typename C>
+
130  GLM_FUNC_DECL tvec3(tvec1<A, P> const & a, tvec1<B, P> const & b, tvec1<C, P> const & c);
+
131 
+
133  // Conversion vector constructors
+
134 
+
136  template <typename A, typename B, precision Q>
+
137  GLM_FUNC_DECL explicit tvec3(tvec2<A, Q> const & a, B const & b);
+
139  template <typename A, typename B, precision Q>
+
140  GLM_FUNC_DECL explicit tvec3(tvec2<A, Q> const & a, tvec1<B, Q> const & b);
+
142  template <typename A, typename B, precision Q>
+
143  GLM_FUNC_DECL explicit tvec3(A const & a, tvec2<B, Q> const & b);
+
145  template <typename A, typename B, precision Q>
+
146  GLM_FUNC_DECL explicit tvec3(tvec1<A, Q> const & a, tvec2<B, Q> const & b);
+
148  template <typename U, precision Q>
+
149  GLM_FUNC_DECL explicit tvec3(tvec4<U, Q> const & v);
+
150 
+
151 # ifdef GLM_FORCE_EXPLICIT_CTOR
+
152  template <typename U, precision Q>
+
154  GLM_FUNC_DECL explicit tvec3(tvec3<U, Q> const & v);
+
155 # else
+
156  template <typename U, precision Q>
+
158  GLM_FUNC_DECL tvec3(tvec3<U, Q> const & v);
+
159 # endif
+
160 
+
162  // Swizzle constructors
+
163 
+
164 # if GLM_HAS_ANONYMOUS_UNION && defined(GLM_SWIZZLE)
+
165  template <int E0, int E1, int E2>
+
166  GLM_FUNC_DECL tvec3(detail::_swizzle<3, T, P, tvec3<T, P>, E0, E1, E2, -1> const & that)
+
167  {
+
168  *this = that();
+
169  }
+
170 
+
171  template <int E0, int E1>
+
172  GLM_FUNC_DECL tvec3(detail::_swizzle<2, T, P, tvec2<T, P>, E0, E1, -1, -2> const & v, T const & s)
+
173  {
+
174  *this = tvec3<T, P>(v(), s);
+
175  }
+
176 
+
177  template <int E0, int E1>
+
178  GLM_FUNC_DECL tvec3(T const & s, detail::_swizzle<2, T, P, tvec2<T, P>, E0, E1, -1, -2> const & v)
+
179  {
+
180  *this = tvec3<T, P>(s, v());
+
181  }
+
182 # endif// GLM_HAS_ANONYMOUS_UNION && defined(GLM_SWIZZLE)
+
183 
+
185  // Unary arithmetic operators
+
186 
+
187  template <typename U>
+
188  GLM_FUNC_DECL tvec3<T, P> & operator=(tvec3<U, P> const & v);
+
189  template <typename U>
+
190  GLM_FUNC_DECL tvec3<T, P> & operator+=(U s);
+
191  template <typename U>
+
192  GLM_FUNC_DECL tvec3<T, P> & operator+=(tvec1<U, P> const & v);
+
193  template <typename U>
+
194  GLM_FUNC_DECL tvec3<T, P> & operator+=(tvec3<U, P> const & v);
+
195  template <typename U>
+
196  GLM_FUNC_DECL tvec3<T, P> & operator-=(U s);
+
197  template <typename U>
+
198  GLM_FUNC_DECL tvec3<T, P> & operator-=(tvec1<U, P> const & v);
+
199  template <typename U>
+
200  GLM_FUNC_DECL tvec3<T, P> & operator-=(tvec3<U, P> const & v);
+
201  template <typename U>
+
202  GLM_FUNC_DECL tvec3<T, P> & operator*=(U s);
+
203  template <typename U>
+
204  GLM_FUNC_DECL tvec3<T, P> & operator*=(tvec1<U, P> const & v);
+
205  template <typename U>
+
206  GLM_FUNC_DECL tvec3<T, P> & operator*=(tvec3<U, P> const & v);
+
207  template <typename U>
+
208  GLM_FUNC_DECL tvec3<T, P> & operator/=(U s);
+
209  template <typename U>
+
210  GLM_FUNC_DECL tvec3<T, P> & operator/=(tvec1<U, P> const & v);
+
211  template <typename U>
+
212  GLM_FUNC_DECL tvec3<T, P> & operator/=(tvec3<U, P> const & v);
+
213 
+
215  // Increment and decrement operators
+
216 
+
217  GLM_FUNC_DECL tvec3<T, P> & operator++();
+
218  GLM_FUNC_DECL tvec3<T, P> & operator--();
+
219  GLM_FUNC_DECL tvec3<T, P> operator++(int);
+
220  GLM_FUNC_DECL tvec3<T, P> operator--(int);
+
221 
+
223  // Unary bit operators
+
224 
+
225  template <typename U>
+
226  GLM_FUNC_DECL tvec3<T, P> & operator%=(U s);
+
227  template <typename U>
+
228  GLM_FUNC_DECL tvec3<T, P> & operator%=(tvec1<U, P> const & v);
+
229  template <typename U>
+
230  GLM_FUNC_DECL tvec3<T, P> & operator%=(tvec3<U, P> const & v);
+
231  template <typename U>
+
232  GLM_FUNC_DECL tvec3<T, P> & operator&=(U s);
+
233  template <typename U>
+
234  GLM_FUNC_DECL tvec3<T, P> & operator&=(tvec1<U, P> const & v);
+
235  template <typename U>
+
236  GLM_FUNC_DECL tvec3<T, P> & operator&=(tvec3<U, P> const & v);
+
237  template <typename U>
+
238  GLM_FUNC_DECL tvec3<T, P> & operator|=(U s);
+
239  template <typename U>
+
240  GLM_FUNC_DECL tvec3<T, P> & operator|=(tvec1<U, P> const & v);
+
241  template <typename U>
+
242  GLM_FUNC_DECL tvec3<T, P> & operator|=(tvec3<U, P> const & v);
+
243  template <typename U>
+
244  GLM_FUNC_DECL tvec3<T, P> & operator^=(U s);
+
245  template <typename U>
+
246  GLM_FUNC_DECL tvec3<T, P> & operator^=(tvec1<U, P> const & v);
+
247  template <typename U>
+
248  GLM_FUNC_DECL tvec3<T, P> & operator^=(tvec3<U, P> const & v);
+
249  template <typename U>
+
250  GLM_FUNC_DECL tvec3<T, P> & operator<<=(U s);
+
251  template <typename U>
+
252  GLM_FUNC_DECL tvec3<T, P> & operator<<=(tvec1<U, P> const & v);
+
253  template <typename U>
+
254  GLM_FUNC_DECL tvec3<T, P> & operator<<=(tvec3<U, P> const & v);
+
255  template <typename U>
+
256  GLM_FUNC_DECL tvec3<T, P> & operator>>=(U s);
+
257  template <typename U>
+
258  GLM_FUNC_DECL tvec3<T, P> & operator>>=(tvec1<U, P> const & v);
+
259  template <typename U>
+
260  GLM_FUNC_DECL tvec3<T, P> & operator>>=(tvec3<U, P> const & v);
+
261  };
+
262 
+
263  template <typename T, precision P>
+
264  GLM_FUNC_DECL tvec3<T, P> operator+(tvec3<T, P> const & v, T const & s);
+
265 
+
266  template <typename T, precision P>
+
267  GLM_FUNC_DECL tvec3<T, P> operator+(tvec3<T, P> const & v, tvec1<T, P> const & s);
+
268 
+
269  template <typename T, precision P>
+
270  GLM_FUNC_DECL tvec3<T, P> operator+(T const & s, tvec3<T, P> const & v);
+
271 
+
272  template <typename T, precision P>
+
273  GLM_FUNC_DECL tvec3<T, P> operator+(tvec1<T, P> const & s, tvec3<T, P> const & v);
+
274 
+
275  template <typename T, precision P>
+
276  GLM_FUNC_DECL tvec3<T, P> operator+(tvec3<T, P> const & v1, tvec3<T, P> const & v2);
277 
-
282  typedef detail::tvec4<float, highp> highp_vec4;
-
283 
-
288  typedef detail::tvec4<float, mediump> mediump_vec4;
-
289 
-
294  typedef detail::tvec4<float, lowp> lowp_vec4;
-
295 
-
300  typedef detail::tvec4<double, highp> highp_dvec4;
-
301 
-
306  typedef detail::tvec4<double, mediump> mediump_dvec4;
-
307 
-
312  typedef detail::tvec4<double, lowp> lowp_dvec4;
-
313 
-
318  typedef detail::tvec4<int, highp> highp_ivec4;
-
319 
-
324  typedef detail::tvec4<int, mediump> mediump_ivec4;
-
325 
-
330  typedef detail::tvec4<int, lowp> lowp_ivec4;
-
331 
-
336  typedef detail::tvec4<uint, highp> highp_uvec4;
-
337 
-
342  typedef detail::tvec4<uint, mediump> mediump_uvec4;
-
343 
-
348  typedef detail::tvec4<uint, lowp> lowp_uvec4;
+
278  template <typename T, precision P>
+
279  GLM_FUNC_DECL tvec3<T, P> operator-(tvec3<T, P> const & v, T const & s);
+
280 
+
281  template <typename T, precision P>
+
282  GLM_FUNC_DECL tvec3<T, P> operator-(tvec3<T, P> const & v, tvec1<T, P> const & s);
+
283 
+
284  template <typename T, precision P>
+
285  GLM_FUNC_DECL tvec3<T, P> operator-(T const & s, tvec3<T, P> const & v);
+
286 
+
287  template <typename T, precision P>
+
288  GLM_FUNC_DECL tvec3<T, P> operator-(tvec1<T, P> const & s, tvec3<T, P> const & v);
+
289 
+
290  template <typename T, precision P>
+
291  GLM_FUNC_DECL tvec3<T, P> operator-(tvec3<T, P> const & v1, tvec3<T, P> const & v2);
+
292 
+
293  template <typename T, precision P>
+
294  GLM_FUNC_DECL tvec3<T, P> operator*(tvec3<T, P> const & v, T const & s);
+
295 
+
296  template <typename T, precision P>
+
297  GLM_FUNC_DECL tvec3<T, P> operator*(tvec3<T, P> const & v, tvec1<T, P> const & s);
+
298 
+
299  template <typename T, precision P>
+
300  GLM_FUNC_DECL tvec3<T, P> operator*(T const & s, tvec3<T, P> const & v);
+
301 
+
302  template <typename T, precision P>
+
303  GLM_FUNC_DECL tvec3<T, P> operator*(tvec1<T, P> const & s, tvec3<T, P> const & v);
+
304 
+
305  template <typename T, precision P>
+
306  GLM_FUNC_DECL tvec3<T, P> operator*(tvec3<T, P> const & v1, tvec3<T, P> const & v2);
+
307 
+
308  template <typename T, precision P>
+
309  GLM_FUNC_DECL tvec3<T, P> operator/(tvec3<T, P> const & v, T const & s);
+
310 
+
311  template <typename T, precision P>
+
312  GLM_FUNC_DECL tvec3<T, P> operator/(tvec3<T, P> const & v, tvec1<T, P> const & s);
+
313 
+
314  template <typename T, precision P>
+
315  GLM_FUNC_DECL tvec3<T, P> operator/(T const & s, tvec3<T, P> const & v);
+
316 
+
317  template <typename T, precision P>
+
318  GLM_FUNC_DECL tvec3<T, P> operator/(tvec1<T, P> const & s, tvec3<T, P> const & v);
+
319 
+
320  template <typename T, precision P>
+
321  GLM_FUNC_DECL tvec3<T, P> operator/(tvec3<T, P> const & v1, tvec3<T, P> const & v2);
+
322 
+
323  template <typename T, precision P>
+
324  GLM_FUNC_DECL tvec3<T, P> operator-(tvec3<T, P> const & v);
+
325 
+
326  template <typename T, precision P>
+
327  GLM_FUNC_DECL tvec3<T, P> operator%(tvec3<T, P> const & v, T const & s);
+
328 
+
329  template <typename T, precision P>
+
330  GLM_FUNC_DECL tvec3<T, P> operator%(tvec3<T, P> const & v, tvec1<T, P> const & s);
+
331 
+
332  template <typename T, precision P>
+
333  GLM_FUNC_DECL tvec3<T, P> operator%(T const & s, tvec3<T, P> const & v);
+
334 
+
335  template <typename T, precision P>
+
336  GLM_FUNC_DECL tvec3<T, P> operator%(tvec1<T, P> const & s, tvec3<T, P> const & v);
+
337 
+
338  template <typename T, precision P>
+
339  GLM_FUNC_DECL tvec3<T, P> operator%(tvec3<T, P> const & v1, tvec3<T, P> const & v2);
+
340 
+
341  template <typename T, precision P>
+
342  GLM_FUNC_DECL tvec3<T, P> operator&(tvec3<T, P> const & v, T const & s);
+
343 
+
344  template <typename T, precision P>
+
345  GLM_FUNC_DECL tvec3<T, P> operator&(tvec3<T, P> const & v, tvec1<T, P> const & s);
+
346 
+
347  template <typename T, precision P>
+
348  GLM_FUNC_DECL tvec3<T, P> operator&(T const & s, tvec3<T, P> const & v);
349 
-
354  typedef detail::tvec4<bool, highp> highp_bvec4;
-
355 
-
360  typedef detail::tvec4<bool, mediump> mediump_bvec4;
-
361 
-
366  typedef detail::tvec4<bool, lowp> lowp_bvec4;
-
367 
-
369 
-
372 
-
374  // Default float definition
-
375 
-
376 #if(defined(GLM_PRECISION_LOWP_FLOAT))
-
377  typedef lowp_vec2 vec2;
-
378  typedef lowp_vec3 vec3;
-
379  typedef lowp_vec4 vec4;
-
380 #elif(defined(GLM_PRECISION_MEDIUMP_FLOAT))
-
381  typedef mediump_vec2 vec2;
-
382  typedef mediump_vec3 vec3;
-
383  typedef mediump_vec4 vec4;
-
384 #else //defined(GLM_PRECISION_HIGHP_FLOAT)
-
385  typedef highp_vec2 vec2;
-
389 
-
393  typedef highp_vec3 vec3;
-
394 
-
398  typedef highp_vec4 vec4;
-
399 #endif//GLM_PRECISION
-
400 
-
402  // Default double definition
-
403 
-
404 #if(defined(GLM_PRECISION_LOWP_DOUBLE))
-
405  typedef lowp_dvec2 dvec2;
-
406  typedef lowp_dvec3 dvec3;
-
407  typedef lowp_dvec4 dvec4;
-
408 #elif(defined(GLM_PRECISION_MEDIUMP_DOUBLE))
-
409  typedef mediump_dvec2 dvec2;
-
410  typedef mediump_dvec3 dvec3;
-
411  typedef mediump_dvec4 dvec4;
-
412 #else //defined(GLM_PRECISION_HIGHP_DOUBLE)
-
413  typedef highp_dvec2 dvec2;
-
417 
- -
422 
- -
427 #endif//GLM_PRECISION
-
428 
-
430  // Signed integer definition
-
431 
-
432 #if(defined(GLM_PRECISION_LOWP_INT))
-
433  typedef lowp_ivec2 ivec2;
-
434  typedef lowp_ivec3 ivec3;
-
435  typedef lowp_ivec4 ivec4;
-
436 #elif(defined(GLM_PRECISION_MEDIUMP_INT))
-
437  typedef mediump_ivec2 ivec2;
-
438  typedef mediump_ivec3 ivec3;
-
439  typedef mediump_ivec4 ivec4;
-
440 #else //defined(GLM_PRECISION_HIGHP_INT)
-
441  typedef highp_ivec2 ivec2;
-
445 
- -
450 
- -
455 #endif//GLM_PRECISION
-
456 
-
458  // Unsigned integer definition
-
459 
-
460 #if(defined(GLM_PRECISION_LOWP_UINT))
-
461  typedef lowp_uvec2 uvec2;
-
462  typedef lowp_uvec3 uvec3;
-
463  typedef lowp_uvec4 uvec4;
-
464 #elif(defined(GLM_PRECISION_MEDIUMP_UINT))
-
465  typedef mediump_uvec2 uvec2;
-
466  typedef mediump_uvec3 uvec3;
-
467  typedef mediump_uvec4 uvec4;
-
468 #else //defined(GLM_PRECISION_HIGHP_UINT)
-
469  typedef highp_uvec2 uvec2;
-
473 
- -
478 
- -
483 #endif//GLM_PRECISION
-
484 
-
486  // Boolean definition
-
487 
-
488 #if(defined(GLM_PRECISION_LOWP_BOOL))
-
489  typedef lowp_bvec2 bvec2;
-
490  typedef lowp_bvec3 bvec3;
-
491  typedef lowp_bvec4 bvec4;
-
492 #elif(defined(GLM_PRECISION_MEDIUMP_BOOL))
-
493  typedef mediump_bvec2 bvec2;
-
494  typedef mediump_bvec3 bvec3;
-
495  typedef mediump_bvec4 bvec4;
-
496 #else //defined(GLM_PRECISION_HIGHP_BOOL)
-
497  typedef highp_bvec2 bvec2;
-
501 
- -
506 
- -
511 #endif//GLM_PRECISION
-
512 
-
514 }//namespace glm
-
515 
-
516 #endif//glm_core_type_vec
-
highp_ivec4 ivec4
4 components vector of signed integer numbers.
Definition: type_vec.hpp:454
-
detail::tvec4< bool, highp > highp_bvec4
4 components vector of high precision bool numbers.
Definition: type_vec.hpp:354
-
detail::tvec2< uint, highp > highp_uvec2
2 components vector of high precision unsigned integer numbers.
Definition: type_vec.hpp:128
-
detail::tvec4< uint, highp > highp_uvec4
4 components vector of high precision unsigned integer numbers.
Definition: type_vec.hpp:336
-
highp_bvec3 bvec3
3 components vector of boolean.
Definition: type_vec.hpp:505
-
detail::tvec3< int, mediump > mediump_ivec3
3 components vector of medium precision signed integer numbers.
Definition: type_vec.hpp:225
-
highp_bvec2 bvec2
2 components vector of boolean.
Definition: type_vec.hpp:500
-
highp_vec3 vec3
3 components vector of floating-point numbers.
Definition: type_vec.hpp:393
-
highp_dvec3 dvec3
3 components vector of double-precision floating-point numbers.
Definition: type_vec.hpp:421
-
detail::tvec2< int, mediump > mediump_ivec2
2 components vector of medium precision signed integer numbers.
Definition: type_vec.hpp:114
-
detail::tvec4< double, lowp > lowp_dvec4
4 components vector of low double-precision floating-point numbers.
Definition: type_vec.hpp:312
-
highp_ivec2 ivec2
2 components vector of signed integer numbers.
Definition: type_vec.hpp:444
-
detail::tvec2< uint, lowp > lowp_uvec2
2 components vector of low precision unsigned integer numbers.
Definition: type_vec.hpp:142
-
highp_vec4 vec4
4 components vector of floating-point numbers.
Definition: type_vec.hpp:398
-
detail::tvec4< float, mediump > mediump_vec4
4 components vector of medium single-precision floating-point numbers.
Definition: type_vec.hpp:288
-
detail::tvec2< bool, mediump > mediump_bvec2
2 components vector of medium precision bool numbers.
Definition: type_vec.hpp:156
-
detail::tvec4< bool, lowp > lowp_bvec4
4 components vector of low precision bool numbers.
Definition: type_vec.hpp:366
-
detail::tvec3< uint, lowp > lowp_uvec3
3 components vector of low precision unsigned integer numbers.
Definition: type_vec.hpp:253
-
detail::tvec3< float, lowp > lowp_vec3
3 components vector of low single-precision floating-point numbers.
Definition: type_vec.hpp:190
-
detail::tvec4< int, lowp > lowp_ivec4
4 components vector of low precision signed integer numbers.
Definition: type_vec.hpp:330
-
detail::tvec2< bool, highp > highp_bvec2
2 components vector of high precision bool numbers.
Definition: type_vec.hpp:149
-
detail::tvec4< double, highp > highp_dvec4
4 components vector of high double-precision floating-point numbers.
Definition: type_vec.hpp:300
-
detail::tvec4< uint, lowp > lowp_uvec4
4 components vector of low precision unsigned integer numbers.
Definition: type_vec.hpp:348
-
detail::tvec3< float, highp > highp_vec3
3 components vector of high single-precision floating-point numbers.
Definition: type_vec.hpp:176
-
highp_dvec2 dvec2
2 components vector of double-precision floating-point numbers.
Definition: type_vec.hpp:416
-
detail::tvec3< bool, mediump > mediump_bvec3
3 components vector of medium precision bool numbers.
Definition: type_vec.hpp:265
-
detail::tvec4< double, mediump > mediump_dvec4
4 components vector of medium double-precision floating-point numbers.
Definition: type_vec.hpp:306
-
detail::tvec2< double, highp > highp_dvec2
2 components vector of high double-precision floating-point numbers.
Definition: type_vec.hpp:86
-
detail::tvec3< uint, highp > highp_uvec3
3 components vector of high precision unsigned integer numbers.
Definition: type_vec.hpp:239
-
highp_ivec3 ivec3
3 components vector of signed integer numbers.
Definition: type_vec.hpp:449
-
detail::tvec3< uint, mediump > mediump_uvec3
3 components vector of medium precision unsigned integer numbers.
Definition: type_vec.hpp:246
-
detail::tvec4< bool, mediump > mediump_bvec4
4 components vector of medium precision bool numbers.
Definition: type_vec.hpp:360
-
detail::tvec3< bool, lowp > lowp_bvec3
3 components vector of low precision bool numbers.
Definition: type_vec.hpp:271
-
detail::tvec3< double, highp > highp_dvec3
3 components vector of high double-precision floating-point numbers.
Definition: type_vec.hpp:197
-
highp_uvec3 uvec3
3 components vector of unsigned integer numbers.
Definition: type_vec.hpp:477
-
highp_dvec4 dvec4
4 components vector of double-precision floating-point numbers.
Definition: type_vec.hpp:426
-
detail::tvec2< uint, mediump > mediump_uvec2
2 components vector of medium precision unsigned integer numbers.
Definition: type_vec.hpp:135
-
detail::tvec2< int, lowp > lowp_ivec2
2 components vector of low precision signed integer numbers.
Definition: type_vec.hpp:121
-
detail::tvec2< bool, lowp > lowp_bvec2
2 components vector of low precision bool numbers.
Definition: type_vec.hpp:163
-
detail::tvec4< int, mediump > mediump_ivec4
4 components vector of medium precision signed integer numbers.
Definition: type_vec.hpp:324
-
detail::tvec2< double, lowp > lowp_dvec2
2 components vector of low double-precision floating-point numbers.
Definition: type_vec.hpp:100
-
detail::tvec2< float, highp > highp_vec2
2 components vector of high single-precision floating-point numbers.
Definition: type_vec.hpp:65
-
detail::tvec3< double, mediump > mediump_dvec3
3 components vector of medium double-precision floating-point numbers.
Definition: type_vec.hpp:204
-
detail::tvec3< double, lowp > lowp_dvec3
3 components vector of low double-precision floating-point numbers.
Definition: type_vec.hpp:211
-
detail::tvec2< float, lowp > lowp_vec2
2 components vector of low single-precision floating-point numbers.
Definition: type_vec.hpp:79
-
detail::tvec2< double, mediump > mediump_dvec2
2 components vector of medium double-precision floating-point numbers.
Definition: type_vec.hpp:93
-
highp_uvec4 uvec4
4 components vector of unsigned integer numbers.
Definition: type_vec.hpp:482
-
detail::tvec3< int, lowp > lowp_ivec3
3 components vector of low precision signed integer numbers.
Definition: type_vec.hpp:232
-
highp_uvec2 uvec2
2 components vector of unsigned integer numbers.
Definition: type_vec.hpp:472
-
highp_bvec4 bvec4
4 components vector of boolean.
Definition: type_vec.hpp:510
-
detail::tvec2< int, highp > highp_ivec2
2 components vector of high precision signed integer numbers.
Definition: type_vec.hpp:107
-
detail::tvec4< float, lowp > lowp_vec4
4 components vector of low single-precision floating-point numbers.
Definition: type_vec.hpp:294
-
detail::tvec2< float, mediump > mediump_vec2
2 components vector of medium single-precision floating-point numbers.
Definition: type_vec.hpp:72
-
highp_vec2 vec2
2 components vector of floating-point numbers.
Definition: type_vec.hpp:388
-
detail::tvec3< int, highp > highp_ivec3
3 components vector of high precision signed integer numbers.
Definition: type_vec.hpp:218
-
detail::tvec3< bool, highp > highp_bvec3
3 components vector of high precision bool numbers.
Definition: type_vec.hpp:259
-
detail::tvec4< float, highp > highp_vec4
4 components vector of high single-precision floating-point numbers.
Definition: type_vec.hpp:282
-
detail::tvec4< int, highp > highp_ivec4
4 components vector of high precision signed integer numbers.
Definition: type_vec.hpp:318
-
detail::tvec4< uint, mediump > mediump_uvec4
4 components vector of medium precision unsigned integer numbers.
Definition: type_vec.hpp:342
-
detail::tvec3< float, mediump > mediump_vec3
3 components vector of medium single-precision floating-point numbers.
Definition: type_vec.hpp:183
+
350  template <typename T, precision P>
+
351  GLM_FUNC_DECL tvec3<T, P> operator&(tvec1<T, P> const & s, tvec3<T, P> const & v);
+
352 
+
353  template <typename T, precision P>
+
354  GLM_FUNC_DECL tvec3<T, P> operator&(tvec3<T, P> const & v1, tvec3<T, P> const & v2);
+
355 
+
356  template <typename T, precision P>
+
357  GLM_FUNC_DECL tvec3<T, P> operator|(tvec3<T, P> const & v, T const & s);
+
358 
+
359  template <typename T, precision P>
+
360  GLM_FUNC_DECL tvec3<T, P> operator|(tvec3<T, P> const & v, tvec1<T, P> const & s);
+
361 
+
362  template <typename T, precision P>
+
363  GLM_FUNC_DECL tvec3<T, P> operator|(T const & s, tvec3<T, P> const & v);
+
364 
+
365  template <typename T, precision P>
+
366  GLM_FUNC_DECL tvec3<T, P> operator|(tvec1<T, P> const & s, tvec3<T, P> const & v);
+
367 
+
368  template <typename T, precision P>
+
369  GLM_FUNC_DECL tvec3<T, P> operator|(tvec3<T, P> const & v1, tvec3<T, P> const & v2);
+
370 
+
371  template <typename T, precision P>
+
372  GLM_FUNC_DECL tvec3<T, P> operator^(tvec3<T, P> const & v, T const & s);
+
373 
+
374  template <typename T, precision P>
+
375  GLM_FUNC_DECL tvec3<T, P> operator^(tvec3<T, P> const & v, tvec1<T, P> const & s);
+
376 
+
377  template <typename T, precision P>
+
378  GLM_FUNC_DECL tvec3<T, P> operator^(T const & s, tvec3<T, P> const & v);
+
379 
+
380  template <typename T, precision P>
+
381  GLM_FUNC_DECL tvec3<T, P> operator^(tvec1<T, P> const & s, tvec3<T, P> const & v);
+
382 
+
383  template <typename T, precision P>
+
384  GLM_FUNC_DECL tvec3<T, P> operator^(tvec3<T, P> const & v1, tvec3<T, P> const & v2);
+
385 
+
386  template <typename T, precision P>
+
387  GLM_FUNC_DECL tvec3<T, P> operator<<(tvec3<T, P> const & v, T const & s);
+
388 
+
389  template <typename T, precision P>
+
390  GLM_FUNC_DECL tvec3<T, P> operator<<(tvec3<T, P> const & v, tvec1<T, P> const & s);
+
391 
+
392  template <typename T, precision P>
+
393  GLM_FUNC_DECL tvec3<T, P> operator<<(T const & s, tvec3<T, P> const & v);
+
394 
+
395  template <typename T, precision P>
+
396  GLM_FUNC_DECL tvec3<T, P> operator<<(tvec1<T, P> const & s, tvec3<T, P> const & v);
+
397 
+
398  template <typename T, precision P>
+
399  GLM_FUNC_DECL tvec3<T, P> operator<<(tvec3<T, P> const & v1, tvec3<T, P> const & v2);
+
400 
+
401  template <typename T, precision P>
+
402  GLM_FUNC_DECL tvec3<T, P> operator>>(tvec3<T, P> const & v, T const & s);
+
403 
+
404  template <typename T, precision P>
+
405  GLM_FUNC_DECL tvec3<T, P> operator>>(tvec3<T, P> const & v, tvec1<T, P> const & s);
+
406 
+
407  template <typename T, precision P>
+
408  GLM_FUNC_DECL tvec3<T, P> operator>>(T const & s, tvec3<T, P> const & v);
+
409 
+
410  template <typename T, precision P>
+
411  GLM_FUNC_DECL tvec3<T, P> operator>>(tvec1<T, P> const & s, tvec3<T, P> const & v);
+
412 
+
413  template <typename T, precision P>
+
414  GLM_FUNC_DECL tvec3<T, P> operator>>(tvec3<T, P> const & v1, tvec3<T, P> const & v2);
+
415 
+
416  template <typename T, precision P>
+
417  GLM_FUNC_DECL tvec3<T, P> operator~(tvec3<T, P> const & v);
+
418 }//namespace glm
+
419 
+
420 #ifndef GLM_EXTERNAL_TEMPLATE
+
421 #include "type_vec3.inl"
+
422 #endif//GLM_EXTERNAL_TEMPLATE
+
OpenGL Mathematics (glm.g-truc.net)
+
GLM_FUNC_DECL T length(vecType< T, P > const &x)
Returns the length of x, i.e., sqrt(x * x).
+
Definition: _noise.hpp:39
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
diff --git a/doc/api/a00135.html b/doc/api/a00135.html new file mode 100644 index 00000000..8bcf4a08 --- /dev/null +++ b/doc/api/a00135.html @@ -0,0 +1,73 @@ + + + + + + +0.9.6: type_vec4.hpp File Reference + + + + + + +
+
+ + + + + + + +
+
0.9.6 +
+
+
+ + + + + +
+
+
+
type_vec4.hpp File Reference
+
+
+ +

Go to the source code of this file.

+

Detailed Description

+

OpenGL Mathematics (glm.g-truc.net)

+

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+

GLM Core

+
Date
2008-08-22 / 2011-06-15
+
Author
Christophe Riccio
+ +

Definition in file type_vec4.hpp.

+
+ + + + diff --git a/doc/api/a00135_source.html b/doc/api/a00135_source.html index dd104ce6..f91486a9 100644 --- a/doc/api/a00135_source.html +++ b/doc/api/a00135_source.html @@ -3,8 +3,8 @@ - -GLM: type_vec1.hpp Source File + +0.9.6: type_vec4.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,265 +41,493 @@
-
type_vec1.hpp
+
type_vec4.hpp
-
1 
-
29 #ifndef glm_core_type_gentype1
-
30 #define glm_core_type_gentype1
-
31 
-
32 #include "../fwd.hpp"
-
33 #include "type_vec.hpp"
-
34 #ifdef GLM_SWIZZLE
-
35 # if GLM_HAS_ANONYMOUS_UNION
-
36 # include "_swizzle.hpp"
-
37 # else
-
38 # include "_swizzle_func.hpp"
-
39 # endif
-
40 #endif //GLM_SWIZZLE
-
41 #if(GLM_HAS_INITIALIZER_LISTS)
-
42 # include <initializer_list>
-
43 #endif //GLM_HAS_INITIALIZER_LISTS
-
44 #include <cstddef>
-
45 
-
46 namespace glm{
-
47 namespace detail
-
48 {
-
49  template <typename T, precision P>
-
50  struct tvec1
-
51  {
-
53  // Implementation detail
-
54 
-
55  enum ctor{_null};
-
56 
-
57  typedef tvec1<T, P> type;
-
58  typedef tvec1<bool, P> bool_type;
-
59  typedef T value_type;
-
60 
-
62  // Helper
-
63 
-
64  GLM_FUNC_DECL GLM_CONSTEXPR length_t length() const;
-
65 
-
67  // Data
+Go to the documentation of this file.
1 
+
33 #pragma once
+
34 
+
35 //#include "../fwd.hpp"
+
36 #include "setup.hpp"
+
37 #include "type_vec.hpp"
+
38 #ifdef GLM_SWIZZLE
+
39 # if GLM_HAS_ANONYMOUS_UNION
+
40 # include "_swizzle.hpp"
+
41 # else
+
42 # include "_swizzle_func.hpp"
+
43 # endif
+
44 #endif //GLM_SWIZZLE
+
45 #include <cstddef>
+
46 
+
47 namespace glm{
+
48 namespace detail
+
49 {
+
50  template <typename T>
+
51  struct simd
+
52  {
+
53  typedef T type[4];
+
54  };
+
55 
+
56 # if GLM_ARCH & GLM_ARCH_SSE2
+
57  template <>
+
58  struct simd<float>
+
59  {
+
60  typedef __m128 type;
+
61  };
+
62 
+
63  template <>
+
64  struct simd<int>
+
65  {
+
66  typedef __m128i type;
+
67  };
68 
-
69  union {T x, r, s;};
-
70 
-
72  // Accesses
-
73 
-
74  GLM_FUNC_DECL T & operator[](length_t i);
-
75  GLM_FUNC_DECL T const & operator[](length_t i) const;
-
76 
-
78  // Implicit basic constructors
-
79 
-
80  GLM_FUNC_DECL tvec1();
-
81  GLM_FUNC_DECL tvec1(tvec1<T, P> const & v);
-
82  template <precision Q>
-
83  GLM_FUNC_DECL tvec1(tvec1<T, Q> const & v);
-
84 
-
85 #if(GLM_HAS_INITIALIZER_LISTS)
-
86  template <typename U>
-
87  GLM_FUNC_DECL tvec1(std::initializer_list<U> const & v);
-
88 #endif//GLM_HAS_INITIALIZER_LISTS
-
89 
-
91  // Explicit basic constructors
-
92 
-
93  GLM_FUNC_DECL explicit tvec1(
-
94  ctor);
-
95  GLM_FUNC_DECL tvec1(
-
96  T const & s);
+
69  template <>
+
70  struct simd<unsigned int>
+
71  {
+
72  typedef __m128i type;
+
73  };
+
74 # endif
+
75 
+
76 # if GLM_ARCH & GLM_ARCH_AVX
+
77  template <>
+
78  struct simd<double>
+
79  {
+
80  typedef __m256d type;
+
81  };
+
82 # endif
+
83 
+
84 # if GLM_ARCH & GLM_ARCH_AVX2
+
85  template <>
+
86  struct simd<int64>
+
87  {
+
88  typedef __m256i type;
+
89  };
+
90 
+
91  template <>
+
92  struct simd<uint64>
+
93  {
+
94  typedef __m256i type;
+
95  };
+
96 # endif
97 
-
99  // Conversion vector constructors
-
100 
-
102  template <typename U, precision Q>
-
103  GLM_FUNC_DECL explicit tvec1(tvec1<U, Q> const & v);
-
105  template <typename U, precision Q>
-
106  GLM_FUNC_DECL explicit tvec1(tvec2<U, Q> const & v);
-
108  template <typename U, precision Q>
-
109  GLM_FUNC_DECL explicit tvec1(tvec3<U, Q> const & v);
-
111  template <typename U, precision Q>
-
112  GLM_FUNC_DECL explicit tvec1(tvec4<U, Q> const & v);
-
113 
-
115  // Unary arithmetic operators
-
116 
-
117  GLM_FUNC_DECL tvec1<T, P> & operator= (tvec1<T, P> const & v);
-
118  template <typename U>
-
119  GLM_FUNC_DECL tvec1<T, P> & operator= (tvec1<U, P> const & v);
+
98 }//namespace detail
+
99 
+
100  template <typename T, precision P = defaultp>
+
101  struct tvec4
+
102  {
+
104  // Implementation detail
+
105 
+
106  typedef tvec4<T, P> type;
+
107  typedef tvec4<bool, P> bool_type;
+
108  typedef T value_type;
+
109 
+
111  // Data
+
112 
+
113 # if GLM_HAS_ANONYMOUS_UNION
+
114  union
+
115  {
+
116  typename detail::simd<T>::type data;
+
117  struct { T r, g, b, a; };
+
118  struct { T s, t, p, q; };
+
119  struct { T x, y, z, w;};
120 
-
121  template <typename U>
-
122  GLM_FUNC_DECL tvec1<T, P> & operator+=(U const & s);
-
123  template <typename U>
-
124  GLM_FUNC_DECL tvec1<T, P> & operator+=(tvec1<U, P> const & v);
-
125  template <typename U>
-
126  GLM_FUNC_DECL tvec1<T, P> & operator-=(U const & s);
-
127  template <typename U>
-
128  GLM_FUNC_DECL tvec1<T, P> & operator-=(tvec1<U, P> const & v);
-
129  template <typename U>
-
130  GLM_FUNC_DECL tvec1<T, P> & operator*=(U const & s);
-
131  template <typename U>
-
132  GLM_FUNC_DECL tvec1<T, P> & operator*=(tvec1<U, P> const & v);
-
133  template <typename U>
-
134  GLM_FUNC_DECL tvec1<T, P> & operator/=(U const & s);
-
135  template <typename U>
-
136  GLM_FUNC_DECL tvec1<T, P> & operator/=(tvec1<U, P> const & v);
-
137 
-
139  // Increment and decrement operators
-
140 
-
141  GLM_FUNC_DECL tvec1<T, P> & operator++();
-
142  GLM_FUNC_DECL tvec1<T, P> & operator--();
-
143  GLM_FUNC_DECL tvec1<T, P> operator++(int);
-
144  GLM_FUNC_DECL tvec1<T, P> operator--(int);
-
145 
-
147  // Unary bit operators
-
148 
-
149  template <typename U>
-
150  GLM_FUNC_DECL tvec1<T, P> & operator%=(U const & s);
-
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);
-
169  template <typename U>
-
170  GLM_FUNC_DECL tvec1<T, P> & operator>>=(U const & s);
-
171  template <typename U>
-
172  GLM_FUNC_DECL tvec1<T, P> & operator>>=(tvec1<U, P> const & v);
-
173  };
-
174 
-
175 
-
176  template <typename T, precision P>
-
177  GLM_FUNC_DECL tvec1<T, P> operator+(tvec1<T, P> const & v, T const & s);
-
178 
-
179  template <typename T, precision P>
-
180  GLM_FUNC_DECL tvec1<T, P> operator+(T const & s, tvec1<T, P> const & v);
-
181 
-
182  template <typename T, precision P>
-
183  GLM_FUNC_DECL tvec1<T, P> operator+(tvec1<T, P> const & v1, tvec1<T, P> const & v2);
-
184 
-
185  template <typename T, precision P>
-
186  GLM_FUNC_DECL tvec1<T, P> operator-(tvec1<T, P> const & v, T const & s);
-
187 
-
188  template <typename T, precision P>
-
189  GLM_FUNC_DECL tvec1<T, P> operator-(T const & s, tvec1<T, P> const & v);
-
190 
-
191  template <typename T, precision P>
-
192  GLM_FUNC_DECL tvec1<T, P> operator- (tvec1<T, P> const & v1, tvec1<T, P> const & v2);
-
193 
-
194  template <typename T, precision P>
-
195  GLM_FUNC_DECL tvec1<T, P> operator*(tvec1<T, P> const & v, T const & s);
-
196 
-
197  template <typename T, precision P>
-
198  GLM_FUNC_DECL tvec1<T, P> operator*(T const & s, tvec1<T, P> const & v);
-
199 
-
200  template <typename T, precision P>
-
201  GLM_FUNC_DECL tvec1<T, P> operator*(tvec1<T, P> const & v1, tvec1<T, P> const & v2);
-
202 
-
203  template <typename T, precision P>
-
204  GLM_FUNC_DECL tvec1<T, P> operator/(tvec1<T, P> const & v, T const & s);
-
205 
-
206  template <typename T, precision P>
-
207  GLM_FUNC_DECL tvec1<T, P> operator/(T const & s, tvec1<T, P> const & v);
-
208 
-
209  template <typename T, precision P>
-
210  GLM_FUNC_DECL tvec1<T, P> operator/(tvec1<T, P> const & v1, tvec1<T, P> const & v2);
-
211 
-
212  template <typename T, precision P>
-
213  GLM_FUNC_DECL tvec1<T, P> operator-(tvec1<T, P> const & v);
-
214 
-
215  template <typename T, precision P>
-
216  GLM_FUNC_DECL bool operator==(tvec1<T, P> const & v1, tvec1<T, P> const & v2);
-
217 
-
218  template <typename T, precision P>
-
219  GLM_FUNC_DECL bool operator!=(tvec1<T, P> const & v1, tvec1<T, P> const & v2);
-
220 
-
221  template <typename T, precision P>
-
222  GLM_FUNC_DECL tvec1<T, P> operator%(tvec1<T, P> const & v, T const & s);
-
223 
-
224  template <typename T, precision P>
-
225  GLM_FUNC_DECL tvec1<T, P> operator%(T const & s, tvec1<T, P> const & v);
-
226 
-
227  template <typename T, precision P>
-
228  GLM_FUNC_DECL tvec1<T, P> operator%(tvec1<T, P> const & v1, tvec1<T, P> const & v2);
-
229 
-
230  template <typename T, precision P>
-
231  GLM_FUNC_DECL tvec1<T, P> operator&(tvec1<T, P> const & v, T const & s);
-
232 
-
233  template <typename T, precision P>
-
234  GLM_FUNC_DECL tvec1<T, P> operator&(T const & s, tvec1<T, P> const & v);
-
235 
-
236  template <typename T, precision P>
-
237  GLM_FUNC_DECL tvec1<T, P> operator&(tvec1<T, P> const & v1, tvec1<T, P> const & v2);
-
238 
-
239  template <typename T, precision P>
-
240  GLM_FUNC_DECL tvec1<T, P> operator|(tvec1<T, P> const & v, T const & s);
-
241 
-
242  template <typename T, precision P>
-
243  GLM_FUNC_DECL tvec1<T, P> operator|(T const & s, tvec1<T, P> const & v);
-
244 
-
245  template <typename T, precision P>
-
246  GLM_FUNC_DECL tvec1<T, P> operator|(tvec1<T, P> const & v1, tvec1<T, P> const & v2);
-
247 
-
248  template <typename T, precision P>
-
249  GLM_FUNC_DECL tvec1<T, P> operator^(tvec1<T, P> const & v, T const & s);
-
250 
-
251  template <typename T, precision P>
-
252  GLM_FUNC_DECL tvec1<T, P> operator^(T const & s, tvec1<T, P> const & v);
-
253 
-
254  template <typename T, precision P>
-
255  GLM_FUNC_DECL tvec1<T, P> operator^(tvec1<T, P> const & v1, tvec1<T, P> const & v2);
-
256 
-
257  template <typename T, precision P>
-
258  GLM_FUNC_DECL tvec1<T, P> operator<<(tvec1<T, P> const & v, T const & s);
-
259 
-
260  template <typename T, precision P>
-
261  GLM_FUNC_DECL tvec1<T, P> operator<<(T const & s, tvec1<T, P> const & v);
-
262 
-
263  template <typename T, precision P>
-
264  GLM_FUNC_DECL tvec1<T, P> operator<<(tvec1<T, P> const & v1, tvec1<T, P> const & v2);
-
265 
-
266  template <typename T, precision P>
-
267  GLM_FUNC_DECL tvec1<T, P> operator>>(tvec1<T, P> const & v, T const & s);
-
268 
-
269  template <typename T, precision P>
-
270  GLM_FUNC_DECL tvec1<T, P> operator>>(T const & s, tvec1<T, P> const & v);
-
271 
-
272  template <typename T, precision P>
-
273  GLM_FUNC_DECL tvec1<T, P> operator>>(tvec1<T, P> const & v1, tvec1<T, P> const & v2);
-
274 
-
275  template <typename T, precision P>
-
276  GLM_FUNC_DECL tvec1<T, P> operator~(tvec1<T, P> const & v);
-
277 
-
278 }//namespace detail
-
279 }//namespace glm
+
121 # ifdef GLM_SWIZZLE
+
122  _GLM_SWIZZLE4_2_MEMBERS(T, P, tvec2, x, y, z, w)
+
123  _GLM_SWIZZLE4_2_MEMBERS(T, P, tvec2, r, g, b, a)
+
124  _GLM_SWIZZLE4_2_MEMBERS(T, P, tvec2, s, t, p, q)
+
125  _GLM_SWIZZLE4_3_MEMBERS(T, P, tvec3, x, y, z, w)
+
126  _GLM_SWIZZLE4_3_MEMBERS(T, P, tvec3, r, g, b, a)
+
127  _GLM_SWIZZLE4_3_MEMBERS(T, P, tvec3, s, t, p, q)
+
128  _GLM_SWIZZLE4_4_MEMBERS(T, P, tvec4, x, y, z, w)
+
129  _GLM_SWIZZLE4_4_MEMBERS(T, P, tvec4, r, g, b, a)
+
130  _GLM_SWIZZLE4_4_MEMBERS(T, P, tvec4, s, t, p, q)
+
131 # endif//GLM_SWIZZLE
+
132  };
+
133 # else
+
134  union { T x, r, s; };
+
135  union { T y, g, t; };
+
136  union { T z, b, p; };
+
137  union { T w, a, q; };
+
138 
+
139 # ifdef GLM_SWIZZLE
+
140  GLM_SWIZZLE_GEN_VEC_FROM_VEC4(T, P, tvec4, tvec2, tvec3, tvec4)
+
141 # endif//GLM_SWIZZLE
+
142 # endif//GLM_LANG
+
143 
+
145  // Component accesses
+
146 
+
147 # ifdef GLM_FORCE_SIZE_FUNC
+
148  typedef size_t size_type;
+
150  GLM_FUNC_DECL GLM_CONSTEXPR size_type size() const;
+
151 
+
152  GLM_FUNC_DECL T & operator[](size_type i);
+
153  GLM_FUNC_DECL T const & operator[](size_type i) const;
+
154 # else
+
155  typedef length_t length_type;
+
157  GLM_FUNC_DECL GLM_CONSTEXPR length_type length() const;
+
158 
+
159  GLM_FUNC_DECL T & operator[](length_type i);
+
160  GLM_FUNC_DECL T const & operator[](length_type i) const;
+
161 # endif//GLM_FORCE_SIZE_FUNC
+
162 
+
164  // Implicit basic constructors
+
165 
+
166  GLM_FUNC_DECL tvec4();
+
167  template <precision Q>
+
168  GLM_FUNC_DECL tvec4(tvec4<T, Q> const & v);
+
169 
+
171  // Explicit basic constructors
+
172 
+
173  GLM_FUNC_DECL explicit tvec4(ctor);
+
174  GLM_FUNC_DECL explicit tvec4(T s);
+
175  GLM_FUNC_DECL tvec4(T a, T b, T c, T d);
+
176  GLM_FUNC_DECL ~tvec4(){}
+
177 
+
179  // Conversion scalar constructors
+
180 
+
182  template <typename A, typename B, typename C, typename D>
+
183  GLM_FUNC_DECL tvec4(A a, B b, C c, D d);
+
184  template <typename A, typename B, typename C, typename D>
+
185  GLM_FUNC_DECL tvec4(tvec1<A, P> const & a, tvec1<B, P> const & b, tvec1<C, P> const & c, tvec1<D, P> const & d);
+
186 
+
188  // Conversion vector constructors
+
189 
+
191  template <typename A, typename B, typename C, precision Q>
+
192  GLM_FUNC_DECL explicit tvec4(tvec2<A, Q> const & a, B b, C c);
+
194  template <typename A, typename B, typename C, precision Q>
+
195  GLM_FUNC_DECL explicit tvec4(tvec2<A, Q> const & a, tvec1<B, Q> const & b, tvec1<C, Q> const & c);
+
197  template <typename A, typename B, typename C, precision Q>
+
198  GLM_FUNC_DECL explicit tvec4(A a, tvec2<B, Q> const & b, C c);
+
200  template <typename A, typename B, typename C, precision Q>
+
201  GLM_FUNC_DECL explicit tvec4(tvec1<A, Q> const & a, tvec2<B, Q> const & b, tvec1<C, Q> const & c);
+
203  template <typename A, typename B, typename C, precision Q>
+
204  GLM_FUNC_DECL explicit tvec4(A a, B b, tvec2<C, Q> const & c);
+
206  template <typename A, typename B, typename C, precision Q>
+
207  GLM_FUNC_DECL explicit tvec4(tvec1<A, Q> const & a, tvec1<B, Q> const & b, tvec2<C, Q> const & c);
+
209  template <typename A, typename B, precision Q>
+
210  GLM_FUNC_DECL explicit tvec4(tvec3<A, Q> const & a, B b);
+
212  template <typename A, typename B, precision Q>
+
213  GLM_FUNC_DECL explicit tvec4(tvec3<A, Q> const & a, tvec1<B, Q> const & b);
+
215  template <typename A, typename B, precision Q>
+
216  GLM_FUNC_DECL explicit tvec4(A a, tvec3<B, Q> const & b);
+
218  template <typename A, typename B, precision Q>
+
219  GLM_FUNC_DECL explicit tvec4(tvec1<A, Q> const & a, tvec3<B, Q> const & b);
+
221  template <typename A, typename B, precision Q>
+
222  GLM_FUNC_DECL explicit tvec4(tvec2<A, Q> const & a, tvec2<B, Q> const & b);
+
223 
+
224 # ifdef GLM_FORCE_EXPLICIT_CTOR
+
225  template <typename U, precision Q>
+
227  GLM_FUNC_DECL explicit tvec4(tvec4<U, Q> const & v);
+
228 # else
+
229  template <typename U, precision Q>
+
231  GLM_FUNC_DECL tvec4(tvec4<U, Q> const & v);
+
232 # endif
+
233 
+
235  // Swizzle constructors
+
236 
+
237 # if GLM_HAS_ANONYMOUS_UNION && defined(GLM_SWIZZLE)
+
238  template <int E0, int E1, int E2, int E3>
+
239  GLM_FUNC_DECL tvec4(detail::_swizzle<4, T, P, tvec4<T, P>, E0, E1, E2, E3> const & that)
+
240  {
+
241  *this = that();
+
242  }
+
243 
+
244  template <int E0, int E1, int F0, int F1>
+
245  GLM_FUNC_DECL tvec4(detail::_swizzle<2, T, P, tvec2<T, P>, E0, E1, -1, -2> const & v, detail::_swizzle<2, T, P, tvec2<T, P>, F0, F1, -1, -2> const & u)
+
246  {
+
247  *this = tvec4<T, P>(v(), u());
+
248  }
+
249 
+
250  template <int E0, int E1>
+
251  GLM_FUNC_DECL tvec4(T const & x, T const & y, detail::_swizzle<2, T, P, tvec2<T, P>, E0, E1, -1, -2> const & v)
+
252  {
+
253  *this = tvec4<T, P>(x, y, v());
+
254  }
+
255 
+
256  template <int E0, int E1>
+
257  GLM_FUNC_DECL tvec4(T const & x, detail::_swizzle<2, T, P, tvec2<T, P>, E0, E1, -1, -2> const & v, T const & w)
+
258  {
+
259  *this = tvec4<T, P>(x, v(), w);
+
260  }
+
261 
+
262  template <int E0, int E1>
+
263  GLM_FUNC_DECL tvec4(detail::_swizzle<2, T, P, tvec2<T, P>, E0, E1, -1, -2> const & v, T const & z, T const & w)
+
264  {
+
265  *this = tvec4<T, P>(v(), z, w);
+
266  }
+
267 
+
268  template <int E0, int E1, int E2>
+
269  GLM_FUNC_DECL tvec4(detail::_swizzle<3, T, P, tvec3<T, P>, E0, E1, E2, -1> const & v, T const & w)
+
270  {
+
271  *this = tvec4<T, P>(v(), w);
+
272  }
+
273 
+
274  template <int E0, int E1, int E2>
+
275  GLM_FUNC_DECL tvec4(T const & x, detail::_swizzle<3, T, P, tvec3<T, P>, E0, E1, E2, -1> const & v)
+
276  {
+
277  *this = tvec4<T, P>(x, v());
+
278  }
+
279 # endif// GLM_HAS_ANONYMOUS_UNION && defined(GLM_SWIZZLE)
280 
-
281 #ifndef GLM_EXTERNAL_TEMPLATE
-
282 #include "type_vec1.inl"
-
283 #endif//GLM_EXTERNAL_TEMPLATE
-
284 
-
285 #endif//glm_core_type_gentype1
-
GLM_FUNC_DECL genType::value_type length(genType const &x)
Returns the length of x, i.e., sqrt(x * x).
+
282  // Unary arithmetic operators
+
283 
+
284  template <typename U>
+
285  GLM_FUNC_DECL tvec4<T, P> & operator=(tvec4<U, P> const & v);
+
286  template <typename U>
+
287  GLM_FUNC_DECL tvec4<T, P> & operator+=(U scalar);
+
288  template <typename U>
+
289  GLM_FUNC_DECL tvec4<T, P> & operator+=(tvec1<U, P> const & v);
+
290  template <typename U>
+
291  GLM_FUNC_DECL tvec4<T, P> & operator+=(tvec4<U, P> const & v);
+
292  template <typename U>
+
293  GLM_FUNC_DECL tvec4<T, P> & operator-=(U scalar);
+
294  template <typename U>
+
295  GLM_FUNC_DECL tvec4<T, P> & operator-=(tvec1<U, P> const & v);
+
296  template <typename U>
+
297  GLM_FUNC_DECL tvec4<T, P> & operator-=(tvec4<U, P> const & v);
+
298  template <typename U>
+
299  GLM_FUNC_DECL tvec4<T, P> & operator*=(U scalar);
+
300  template <typename U>
+
301  GLM_FUNC_DECL tvec4<T, P> & operator*=(tvec1<U, P> const & v);
+
302  template <typename U>
+
303  GLM_FUNC_DECL tvec4<T, P> & operator*=(tvec4<U, P> const & v);
+
304  template <typename U>
+
305  GLM_FUNC_DECL tvec4<T, P> & operator/=(U scalar);
+
306  template <typename U>
+
307  GLM_FUNC_DECL tvec4<T, P> & operator/=(tvec1<U, P> const & v);
+
308  template <typename U>
+
309  GLM_FUNC_DECL tvec4<T, P> & operator/=(tvec4<U, P> const & v);
+
310 
+
312  // Increment and decrement operators
+
313 
+
314  GLM_FUNC_DECL tvec4<T, P> & operator++();
+
315  GLM_FUNC_DECL tvec4<T, P> & operator--();
+
316  GLM_FUNC_DECL tvec4<T, P> operator++(int);
+
317  GLM_FUNC_DECL tvec4<T, P> operator--(int);
+
318 
+
320  // Unary bit operators
+
321 
+
322  template <typename U>
+
323  GLM_FUNC_DECL tvec4<T, P> & operator%=(U scalar);
+
324  template <typename U>
+
325  GLM_FUNC_DECL tvec4<T, P> & operator%=(tvec1<U, P> const & v);
+
326  template <typename U>
+
327  GLM_FUNC_DECL tvec4<T, P> & operator%=(tvec4<U, P> const & v);
+
328  template <typename U>
+
329  GLM_FUNC_DECL tvec4<T, P> & operator&=(U scalar);
+
330  template <typename U>
+
331  GLM_FUNC_DECL tvec4<T, P> & operator&=(tvec1<U, P> const & v);
+
332  template <typename U>
+
333  GLM_FUNC_DECL tvec4<T, P> & operator&=(tvec4<U, P> const & v);
+
334  template <typename U>
+
335  GLM_FUNC_DECL tvec4<T, P> & operator|=(U scalar);
+
336  template <typename U>
+
337  GLM_FUNC_DECL tvec4<T, P> & operator|=(tvec1<U, P> const & v);
+
338  template <typename U>
+
339  GLM_FUNC_DECL tvec4<T, P> & operator|=(tvec4<U, P> const & v);
+
340  template <typename U>
+
341  GLM_FUNC_DECL tvec4<T, P> & operator^=(U scalar);
+
342  template <typename U>
+
343  GLM_FUNC_DECL tvec4<T, P> & operator^=(tvec1<U, P> const & v);
+
344  template <typename U>
+
345  GLM_FUNC_DECL tvec4<T, P> & operator^=(tvec4<U, P> const & v);
+
346  template <typename U>
+
347  GLM_FUNC_DECL tvec4<T, P> & operator<<=(U scalar);
+
348  template <typename U>
+
349  GLM_FUNC_DECL tvec4<T, P> & operator<<=(tvec1<U, P> const & v);
+
350  template <typename U>
+
351  GLM_FUNC_DECL tvec4<T, P> & operator<<=(tvec4<U, P> const & v);
+
352  template <typename U>
+
353  GLM_FUNC_DECL tvec4<T, P> & operator>>=(U scalar);
+
354  template <typename U>
+
355  GLM_FUNC_DECL tvec4<T, P> & operator>>=(tvec1<U, P> const & v);
+
356  template <typename U>
+
357  GLM_FUNC_DECL tvec4<T, P> & operator>>=(tvec4<U, P> const & v);
+
358  };
+
359 
+
360  template <typename T, precision P>
+
361  GLM_FUNC_DECL tvec4<T, P> operator+(tvec4<T, P> const & v, T scalar);
+
362 
+
363  template <typename T, precision P>
+
364  GLM_FUNC_DECL tvec4<T, P> operator+(tvec4<T, P> const & v, tvec1<T, P> const & s);
+
365 
+
366  template <typename T, precision P>
+
367  GLM_FUNC_DECL tvec4<T, P> operator+(T scalar, tvec4<T, P> const & v);
+
368 
+
369  template <typename T, precision P>
+
370  GLM_FUNC_DECL tvec4<T, P> operator+(tvec1<T, P> const & s, tvec4<T, P> const & v);
+
371 
+
372  template <typename T, precision P>
+
373  GLM_FUNC_DECL tvec4<T, P> operator+(tvec4<T, P> const & v1, tvec4<T, P> const & v2);
+
374 
+
375  template <typename T, precision P>
+
376  GLM_FUNC_DECL tvec4<T, P> operator-(tvec4<T, P> const & v, T scalar);
+
377 
+
378  template <typename T, precision P>
+
379  GLM_FUNC_DECL tvec4<T, P> operator-(tvec4<T, P> const & v, tvec1<T, P> const & s);
+
380 
+
381  template <typename T, precision P>
+
382  GLM_FUNC_DECL tvec4<T, P> operator-(T scalar, tvec4<T, P> const & v);
+
383 
+
384  template <typename T, precision P>
+
385  GLM_FUNC_DECL tvec4<T, P> operator-(tvec1<T, P> const & s, tvec4<T, P> const & v);
+
386 
+
387  template <typename T, precision P>
+
388  GLM_FUNC_DECL tvec4<T, P> operator-(tvec4<T, P> const & v1, tvec4<T, P> const & v2);
+
389 
+
390  template <typename T, precision P>
+
391  GLM_FUNC_DECL tvec4<T, P> operator*(tvec4<T, P> const & v, T scalar);
+
392 
+
393  template <typename T, precision P>
+
394  GLM_FUNC_DECL tvec4<T, P> operator*(tvec4<T, P> const & v, tvec1<T, P> const & s);
+
395 
+
396  template <typename T, precision P>
+
397  GLM_FUNC_DECL tvec4<T, P> operator*(T scalar, tvec4<T, P> const & v);
+
398 
+
399  template <typename T, precision P>
+
400  GLM_FUNC_DECL tvec4<T, P> operator*(tvec1<T, P> const & s, tvec4<T, P> const & v);
+
401 
+
402  template <typename T, precision P>
+
403  GLM_FUNC_DECL tvec4<T, P> operator*(tvec4<T, P> const & v1, tvec4<T, P> const & v2);
+
404 
+
405  template <typename T, precision P>
+
406  GLM_FUNC_DECL tvec4<T, P> operator/(tvec4<T, P> const & v, T scalar);
+
407 
+
408  template <typename T, precision P>
+
409  GLM_FUNC_DECL tvec4<T, P> operator/(tvec4<T, P> const & v, tvec1<T, P> const & s);
+
410 
+
411  template <typename T, precision P>
+
412  GLM_FUNC_DECL tvec4<T, P> operator/(T scalar, tvec4<T, P> const & v);
+
413 
+
414  template <typename T, precision P>
+
415  GLM_FUNC_DECL tvec4<T, P> operator/(tvec1<T, P> const & s, tvec4<T, P> const & v);
+
416 
+
417  template <typename T, precision P>
+
418  GLM_FUNC_DECL tvec4<T, P> operator/(tvec4<T, P> const & v1, tvec4<T, P> const & v2);
+
419 
+
420  template <typename T, precision P>
+
421  GLM_FUNC_DECL tvec4<T, P> operator-(tvec4<T, P> const & v);
+
422 
+
423  template <typename T, precision P>
+
424  GLM_FUNC_DECL bool operator==(tvec4<T, P> const & v1, tvec4<T, P> const & v2);
+
425 
+
426  template <typename T, precision P>
+
427  GLM_FUNC_DECL bool operator!=(tvec4<T, P> const & v1, tvec4<T, P> const & v2);
+
428 
+
429  template <typename T, precision P>
+
430  GLM_FUNC_DECL tvec4<T, P> operator%(tvec4<T, P> const & v, T scalar);
+
431 
+
432  template <typename T, precision P>
+
433  GLM_FUNC_DECL tvec4<T, P> operator%(tvec4<T, P> const & v, tvec1<T, P> const & s);
+
434 
+
435  template <typename T, precision P>
+
436  GLM_FUNC_DECL tvec4<T, P> operator%(T scalar, tvec4<T, P> const & v);
+
437 
+
438  template <typename T, precision P>
+
439  GLM_FUNC_DECL tvec4<T, P> operator%(tvec1<T, P> const & s, tvec4<T, P> const & v);
+
440 
+
441  template <typename T, precision P>
+
442  GLM_FUNC_DECL tvec4<T, P> operator%(tvec4<T, P> const & v1, tvec4<T, P> const & v2);
+
443 
+
444  template <typename T, precision P>
+
445  GLM_FUNC_DECL tvec4<T, P> operator&(tvec4<T, P> const & v, T scalar);
+
446 
+
447  template <typename T, precision P>
+
448  GLM_FUNC_DECL tvec4<T, P> operator&(tvec4<T, P> const & v, tvec1<T, P> const & s);
+
449 
+
450  template <typename T, precision P>
+
451  GLM_FUNC_DECL tvec4<T, P> operator&(T scalar, tvec4<T, P> const & v);
+
452 
+
453  template <typename T, precision P>
+
454  GLM_FUNC_DECL tvec4<T, P> operator&(tvec1<T, P> const & s, tvec4<T, P> const & v);
+
455 
+
456  template <typename T, precision P>
+
457  GLM_FUNC_DECL tvec4<T, P> operator&(tvec4<T, P> const & v1, tvec4<T, P> const & v2);
+
458 
+
459  template <typename T, precision P>
+
460  GLM_FUNC_DECL tvec4<T, P> operator|(tvec4<T, P> const & v, T scalar);
+
461 
+
462  template <typename T, precision P>
+
463  GLM_FUNC_DECL tvec4<T, P> operator|(tvec4<T, P> const & v, tvec1<T, P> const & s);
+
464 
+
465  template <typename T, precision P>
+
466  GLM_FUNC_DECL tvec4<T, P> operator|(T scalar, tvec4<T, P> const & v);
+
467 
+
468  template <typename T, precision P>
+
469  GLM_FUNC_DECL tvec4<T, P> operator|(tvec1<T, P> const & s, tvec4<T, P> const & v);
+
470 
+
471  template <typename T, precision P>
+
472  GLM_FUNC_DECL tvec4<T, P> operator|(tvec4<T, P> const & v1, tvec4<T, P> const & v2);
+
473 
+
474  template <typename T, precision P>
+
475  GLM_FUNC_DECL tvec4<T, P> operator^(tvec4<T, P> const & v, T scalar);
+
476 
+
477  template <typename T, precision P>
+
478  GLM_FUNC_DECL tvec4<T, P> operator^(tvec4<T, P> const & v, tvec1<T, P> const & s);
+
479 
+
480  template <typename T, precision P>
+
481  GLM_FUNC_DECL tvec4<T, P> operator^(T scalar, tvec4<T, P> const & v);
+
482 
+
483  template <typename T, precision P>
+
484  GLM_FUNC_DECL tvec4<T, P> operator^(tvec1<T, P> const & s, tvec4<T, P> const & v);
+
485 
+
486  template <typename T, precision P>
+
487  GLM_FUNC_DECL tvec4<T, P> operator^(tvec4<T, P> const & v1, tvec4<T, P> const & v2);
+
488 
+
489  template <typename T, precision P>
+
490  GLM_FUNC_DECL tvec4<T, P> operator<<(tvec4<T, P> const & v, T scalar);
+
491 
+
492  template <typename T, precision P>
+
493  GLM_FUNC_DECL tvec4<T, P> operator<<(tvec4<T, P> const & v, tvec1<T, P> const & s);
+
494 
+
495  template <typename T, precision P>
+
496  GLM_FUNC_DECL tvec4<T, P> operator<<(T scalar, tvec4<T, P> const & v);
+
497 
+
498  template <typename T, precision P>
+
499  GLM_FUNC_DECL tvec4<T, P> operator<<(tvec1<T, P> const & s, tvec4<T, P> const & v);
+
500 
+
501  template <typename T, precision P>
+
502  GLM_FUNC_DECL tvec4<T, P> operator<<(tvec4<T, P> const & v1, tvec4<T, P> const & v2);
+
503 
+
504  template <typename T, precision P>
+
505  GLM_FUNC_DECL tvec4<T, P> operator>>(tvec4<T, P> const & v, T scalar);
+
506 
+
507  template <typename T, precision P>
+
508  GLM_FUNC_DECL tvec4<T, P> operator>>(tvec4<T, P> const & v, tvec1<T, P> const & s);
+
509 
+
510  template <typename T, precision P>
+
511  GLM_FUNC_DECL tvec4<T, P> operator>>(T scalar, tvec4<T, P> const & v);
+
512 
+
513  template <typename T, precision P>
+
514  GLM_FUNC_DECL tvec4<T, P> operator>>(tvec1<T, P> const & s, tvec4<T, P> const & v);
+
515 
+
516  template <typename T, precision P>
+
517  GLM_FUNC_DECL tvec4<T, P> operator>>(tvec4<T, P> const & v1, tvec4<T, P> const & v2);
+
518 
+
519  template <typename T, precision P>
+
520  GLM_FUNC_DECL tvec4<T, P> operator~(tvec4<T, P> const & v);
+
521 }//namespace glm
+
522 
+
523 #ifndef GLM_EXTERNAL_TEMPLATE
+
524 #include "type_vec4.inl"
+
525 #endif//GLM_EXTERNAL_TEMPLATE
+
OpenGL Mathematics (glm.g-truc.net)
+
GLM_FUNC_DECL T length(vecType< T, P > const &x)
Returns the length of x, i.e., sqrt(x * x).
+
Definition: _noise.hpp:39
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
+
OpenGL Mathematics (glm.g-truc.net)
diff --git a/doc/api/a00136.html b/doc/api/a00136.html new file mode 100644 index 00000000..44c6cdd1 --- /dev/null +++ b/doc/api/a00136.html @@ -0,0 +1,98 @@ + + + + + + +0.9.6: ulp.hpp File Reference + + + + + + +
+
+ + + + + + + +
+
0.9.6 +
+
+
+ + + + + +
+
+ +
+
ulp.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename T >
GLM_FUNC_DECL uint float_distance (T const &x, T const &y)
 
template<typename T , template< typename > class vecType>
GLM_FUNC_DECL vecType< uint > float_distance (vecType< T > const &x, vecType< T > const &y)
 
template<typename genType >
GLM_FUNC_DECL genType next_float (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType next_float (genType const &x, uint const &Distance)
 
template<typename genType >
GLM_FUNC_DECL genType prev_float (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType prev_float (genType const &x, uint const &Distance)
 
+

Detailed Description

+

OpenGL Mathematics (glm.g-truc.net)

+

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+

GLM_GTC_ulp

+
Date
2011-02-21 / 2011-12-12
+
Author
Christophe Riccio
+
See also
GLM Core (dependence)
+ +

Definition in file ulp.hpp.

+
+ + + + diff --git a/doc/api/a00136_source.html b/doc/api/a00136_source.html index a3978312..01f27615 100644 --- a/doc/api/a00136_source.html +++ b/doc/api/a00136_source.html @@ -3,8 +3,8 @@ - -GLM: type_vec2.hpp Source File + +0.9.6: ulp.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,301 +41,61 @@
-
type_vec2.hpp
+
ulp.hpp
-
1 
-
29 #ifndef glm_core_type_gentype2
-
30 #define glm_core_type_gentype2
-
31 
-
32 //#include "../fwd.hpp"
-
33 #include "type_vec.hpp"
-
34 #ifdef GLM_SWIZZLE
-
35 # if GLM_HAS_ANONYMOUS_UNION
-
36 # include "_swizzle.hpp"
-
37 # else
-
38 # include "_swizzle_func.hpp"
-
39 # endif
-
40 #endif //GLM_SWIZZLE
-
41 #if(GLM_HAS_INITIALIZER_LISTS)
-
42 # include <initializer_list>
-
43 #endif //GLM_HAS_INITIALIZER_LISTS
-
44 #include <cstddef>
-
45 
-
46 namespace glm{
-
47 namespace detail
-
48 {
-
49  template <typename T, precision P>
-
50  struct tvec2
-
51  {
-
53  // Implementation detail
-
54 
-
55  enum ctor{_null};
-
56 
-
57  typedef tvec2<T, P> type;
-
58  typedef tvec2<bool, P> bool_type;
-
59  typedef T value_type;
-
60  typedef int size_type;
-
61 
-
63  // Helper
-
64 
-
65  GLM_FUNC_DECL GLM_CONSTEXPR length_t length() const;
-
66 
-
68  // Data
-
69 
-
70 # if(GLM_HAS_ANONYMOUS_UNION && defined(GLM_SWIZZLE))
-
71  union
-
72  {
-
73  struct{ T x, y; };
-
74  struct{ T r, g; };
-
75  struct{ T s, t; };
-
76 
-
77  _GLM_SWIZZLE2_2_MEMBERS(T, P, tvec2, x, y)
-
78  _GLM_SWIZZLE2_2_MEMBERS(T, P, tvec2, r, g)
-
79  _GLM_SWIZZLE2_2_MEMBERS(T, P, tvec2, s, t)
-
80  _GLM_SWIZZLE2_3_MEMBERS(T, P, tvec3, x, y)
-
81  _GLM_SWIZZLE2_3_MEMBERS(T, P, tvec3, r, g)
-
82  _GLM_SWIZZLE2_3_MEMBERS(T, P, tvec3, s, t)
-
83  _GLM_SWIZZLE2_4_MEMBERS(T, P, tvec4, x, y)
-
84  _GLM_SWIZZLE2_4_MEMBERS(T, P, tvec4, r, g)
-
85  _GLM_SWIZZLE2_4_MEMBERS(T, P, tvec4, s, t)
-
86  };
-
87 # else
-
88  union {T x, r, s;};
-
89  union {T y, g, t;};
-
90 
-
91 # ifdef GLM_SWIZZLE
-
92  GLM_SWIZZLE_GEN_VEC_FROM_VEC2(T, P, detail::tvec2, detail::tvec2, detail::tvec3, detail::tvec4)
-
93 # endif
-
94 # endif
-
95 
-
97  // Accesses
-
98 
-
99  GLM_FUNC_DECL T & operator[](length_t i);
-
100  GLM_FUNC_DECL T const & operator[](length_t i) const;
-
101 
-
103  // Implicit basic constructors
-
104 
-
105  GLM_FUNC_DECL tvec2();
-
106  GLM_FUNC_DECL tvec2(tvec2<T, P> const & v);
-
107  template <precision Q>
-
108  GLM_FUNC_DECL tvec2(tvec2<T, Q> const & v);
-
109 
-
110 #if(GLM_HAS_INITIALIZER_LISTS)
-
111  template <typename U>
-
112  GLM_FUNC_DECL tvec2(std::initializer_list<U> const & v);
-
113 #endif//GLM_HAS_INITIALIZER_LISTS
-
114 
-
116  // Explicit basic constructors
-
117 
-
118  GLM_FUNC_DECL explicit tvec2(
-
119  ctor);
-
120  GLM_FUNC_DECL explicit tvec2(
-
121  T const & s);
-
122  GLM_FUNC_DECL explicit tvec2(
-
123  T const & s1,
-
124  T const & s2);
-
125 
-
127  // Swizzle constructors
-
128 
-
129 # if(GLM_HAS_ANONYMOUS_UNION && defined(GLM_SWIZZLE))
-
130  template <int E0, int E1>
-
131  GLM_FUNC_DECL tvec2(_swizzle<2,T, P, tvec2<T, P>, E0, E1,-1,-2> const & that)
-
132  {
-
133  *this = that();
-
134  }
-
135 # endif//(GLM_HAS_ANONYMOUS_UNION && defined(GLM_SWIZZLE))
-
136 
-
138  // Conversion constructors
-
139 
-
141  template <typename U, typename V>
-
142  GLM_FUNC_DECL explicit tvec2(
-
143  U const & x,
-
144  V const & y);
-
145 
-
147  // Conversion vector constructors
-
148 
-
150  template <typename U, precision Q>
-
151  GLM_FUNC_DECL explicit tvec2(tvec2<U, Q> const & v);
-
153  template <typename U, precision Q>
-
154  GLM_FUNC_DECL explicit tvec2(tvec3<U, Q> const & v);
-
156  template <typename U, precision Q>
-
157  GLM_FUNC_DECL explicit tvec2(tvec4<U, Q> const & v);
-
158 
-
160  // Unary arithmetic operators
-
161 
-
162  GLM_FUNC_DECL tvec2<T, P> & operator= (tvec2<T, P> const & v);
-
163  template <typename U>
-
164  GLM_FUNC_DECL tvec2<T, P> & operator= (tvec2<U, P> const & v);
-
165 
-
166  template <typename U>
-
167  GLM_FUNC_DECL tvec2<T, P> & operator+=(U s);
-
168  template <typename U>
-
169  GLM_FUNC_DECL tvec2<T, P> & operator+=(tvec2<U, P> const & v);
-
170  template <typename U>
-
171  GLM_FUNC_DECL tvec2<T, P> & operator-=(U s);
-
172  template <typename U>
-
173  GLM_FUNC_DECL tvec2<T, P> & operator-=(tvec2<U, P> const & v);
-
174  template <typename U>
-
175  GLM_FUNC_DECL tvec2<T, P> & operator*=(U s);
-
176  template <typename U>
-
177  GLM_FUNC_DECL tvec2<T, P> & operator*=(tvec2<U, P> const & v);
-
178  template <typename U>
-
179  GLM_FUNC_DECL tvec2<T, P> & operator/=(U s);
-
180  template <typename U>
-
181  GLM_FUNC_DECL tvec2<T, P> & operator/=(tvec2<U, P> const & v);
-
182 
-
184  // Increment and decrement operators
-
185 
-
186  GLM_FUNC_DECL tvec2<T, P> & operator++();
-
187  GLM_FUNC_DECL tvec2<T, P> & operator--();
-
188  GLM_FUNC_DECL tvec2<T, P> operator++(int);
-
189  GLM_FUNC_DECL tvec2<T, P> operator--(int);
-
190 
-
192  // Unary bit operators
-
193 
-
194  template <typename U>
-
195  GLM_FUNC_DECL tvec2<T, P> & operator%= (U s);
-
196  template <typename U>
-
197  GLM_FUNC_DECL tvec2<T, P> & operator%= (tvec2<U, P> const & v);
-
198  template <typename U>
-
199  GLM_FUNC_DECL tvec2<T, P> & operator&= (U s);
-
200  template <typename U>
-
201  GLM_FUNC_DECL tvec2<T, P> & operator&= (tvec2<U, P> const & v);
-
202  template <typename U>
-
203  GLM_FUNC_DECL tvec2<T, P> & operator|= (U s);
-
204  template <typename U>
-
205  GLM_FUNC_DECL tvec2<T, P> & operator|= (tvec2<U, P> const & v);
-
206  template <typename U>
-
207  GLM_FUNC_DECL tvec2<T, P> & operator^= (U s);
-
208  template <typename U>
-
209  GLM_FUNC_DECL tvec2<T, P> & operator^= (tvec2<U, P> const & v);
-
210  template <typename U>
-
211  GLM_FUNC_DECL tvec2<T, P> & operator<<=(U s);
-
212  template <typename U>
-
213  GLM_FUNC_DECL tvec2<T, P> & operator<<=(tvec2<U, P> const & v);
-
214  template <typename U>
-
215  GLM_FUNC_DECL tvec2<T, P> & operator>>=(U s);
-
216  template <typename U>
-
217  GLM_FUNC_DECL tvec2<T, P> & operator>>=(tvec2<U, P> const & v);
-
218  };
-
219 
-
220  template <typename T, precision P>
-
221  GLM_FUNC_DECL tvec2<T, P> operator+(tvec2<T, P> const & v, T const & s);
-
222 
-
223  template <typename T, precision P>
-
224  GLM_FUNC_DECL tvec2<T, P> operator+(T const & s, tvec2<T, P> const & v);
-
225 
-
226  template <typename T, precision P>
-
227  GLM_FUNC_DECL tvec2<T, P> operator+(tvec2<T, P> const & v1, tvec2<T, P> const & v2);
-
228 
-
229  template <typename T, precision P>
-
230  GLM_FUNC_DECL tvec2<T, P> operator-(tvec2<T, P> const & v, T const & s);
-
231 
-
232  template <typename T, precision P>
-
233  GLM_FUNC_DECL tvec2<T, P> operator-(T const & s, tvec2<T, P> const & v);
-
234 
-
235  template <typename T, precision P>
-
236  GLM_FUNC_DECL tvec2<T, P> operator- (tvec2<T, P> const & v1, tvec2<T, P> const & v2);
-
237 
-
238  template <typename T, precision P>
-
239  GLM_FUNC_DECL tvec2<T, P> operator*(tvec2<T, P> const & v, T const & s);
-
240 
-
241  template <typename T, precision P>
-
242  GLM_FUNC_DECL tvec2<T, P> operator*(T const & s, tvec2<T, P> const & v);
-
243 
-
244  template <typename T, precision P>
-
245  GLM_FUNC_DECL tvec2<T, P> operator*(tvec2<T, P> const & v1, tvec2<T, P> const & v2);
-
246 
-
247  template <typename T, precision P>
-
248  GLM_FUNC_DECL tvec2<T, P> operator/(tvec2<T, P> const & v, T const & s);
-
249 
-
250  template <typename T, precision P>
-
251  GLM_FUNC_DECL tvec2<T, P> operator/(T const & s, tvec2<T, P> const & v);
-
252 
-
253  template <typename T, precision P>
-
254  GLM_FUNC_DECL tvec2<T, P> operator/(tvec2<T, P> const & v1, tvec2<T, P> const & v2);
-
255 
-
256  template <typename T, precision P>
-
257  GLM_FUNC_DECL tvec2<T, P> operator-(tvec2<T, P> const & v);
-
258 
-
259  template <typename T, precision P>
-
260  GLM_FUNC_DECL tvec2<T, P> operator%(tvec2<T, P> const & v, T const & s);
-
261 
-
262  template <typename T, precision P>
-
263  GLM_FUNC_DECL tvec2<T, P> operator%(T const & s, tvec2<T, P> const & v);
-
264 
-
265  template <typename T, precision P>
-
266  GLM_FUNC_DECL tvec2<T, P> operator%(tvec2<T, P> const & v1, tvec2<T, P> const & v2);
-
267 
-
268  template <typename T, precision P>
-
269  GLM_FUNC_DECL tvec2<T, P> operator&(tvec2<T, P> const & v, T const & s);
-
270 
-
271  template <typename T, precision P>
-
272  GLM_FUNC_DECL tvec2<T, P> operator&(T const & s, tvec2<T, P> const & v);
-
273 
-
274  template <typename T, precision P>
-
275  GLM_FUNC_DECL tvec2<T, P> operator&(tvec2<T, P> const & v1, tvec2<T, P> const & v2);
-
276 
-
277  template <typename T, precision P>
-
278  GLM_FUNC_DECL tvec2<T, P> operator|(tvec2<T, P> const & v, T const & s);
-
279 
-
280  template <typename T, precision P>
-
281  GLM_FUNC_DECL tvec2<T, P> operator|(T const & s, tvec2<T, P> const & v);
-
282 
-
283  template <typename T, precision P>
-
284  GLM_FUNC_DECL tvec2<T, P> operator|(tvec2<T, P> const & v1, tvec2<T, P> const & v2);
-
285 
-
286  template <typename T, precision P>
-
287  GLM_FUNC_DECL tvec2<T, P> operator^(tvec2<T, P> const & v, T const & s);
-
288 
-
289  template <typename T, precision P>
-
290  GLM_FUNC_DECL tvec2<T, P> operator^(T const & s, tvec2<T, P> const & v);
-
291 
-
292  template <typename T, precision P>
-
293  GLM_FUNC_DECL tvec2<T, P> operator^(tvec2<T, P> const & v1, tvec2<T, P> const & v2);
-
294 
-
295  template <typename T, precision P>
-
296  GLM_FUNC_DECL tvec2<T, P> operator<<(tvec2<T, P> const & v, T const & s);
-
297 
-
298  template <typename T, precision P>
-
299  GLM_FUNC_DECL tvec2<T, P> operator<<(T const & s, tvec2<T, P> const & v);
-
300 
-
301  template <typename T, precision P>
-
302  GLM_FUNC_DECL tvec2<T, P> operator<<(tvec2<T, P> const & v1, tvec2<T, P> const & v2);
-
303 
-
304  template <typename T, precision P>
-
305  GLM_FUNC_DECL tvec2<T, P> operator>>(tvec2<T, P> const & v, T const & s);
-
306 
-
307  template <typename T, precision P>
-
308  GLM_FUNC_DECL tvec2<T, P> operator>>(T const & s, tvec2<T, P> const & v);
-
309 
-
310  template <typename T, precision P>
-
311  GLM_FUNC_DECL tvec2<T, P> operator>>(tvec2<T, P> const & v1, tvec2<T, P> const & v2);
-
312 
-
313  template <typename T, precision P>
-
314  GLM_FUNC_DECL tvec2<T, P> operator~(tvec2<T, P> const & v);
-
315 
-
316 }//namespace detail
-
317 }//namespace glm
-
318 
-
319 #ifndef GLM_EXTERNAL_TEMPLATE
-
320 #include "type_vec2.inl"
-
321 #endif//GLM_EXTERNAL_TEMPLATE
-
322 
-
323 #endif//glm_core_type_gentype2
-
GLM_FUNC_DECL genType::value_type length(genType const &x)
Returns the length of x, i.e., sqrt(x * x).
+Go to the documentation of this file.
1 
+
43 #pragma once
+
44 
+
45 // Dependencies
+
46 #include "../detail/setup.hpp"
+
47 #include "../detail/precision.hpp"
+
48 #include "../detail/type_int.hpp"
+
49 
+
50 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+
51 # pragma message("GLM: GLM_GTC_ulp extension included")
+
52 #endif
+
53 
+
54 namespace glm
+
55 {
+
58 
+
61  template <typename genType>
+
62  GLM_FUNC_DECL genType next_float(genType const & x);
+
63 
+
66  template <typename genType>
+
67  GLM_FUNC_DECL genType prev_float(genType const & x);
+
68 
+
71  template <typename genType>
+
72  GLM_FUNC_DECL genType next_float(genType const & x, uint const & Distance);
+
73 
+
76  template <typename genType>
+
77  GLM_FUNC_DECL genType prev_float(genType const & x, uint const & Distance);
+
78 
+
81  template <typename T>
+
82  GLM_FUNC_DECL uint float_distance(T const & x, T const & y);
+
83 
+
86  template<typename T, template<typename> class vecType>
+
87  GLM_FUNC_DECL vecType<uint> float_distance(vecType<T> const & x, vecType<T> const & y);
+
88 
+
90 }// namespace glm
+
91 
+
92 #include "ulp.inl"
+
GLM_FUNC_DECL genType prev_float(genType const &x, uint const &Distance)
Return the value(s) ULP distance before the input value(s).
+
unsigned int uint
Unsigned integer type.
Definition: type_int.hpp:306
+
Definition: _noise.hpp:39
+
GLM_FUNC_DECL vecType< uint > float_distance(vecType< T > const &x, vecType< T > const &y)
Return the distance in the number of ULP between 2 vectors.
+
GLM_FUNC_DECL genType next_float(genType const &x, uint const &Distance)
Return the value(s) ULP distance after the input value(s).
diff --git a/doc/api/a00137.html b/doc/api/a00137.html new file mode 100644 index 00000000..c7696243 --- /dev/null +++ b/doc/api/a00137.html @@ -0,0 +1,114 @@ + + + + + + +0.9.6: vec1.hpp File Reference + + + + + + +
+
+ + + + + + + +
+
0.9.6 +
+
+
+ + + + + +
+
+ +
+
vec1.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Typedefs

typedef highp_bvec1 bvec1
 
typedef highp_dvec1 dvec1
 
typedef highp_bvec1_t highp_bvec1
 
typedef highp_dvec1_t highp_dvec1
 
typedef highp_ivec1_t highp_ivec1
 
typedef highp_uvec1_t highp_uvec1
 
typedef highp_ivec1 ivec1
 
typedef lowp_bvec1_t lowp_bvec1
 
typedef lowp_dvec1_t lowp_dvec1
 
typedef lowp_ivec1_t lowp_ivec1
 
typedef lowp_uvec1_t lowp_uvec1
 
typedef mediump_bvec1_t mediump_bvec1
 
typedef mediump_dvec1_t mediump_dvec1
 
typedef mediump_ivec1_t mediump_ivec1
 
typedef mediump_uvec1_t mediump_uvec1
 
typedef highp_uvec1 uvec1
 
typedef highp_vec1 vec1
 
+

Detailed Description

+

OpenGL Mathematics (glm.g-truc.net)

+

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+

GLM_GTC_vec1

+
Date
2010-02-08 / 2011-06-07
+
Author
Christophe Riccio
+
See also
GLM Core (dependence)
+ +

Definition in file vec1.hpp.

+
+ + + + diff --git a/doc/api/a00137_source.html b/doc/api/a00137_source.html index 22b068c9..374b4783 100644 --- a/doc/api/a00137_source.html +++ b/doc/api/a00137_source.html @@ -3,8 +3,8 @@ - -GLM: type_vec3.hpp Source File + +0.9.6: vec1.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,318 +41,122 @@
-
type_vec3.hpp
+
vec1.hpp
-
1 
-
29 #ifndef glm_core_type_gentype3
-
30 #define glm_core_type_gentype3
-
31 
-
32 //#include "../fwd.hpp"
-
33 #include "type_vec.hpp"
-
34 #ifdef GLM_SWIZZLE
-
35 # if GLM_HAS_ANONYMOUS_UNION
-
36 # include "_swizzle.hpp"
-
37 # else
-
38 # include "_swizzle_func.hpp"
-
39 # endif
-
40 #endif //GLM_SWIZZLE
-
41 #if(GLM_HAS_INITIALIZER_LISTS)
-
42 # include <initializer_list>
-
43 #endif //GLM_HAS_INITIALIZER_LISTS
-
44 #include <cstddef>
-
45 
-
46 namespace glm{
-
47 namespace detail
-
48 {
-
49  template <typename T, precision P>
-
50  struct tvec3
-
51  {
-
53  // Implementation detail
-
54 
-
55  enum ctor{_null};
-
56 
-
57  typedef tvec3<T, P> type;
-
58  typedef tvec3<bool, P> bool_type;
-
59  typedef T value_type;
-
60  typedef int size_type;
-
61 
-
63  // Helper
-
64 
-
65  GLM_FUNC_DECL GLM_CONSTEXPR length_t length() const;
-
66 
-
68  // Data
-
69 
-
70 # if(GLM_HAS_ANONYMOUS_UNION && defined(GLM_SWIZZLE))
-
71  union
-
72  {
-
73  struct{ T x, y, z; };
-
74  struct{ T r, g, b; };
-
75  struct{ T s, t, p; };
-
76 
-
77  _GLM_SWIZZLE3_2_MEMBERS(T, P, tvec2, x, y, z)
-
78  _GLM_SWIZZLE3_2_MEMBERS(T, P, tvec2, r, g, b)
-
79  _GLM_SWIZZLE3_2_MEMBERS(T, P, tvec2, s, t, p)
-
80  _GLM_SWIZZLE3_3_MEMBERS(T, P, tvec3, x, y, z)
-
81  _GLM_SWIZZLE3_3_MEMBERS(T, P, tvec3, r, g, b)
-
82  _GLM_SWIZZLE3_3_MEMBERS(T, P, tvec3, s, t, p)
-
83  _GLM_SWIZZLE3_4_MEMBERS(T, P, tvec4, x, y, z)
-
84  _GLM_SWIZZLE3_4_MEMBERS(T, P, tvec4, r, g, b)
-
85  _GLM_SWIZZLE3_4_MEMBERS(T, P, tvec4, s, t, p)
-
86  };
-
87 # else
-
88  union { T x, r, s; };
-
89  union { T y, g, t; };
-
90  union { T z, b, p; };
-
91 
-
92 # ifdef GLM_SWIZZLE
-
93  GLM_SWIZZLE_GEN_VEC_FROM_VEC3(T, P, detail::tvec3, detail::tvec2, detail::tvec3, detail::tvec4)
-
94 # endif
-
95 # endif//GLM_LANG
-
96 
-
98  // Accesses
-
99 
-
100  GLM_FUNC_DECL T & operator[](length_t i);
-
101  GLM_FUNC_DECL T const & operator[](length_t i) const;
+Go to the documentation of this file.
1 
+
41 #pragma once
+
42 
+
43 // Dependency:
+
44 #include "../glm.hpp"
+
45 #include "../detail/type_vec1.hpp"
+
46 
+
47 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+
48 # pragma message("GLM: GLM_GTC_vec1 extension included")
+
49 #endif
+
50 
+
51 namespace glm
+
52 {
+
56  typedef highp_vec1_t highp_vec1;
+
57 
+
61  typedef mediump_vec1_t mediump_vec1;
+
62 
+
66  typedef lowp_vec1_t lowp_vec1;
+
67 
+
71  typedef highp_dvec1_t highp_dvec1;
+
72 
+
76  typedef mediump_dvec1_t mediump_dvec1;
+
77 
+
81  typedef lowp_dvec1_t lowp_dvec1;
+
82 
+
86  typedef highp_ivec1_t highp_ivec1;
+
87 
+
91  typedef mediump_ivec1_t mediump_ivec1;
+
92 
+
96  typedef lowp_ivec1_t lowp_ivec1;
+
97 
+
101  typedef highp_uvec1_t highp_uvec1;
102 
-
104  // Implicit basic constructors
-
105 
-
106  GLM_FUNC_DECL tvec3();
-
107  GLM_FUNC_DECL tvec3(tvec3<T, P> const & v);
-
108  template <precision Q>
-
109  GLM_FUNC_DECL tvec3(tvec3<T, Q> const & v);
-
110 
-
111 #if(GLM_HAS_INITIALIZER_LISTS)
-
112  template <typename U>
-
113  GLM_FUNC_DECL tvec3(std::initializer_list<U> const & v);
-
114 #endif//GLM_HAS_INITIALIZER_LISTS
-
115 
-
117  // Explicit basic constructors
-
118 
-
119  GLM_FUNC_DECL explicit tvec3(
-
120  ctor);
-
121  GLM_FUNC_DECL explicit tvec3(
-
122  T const & s);
-
123  GLM_FUNC_DECL explicit tvec3(
-
124  T const & s1,
-
125  T const & s2,
-
126  T const & s3);
+
106  typedef mediump_uvec1_t mediump_uvec1;
+
107 
+
111  typedef lowp_uvec1_t lowp_uvec1;
+
112 
+
116  typedef highp_bvec1_t highp_bvec1;
+
117 
+
121  typedef mediump_bvec1_t mediump_bvec1;
+
122 
+
126  typedef lowp_bvec1_t lowp_bvec1;
127 
-
129  // Conversion scalar constructors
+
129  // vec1 definition
130 
-
132  template <typename U, typename V, typename W>
-
133  GLM_FUNC_DECL explicit tvec3(
-
134  U const & x,
-
135  V const & y,
-
136  W const & z);
-
137 
-
139  // Conversion vector constructors
-
140 
-
142  template <typename A, typename B, precision Q>
-
143  GLM_FUNC_DECL explicit tvec3(tvec2<A, Q> const & v, B const & s);
-
145  template <typename A, typename B, precision Q>
-
146  GLM_FUNC_DECL explicit tvec3(A const & s, tvec2<B, Q> const & v);
-
148  template <typename U, precision Q>
-
149  GLM_FUNC_DECL explicit tvec3(tvec3<U, Q> const & v);
-
151  template <typename U, precision Q>
-
152  GLM_FUNC_DECL explicit tvec3(tvec4<U, Q> const & v);
-
153 
-
155  // Swizzle constructors
-
156 
-
157 # if(GLM_HAS_ANONYMOUS_UNION && defined(GLM_SWIZZLE))
-
158  template <int E0, int E1, int E2>
-
159  GLM_FUNC_DECL tvec3(_swizzle<3, T, P, tvec3<T, P>, E0, E1, E2, -1> const & that)
-
160  {
-
161  *this = that();
-
162  }
-
163 
-
164  template <int E0, int E1>
-
165  GLM_FUNC_DECL tvec3(_swizzle<2, T, P, tvec2<T, P>, E0, E1, -1, -2> const & v, T const & s)
-
166  {
-
167  *this = tvec3<T, P>(v(), s);
-
168  }
-
169 
-
170  template <int E0, int E1>
-
171  GLM_FUNC_DECL tvec3(T const & s, _swizzle<2, T, P, tvec2<T, P>, E0, E1, -1, -2> const & v)
-
172  {
-
173  *this = tvec3<T, P>(s, v());
-
174  }
-
175 # endif//(GLM_HAS_ANONYMOUS_UNION && defined(GLM_SWIZZLE))
-
176 
-
178  // Unary arithmetic operators
-
179 
-
180  GLM_FUNC_DECL tvec3<T, P> & operator= (tvec3<T, P> const & v);
-
181  template <typename U>
-
182  GLM_FUNC_DECL tvec3<T, P> & operator= (tvec3<U, P> const & v);
-
183 
-
184  template <typename U>
-
185  GLM_FUNC_DECL tvec3<T, P> & operator+=(U s);
-
186  template <typename U>
-
187  GLM_FUNC_DECL tvec3<T, P> & operator+=(tvec3<U, P> const & v);
-
188  template <typename U>
-
189  GLM_FUNC_DECL tvec3<T, P> & operator-=(U s);
-
190  template <typename U>
-
191  GLM_FUNC_DECL tvec3<T, P> & operator-=(tvec3<U, P> const & v);
-
192  template <typename U>
-
193  GLM_FUNC_DECL tvec3<T, P> & operator*=(U s);
-
194  template <typename U>
-
195  GLM_FUNC_DECL tvec3<T, P> & operator*=(tvec3<U, P> const & v);
-
196  template <typename U>
-
197  GLM_FUNC_DECL tvec3<T, P> & operator/=(U s);
-
198  template <typename U>
-
199  GLM_FUNC_DECL tvec3<T, P> & operator/=(tvec3<U, P> const & v);
-
200 
-
202  // Increment and decrement operators
-
203 
-
204  GLM_FUNC_DECL tvec3<T, P> & operator++();
-
205  GLM_FUNC_DECL tvec3<T, P> & operator--();
-
206  GLM_FUNC_DECL tvec3<T, P> operator++(int);
-
207  GLM_FUNC_DECL tvec3<T, P> operator--(int);
-
208 
-
210  // Unary bit operators
-
211 
-
212  template <typename U>
-
213  GLM_FUNC_DECL tvec3<T, P> & operator%= (U s);
-
214  template <typename U>
-
215  GLM_FUNC_DECL tvec3<T, P> & operator%= (tvec3<U, P> const & v);
-
216  template <typename U>
-
217  GLM_FUNC_DECL tvec3<T, P> & operator&= (U s);
-
218  template <typename U>
-
219  GLM_FUNC_DECL tvec3<T, P> & operator&= (tvec3<U, P> const & v);
-
220  template <typename U>
-
221  GLM_FUNC_DECL tvec3<T, P> & operator|= (U s);
-
222  template <typename U>
-
223  GLM_FUNC_DECL tvec3<T, P> & operator|= (tvec3<U, P> const & v);
-
224  template <typename U>
-
225  GLM_FUNC_DECL tvec3<T, P> & operator^= (U s);
-
226  template <typename U>
-
227  GLM_FUNC_DECL tvec3<T, P> & operator^= (tvec3<U, P> const & v);
-
228  template <typename U>
-
229  GLM_FUNC_DECL tvec3<T, P> & operator<<=(U s);
-
230  template <typename U>
-
231  GLM_FUNC_DECL tvec3<T, P> & operator<<=(tvec3<U, P> const & v);
-
232  template <typename U>
-
233  GLM_FUNC_DECL tvec3<T, P> & operator>>=(U s);
-
234  template <typename U>
-
235  GLM_FUNC_DECL tvec3<T, P> & operator>>=(tvec3<U, P> const & v);
-
236  };
-
237 
-
238  template <typename T, precision P>
-
239  GLM_FUNC_DECL tvec3<T, P> operator+(tvec3<T, P> const & v, T const & s);
-
240 
-
241  template <typename T, precision P>
-
242  GLM_FUNC_DECL tvec3<T, P> operator+(T const & s, tvec3<T, P> const & v);
-
243 
-
244  template <typename T, precision P>
-
245  GLM_FUNC_DECL tvec3<T, P> operator+(tvec3<T, P> const & v1, tvec3<T, P> const & v2);
-
246 
-
247  template <typename T, precision P>
-
248  GLM_FUNC_DECL tvec3<T, P> operator-(tvec3<T, P> const & v, T const & s);
-
249 
-
250  template <typename T, precision P>
-
251  GLM_FUNC_DECL tvec3<T, P> operator-(T const & s, tvec3<T, P> const & v);
-
252 
-
253  template <typename T, precision P>
-
254  GLM_FUNC_DECL tvec3<T, P> operator- (tvec3<T, P> const & v1, tvec3<T, P> const & v2);
-
255 
-
256  template <typename T, precision P>
-
257  GLM_FUNC_DECL tvec3<T, P> operator*(tvec3<T, P> const & v, T const & s);
-
258 
-
259  template <typename T, precision P>
-
260  GLM_FUNC_DECL tvec3<T, P> operator*(T const & s, tvec3<T, P> const & v);
-
261 
-
262  template <typename T, precision P>
-
263  GLM_FUNC_DECL tvec3<T, P> operator*(tvec3<T, P> const & v1, tvec3<T, P> const & v2);
-
264 
-
265  template <typename T, precision P>
-
266  GLM_FUNC_DECL tvec3<T, P> operator/(tvec3<T, P> const & v, T const & s);
-
267 
-
268  template <typename T, precision P>
-
269  GLM_FUNC_DECL tvec3<T, P> operator/(T const & s, tvec3<T, P> const & v);
-
270 
-
271  template <typename T, precision P>
-
272  GLM_FUNC_DECL tvec3<T, P> operator/(tvec3<T, P> const & v1, tvec3<T, P> const & v2);
-
273 
-
274  template <typename T, precision P>
-
275  GLM_FUNC_DECL tvec3<T, P> operator-(tvec3<T, P> const & v);
-
276 
-
277  template <typename T, precision P>
-
278  GLM_FUNC_DECL tvec3<T, P> operator%(tvec3<T, P> const & v, T const & s);
-
279 
-
280  template <typename T, precision P>
-
281  GLM_FUNC_DECL tvec3<T, P> operator%(T const & s, tvec3<T, P> const & v);
-
282 
-
283  template <typename T, precision P>
-
284  GLM_FUNC_DECL tvec3<T, P> operator%(tvec3<T, P> const & v1, tvec3<T, P> const & v2);
-
285 
-
286  template <typename T, precision P>
-
287  GLM_FUNC_DECL tvec3<T, P> operator&(tvec3<T, P> const & v, T const & s);
-
288 
-
289  template <typename T, precision P>
-
290  GLM_FUNC_DECL tvec3<T, P> operator&(T const & s, tvec3<T, P> const & v);
-
291 
-
292  template <typename T, precision P>
-
293  GLM_FUNC_DECL tvec3<T, P> operator&(tvec3<T, P> const & v1, tvec3<T, P> const & v2);
-
294 
-
295  template <typename T, precision P>
-
296  GLM_FUNC_DECL tvec3<T, P> operator|(tvec3<T, P> const & v, T const & s);
-
297 
-
298  template <typename T, precision P>
-
299  GLM_FUNC_DECL tvec3<T, P> operator|(T const & s, tvec3<T, P> const & v);
-
300 
-
301  template <typename T, precision P>
-
302  GLM_FUNC_DECL tvec3<T, P> operator|(tvec3<T, P> const & v1, tvec3<T, P> const & v2);
-
303 
-
304  template <typename T, precision P>
-
305  GLM_FUNC_DECL tvec3<T, P> operator^(tvec3<T, P> const & v, T const & s);
-
306 
-
307  template <typename T, precision P>
-
308  GLM_FUNC_DECL tvec3<T, P> operator^(T const & s, tvec3<T, P> const & v);
-
309 
-
310  template <typename T, precision P>
-
311  GLM_FUNC_DECL tvec3<T, P> operator^(tvec3<T, P> const & v1, tvec3<T, P> const & v2);
-
312 
-
313  template <typename T, precision P>
-
314  GLM_FUNC_DECL tvec3<T, P> operator<<(tvec3<T, P> const & v, T const & s);
-
315 
-
316  template <typename T, precision P>
-
317  GLM_FUNC_DECL tvec3<T, P> operator<<(T const & s, tvec3<T, P> const & v);
-
318 
-
319  template <typename T, precision P>
-
320  GLM_FUNC_DECL tvec3<T, P> operator<<(tvec3<T, P> const & v1, tvec3<T, P> const & v2);
-
321 
-
322  template <typename T, precision P>
-
323  GLM_FUNC_DECL tvec3<T, P> operator>>(tvec3<T, P> const & v, T const & s);
-
324 
-
325  template <typename T, precision P>
-
326  GLM_FUNC_DECL tvec3<T, P> operator>>(T const & s, tvec3<T, P> const & v);
-
327 
-
328  template <typename T, precision P>
-
329  GLM_FUNC_DECL tvec3<T, P> operator>>(tvec3<T, P> const & v1, tvec3<T, P> const & v2);
-
330 
-
331  template <typename T, precision P>
-
332  GLM_FUNC_DECL tvec3<T, P> operator~(tvec3<T, P> const & v);
-
333 
-
334 }//namespace detail
-
335 }//namespace glm
-
336 
-
337 #ifndef GLM_EXTERNAL_TEMPLATE
-
338 #include "type_vec3.inl"
-
339 #endif//GLM_EXTERNAL_TEMPLATE
-
340 
-
341 #endif//glm_core_type_gentype3
-
GLM_FUNC_DECL genType::value_type length(genType const &x)
Returns the length of x, i.e., sqrt(x * x).
+
131 #if(defined(GLM_PRECISION_HIGHP_BOOL))
+
132  typedef highp_bvec1 bvec1;
+
133 #elif(defined(GLM_PRECISION_MEDIUMP_BOOL))
+
134  typedef mediump_bvec1 bvec1;
+
135 #elif(defined(GLM_PRECISION_LOWP_BOOL))
+
136  typedef lowp_bvec1 bvec1;
+
137 #else
+
138  typedef highp_bvec1 bvec1;
+
141 #endif//GLM_PRECISION
+
142 
+
143 #if(defined(GLM_PRECISION_HIGHP_FLOAT))
+
144  typedef highp_vec1 vec1;
+
145 #elif(defined(GLM_PRECISION_MEDIUMP_FLOAT))
+
146  typedef mediump_vec1 vec1;
+
147 #elif(defined(GLM_PRECISION_LOWP_FLOAT))
+
148  typedef lowp_vec1 vec1;
+
149 #else
+
150  typedef highp_vec1 vec1;
+
153 #endif//GLM_PRECISION
+
154 
+
155 #if(defined(GLM_PRECISION_HIGHP_DOUBLE))
+
156  typedef highp_dvec1 dvec1;
+
157 #elif(defined(GLM_PRECISION_MEDIUMP_DOUBLE))
+
158  typedef mediump_dvec1 dvec1;
+
159 #elif(defined(GLM_PRECISION_LOWP_DOUBLE))
+
160  typedef lowp_dvec1 dvec1;
+
161 #else
+
162  typedef highp_dvec1 dvec1;
+
165 #endif//GLM_PRECISION
+
166 
+
167 #if(defined(GLM_PRECISION_HIGHP_INT))
+
168  typedef highp_ivec1 ivec1;
+
169 #elif(defined(GLM_PRECISION_MEDIUMP_INT))
+
170  typedef mediump_ivec1 ivec1;
+
171 #elif(defined(GLM_PRECISION_LOWP_INT))
+
172  typedef lowp_ivec1 ivec1;
+
173 #else
+
174  typedef highp_ivec1 ivec1;
+
177 #endif//GLM_PRECISION
+
178 
+
179 #if(defined(GLM_PRECISION_HIGHP_UINT))
+
180  typedef highp_uvec1 uvec1;
+
181 #elif(defined(GLM_PRECISION_MEDIUMP_UINT))
+
182  typedef mediump_uvec1 uvec1;
+
183 #elif(defined(GLM_PRECISION_LOWP_UINT))
+
184  typedef lowp_uvec1 uvec1;
+
185 #else
+
186  typedef highp_uvec1 uvec1;
+
189 #endif//GLM_PRECISION
+
190 
+
191 }// namespace glm
+
192 
+
193 #include "vec1.inl"
+
tvec1< float, highp > highp_vec1
High single-precision floating-point vector of 1 component.
Definition: fwd.hpp:1613
+
tvec1< float, mediump > mediump_vec1
Medium single-precision floating-point vector of 1 component.
Definition: fwd.hpp:1580
+
tvec1< float, lowp > lowp_vec1
Low single-precision floating-point vector of 1 component.
Definition: fwd.hpp:1547
+
Definition: _noise.hpp:39
diff --git a/doc/api/a00138.html b/doc/api/a00138.html new file mode 100644 index 00000000..11e48034 --- /dev/null +++ b/doc/api/a00138.html @@ -0,0 +1,73 @@ + + + + + + +0.9.6: vec2.hpp File Reference + + + + + + +
+
+ + + + + + + +
+
0.9.6 +
+
+
+ + + + + +
+
+
+
vec2.hpp File Reference
+
+
+ +

Go to the source code of this file.

+

Detailed Description

+

OpenGL Mathematics (glm.g-truc.net)

+

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+

GLM Core

+
Date
2013-12-24 / 2013-12-24
+
Author
Christophe Riccio
+ +

Definition in file vec2.hpp.

+
+ + + + diff --git a/doc/api/a00138_source.html b/doc/api/a00138_source.html index b962dc52..30991129 100644 --- a/doc/api/a00138_source.html +++ b/doc/api/a00138_source.html @@ -3,8 +3,8 @@ - -GLM: type_vec4.hpp Source File + +0.9.6: vec2.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,358 +41,25 @@
-
type_vec4.hpp
+
vec2.hpp
-
1 
-
29 #ifndef glm_core_type_gentype4
-
30 #define glm_core_type_gentype4
-
31 
-
32 //#include "../fwd.hpp"
-
33 #include "setup.hpp"
-
34 #include "type_vec.hpp"
-
35 #ifdef GLM_SWIZZLE
-
36 # if GLM_HAS_ANONYMOUS_UNION
-
37 # include "_swizzle.hpp"
-
38 # else
-
39 # include "_swizzle_func.hpp"
-
40 # endif
-
41 #endif //GLM_SWIZZLE
-
42 #if(GLM_HAS_INITIALIZER_LISTS)
-
43 # include <initializer_list>
-
44 #endif //GLM_HAS_INITIALIZER_LISTS
-
45 #include <cstddef>
-
46 
-
47 namespace glm{
-
48 namespace detail
-
49 {
-
50  template <typename T, precision P>
-
51  struct tvec4
-
52  {
-
54  // Implementation detail
-
55 
-
56  enum ctor{_null};
-
57 
-
58  typedef tvec4<T, P> type;
-
59  typedef tvec4<bool, P> bool_type;
-
60  typedef T value_type;
-
61  typedef int size_type;
-
62 
-
64  // Helper
-
65 
-
66  GLM_FUNC_DECL GLM_CONSTEXPR length_t length() const;
-
67 
-
69  // Data
-
70 
-
71 # if(GLM_HAS_ANONYMOUS_UNION && defined(GLM_SWIZZLE))
-
72  union
-
73  {
-
74  struct { T r, g, b, a; };
-
75  struct { T s, t, p, q; };
-
76  struct { T x, y, z, w;};
-
77 
-
78  _GLM_SWIZZLE4_2_MEMBERS(T, P, tvec2, x, y, z, w)
-
79  _GLM_SWIZZLE4_2_MEMBERS(T, P, tvec2, r, g, b, a)
-
80  _GLM_SWIZZLE4_2_MEMBERS(T, P, tvec2, s, t, p, q)
-
81  _GLM_SWIZZLE4_3_MEMBERS(T, P, tvec3, x, y, z, w)
-
82  _GLM_SWIZZLE4_3_MEMBERS(T, P, tvec3, r, g, b, a)
-
83  _GLM_SWIZZLE4_3_MEMBERS(T, P, tvec3, s, t, p, q)
-
84  _GLM_SWIZZLE4_4_MEMBERS(T, P, tvec4, x, y, z, w)
-
85  _GLM_SWIZZLE4_4_MEMBERS(T, P, tvec4, r, g, b, a)
-
86  _GLM_SWIZZLE4_4_MEMBERS(T, P, tvec4, s, t, p, q)
-
87  };
-
88 # else
-
89  union { T x, r, s; };
-
90  union { T y, g, t; };
-
91  union { T z, b, p; };
-
92  union { T w, a, q; };
-
93 
-
94 # ifdef GLM_SWIZZLE
-
95  GLM_SWIZZLE_GEN_VEC_FROM_VEC4(T, P, detail::tvec4, detail::tvec2, detail::tvec3, detail::tvec4)
-
96 # endif
-
97 # endif//GLM_LANG
-
98 
-
100  // Accesses
-
101 
-
102  GLM_FUNC_DECL T & operator[](length_t i);
-
103  GLM_FUNC_DECL T const & operator[](length_t i) const;
-
104 
-
106  // Implicit basic constructors
-
107 
-
108  GLM_FUNC_DECL tvec4();
-
109  GLM_FUNC_DECL tvec4(type const & v);
-
110  template <precision Q>
-
111  GLM_FUNC_DECL tvec4(tvec4<T, Q> const & v);
-
112 
-
113 #if(GLM_HAS_INITIALIZER_LISTS)
-
114  template <typename U>
-
115  GLM_FUNC_DECL tvec4(std::initializer_list<U> l);
-
116 #endif//GLM_HAS_INITIALIZER_LISTS
-
117 
-
119  // Explicit basic constructors
-
120 
-
121  GLM_FUNC_DECL explicit tvec4(
-
122  ctor);
-
123  GLM_FUNC_DECL explicit tvec4(
-
124  T const & s);
-
125  GLM_FUNC_DECL explicit tvec4(
-
126  T const & s0,
-
127  T const & s1,
-
128  T const & s2,
-
129  T const & s3);
-
130 
-
132  // Conversion scalar constructors
-
133 
-
135  template <typename A, typename B, typename C, typename D>
-
136  GLM_FUNC_DECL explicit tvec4(
-
137  A const & x,
-
138  B const & y,
-
139  C const & z,
-
140  D const & w);
-
141 
-
143  // Conversion vector constructors
-
144 
-
146  template <typename A, typename B, typename C, precision Q>
-
147  GLM_FUNC_DECL explicit tvec4(tvec2<A, Q> const & v, B const & s1, C const & s2);
-
149  template <typename A, typename B, typename C, precision Q>
-
150  GLM_FUNC_DECL explicit tvec4(A const & s1, tvec2<B, Q> const & v, C const & s2);
-
152  template <typename A, typename B, typename C, precision Q>
-
153  GLM_FUNC_DECL explicit tvec4(A const & s1, B const & s2, tvec2<C, Q> const & v);
-
155  template <typename A, typename B, precision Q>
-
156  GLM_FUNC_DECL explicit tvec4(tvec3<A, Q> const & v, B const & s);
-
158  template <typename A, typename B, precision Q>
-
159  GLM_FUNC_DECL explicit tvec4(A const & s, tvec3<B, Q> const & v);
-
161  template <typename A, typename B, precision Q>
-
162  GLM_FUNC_DECL explicit tvec4(tvec2<A, Q> const & v1, tvec2<B, Q> const & v2);
-
164  template <typename U, precision Q>
-
165  GLM_FUNC_DECL explicit tvec4(tvec4<U, Q> const & v);
-
166 
-
168  // Swizzle constructors
-
169 
-
170 # if(GLM_HAS_ANONYMOUS_UNION && defined(GLM_SWIZZLE))
-
171  template <int E0, int E1, int E2, int E3>
-
172  GLM_FUNC_DECL tvec4(_swizzle<4, T, P, tvec4<T, P>, E0, E1, E2, E3> const & that)
-
173  {
-
174  *this = that();
-
175  }
-
176 
-
177  template <int E0, int E1, int F0, int F1>
-
178  GLM_FUNC_DECL tvec4(_swizzle<2, T, P, tvec2<T, P>, E0, E1, -1, -2> const & v, _swizzle<2, T, P, tvec2<T, P>, F0, F1, -1, -2> const & u)
-
179  {
-
180  *this = tvec4<T, P>(v(), u());
-
181  }
-
182 
-
183  template <int E0, int E1>
-
184  GLM_FUNC_DECL tvec4(T const & x, T const & y, _swizzle<2, T, P, tvec2<T, P>, E0, E1, -1, -2> const & v)
-
185  {
-
186  *this = tvec4<T, P>(x, y, v());
-
187  }
-
188 
-
189  template <int E0, int E1>
-
190  GLM_FUNC_DECL tvec4(T const & x, _swizzle<2, T, P, tvec2<T, P>, E0, E1, -1, -2> const & v, T const & w)
-
191  {
-
192  *this = tvec4<T, P>(x, v(), w);
-
193  }
-
194 
-
195  template <int E0, int E1>
-
196  GLM_FUNC_DECL tvec4(_swizzle<2, T, P, tvec2<T, P>, E0, E1, -1, -2> const & v, T const & z, T const & w)
-
197  {
-
198  *this = tvec4<T, P>(v(), z, w);
-
199  }
-
200 
-
201  template <int E0, int E1, int E2>
-
202  GLM_FUNC_DECL tvec4(_swizzle<3, T, P, tvec3<T, P>, E0, E1, E2, -1> const & v, T const & w)
-
203  {
-
204  *this = tvec4<T, P>(v(), w);
-
205  }
-
206 
-
207  template <int E0, int E1, int E2>
-
208  GLM_FUNC_DECL tvec4(T const & x, _swizzle<3, T, P, tvec3<T, P>, E0, E1, E2, -1> const & v)
-
209  {
-
210  *this = tvec4<T, P>(x, v());
-
211  }
-
212 # endif//(GLM_HAS_ANONYMOUS_UNION && defined(GLM_SWIZZLE))
-
213 
-
215  // Unary arithmetic operators
-
216 
-
217  GLM_FUNC_DECL tvec4<T, P> & operator= (tvec4<T, P> const & v);
-
218  template <typename U, precision Q>
-
219  GLM_FUNC_DECL tvec4<T, P> & operator= (tvec4<U, Q> const & v);
-
220 
-
221  template <typename U>
-
222  GLM_FUNC_DECL tvec4<T, P> & operator+=(U s);
-
223  template <typename U>
-
224  GLM_FUNC_DECL tvec4<T, P> & operator+=(tvec4<U, P> const & v);
-
225  template <typename U>
-
226  GLM_FUNC_DECL tvec4<T, P> & operator-=(U s);
-
227  template <typename U>
-
228  GLM_FUNC_DECL tvec4<T, P> & operator-=(tvec4<U, P> const & v);
-
229  template <typename U>
-
230  GLM_FUNC_DECL tvec4<T, P> & operator*=(U s);
-
231  template <typename U>
-
232  GLM_FUNC_DECL tvec4<T, P> & operator*=(tvec4<U, P> const & v);
-
233  template <typename U>
-
234  GLM_FUNC_DECL tvec4<T, P> & operator/=(U s);
-
235  template <typename U>
-
236  GLM_FUNC_DECL tvec4<T, P> & operator/=(tvec4<U, P> const & v);
-
237 
-
239  // Increment and decrement operators
-
240 
-
241  GLM_FUNC_DECL tvec4<T, P> & operator++();
-
242  GLM_FUNC_DECL tvec4<T, P> & operator--();
-
243  GLM_FUNC_DECL tvec4<T, P> operator++(int);
-
244  GLM_FUNC_DECL tvec4<T, P> operator--(int);
-
245 
-
247  // Unary bit operators
-
248 
-
249  template <typename U>
-
250  GLM_FUNC_DECL tvec4<T, P> & operator%= (U s);
-
251  template <typename U>
-
252  GLM_FUNC_DECL tvec4<T, P> & operator%= (tvec4<U, P> const & v);
-
253  template <typename U>
-
254  GLM_FUNC_DECL tvec4<T, P> & operator&= (U s);
-
255  template <typename U>
-
256  GLM_FUNC_DECL tvec4<T, P> & operator&= (tvec4<U, P> const & v);
-
257  template <typename U>
-
258  GLM_FUNC_DECL tvec4<T, P> & operator|= (U s);
-
259  template <typename U>
-
260  GLM_FUNC_DECL tvec4<T, P> & operator|= (tvec4<U, P> const & v);
-
261  template <typename U>
-
262  GLM_FUNC_DECL tvec4<T, P> & operator^= (U s);
-
263  template <typename U>
-
264  GLM_FUNC_DECL tvec4<T, P> & operator^= (tvec4<U, P> const & v);
-
265  template <typename U>
-
266  GLM_FUNC_DECL tvec4<T, P> & operator<<=(U s);
-
267  template <typename U>
-
268  GLM_FUNC_DECL tvec4<T, P> & operator<<=(tvec4<U, P> const & v);
-
269  template <typename U>
-
270  GLM_FUNC_DECL tvec4<T, P> & operator>>=(U s);
-
271  template <typename U>
-
272  GLM_FUNC_DECL tvec4<T, P> & operator>>=(tvec4<U, P> const & v);
-
273  };
-
274 
-
275  template <typename T, precision P>
-
276  GLM_FUNC_DECL tvec4<T, P> operator+(tvec4<T, P> const & v, T const & s);
-
277 
-
278  template <typename T, precision P>
-
279  GLM_FUNC_DECL tvec4<T, P> operator+(T const & s, tvec4<T, P> const & v);
-
280 
-
281  template <typename T, precision P>
-
282  GLM_FUNC_DECL tvec4<T, P> operator+(tvec4<T, P> const & v1, tvec4<T, P> const & v2);
-
283 
-
284  template <typename T, precision P>
-
285  GLM_FUNC_DECL tvec4<T, P> operator-(tvec4<T, P> const & v, T const & s);
-
286 
-
287  template <typename T, precision P>
-
288  GLM_FUNC_DECL tvec4<T, P> operator-(T const & s, tvec4<T, P> const & v);
-
289 
-
290  template <typename T, precision P>
-
291  GLM_FUNC_DECL tvec4<T, P> operator- (tvec4<T, P> const & v1, tvec4<T, P> const & v2);
-
292 
-
293  template <typename T, precision P>
-
294  GLM_FUNC_DECL tvec4<T, P> operator*(tvec4<T, P> const & v, T const & s);
-
295 
-
296  template <typename T, precision P>
-
297  GLM_FUNC_DECL tvec4<T, P> operator*(T const & s, tvec4<T, P> const & v);
-
298 
-
299  template <typename T, precision P>
-
300  GLM_FUNC_DECL tvec4<T, P> operator*(tvec4<T, P> const & v1, tvec4<T, P> const & v2);
-
301 
-
302  template <typename T, precision P>
-
303  GLM_FUNC_DECL tvec4<T, P> operator/(tvec4<T, P> const & v, T const & s);
-
304 
-
305  template <typename T, precision P>
-
306  GLM_FUNC_DECL tvec4<T, P> operator/(T const & s, tvec4<T, P> const & v);
-
307 
-
308  template <typename T, precision P>
-
309  GLM_FUNC_DECL tvec4<T, P> operator/(tvec4<T, P> const & v1, tvec4<T, P> const & v2);
-
310 
-
311  template <typename T, precision P>
-
312  GLM_FUNC_DECL tvec4<T, P> operator-(tvec4<T, P> const & v);
-
313 
-
314  template <typename T, precision P>
-
315  GLM_FUNC_DECL bool operator==(tvec4<T, P> const & v1, tvec4<T, P> const & v2);
-
316 
-
317  template <typename T, precision P>
-
318  GLM_FUNC_DECL bool operator!=(tvec4<T, P> const & v1, tvec4<T, P> const & v2);
-
319 
-
320  template <typename T, precision P>
-
321  GLM_FUNC_DECL tvec4<T, P> operator%(tvec4<T, P> const & v, T const & s);
-
322 
-
323  template <typename T, precision P>
-
324  GLM_FUNC_DECL tvec4<T, P> operator%(T const & s, tvec4<T, P> const & v);
-
325 
-
326  template <typename T, precision P>
-
327  GLM_FUNC_DECL tvec4<T, P> operator%(tvec4<T, P> const & v1, tvec4<T, P> const & v2);
-
328 
-
329  template <typename T, precision P>
-
330  GLM_FUNC_DECL tvec4<T, P> operator&(tvec4<T, P> const & v, T const & s);
-
331 
-
332  template <typename T, precision P>
-
333  GLM_FUNC_DECL tvec4<T, P> operator&(T const & s, tvec4<T, P> const & v);
-
334 
-
335  template <typename T, precision P>
-
336  GLM_FUNC_DECL tvec4<T, P> operator&(tvec4<T, P> const & v1, tvec4<T, P> const & v2);
-
337 
-
338  template <typename T, precision P>
-
339  GLM_FUNC_DECL tvec4<T, P> operator|(tvec4<T, P> const & v, T const & s);
-
340 
-
341  template <typename T, precision P>
-
342  GLM_FUNC_DECL tvec4<T, P> operator|(T const & s, tvec4<T, P> const & v);
-
343 
-
344  template <typename T, precision P>
-
345  GLM_FUNC_DECL tvec4<T, P> operator|(tvec4<T, P> const & v1, tvec4<T, P> const & v2);
-
346 
-
347  template <typename T, precision P>
-
348  GLM_FUNC_DECL tvec4<T, P> operator^(tvec4<T, P> const & v, T const & s);
-
349 
-
350  template <typename T, precision P>
-
351  GLM_FUNC_DECL tvec4<T, P> operator^(T const & s, tvec4<T, P> const & v);
-
352 
-
353  template <typename T, precision P>
-
354  GLM_FUNC_DECL tvec4<T, P> operator^(tvec4<T, P> const & v1, tvec4<T, P> const & v2);
-
355 
-
356  template <typename T, precision P>
-
357  GLM_FUNC_DECL tvec4<T, P> operator<<(tvec4<T, P> const & v, T const & s);
-
358 
-
359  template <typename T, precision P>
-
360  GLM_FUNC_DECL tvec4<T, P> operator<<(T const & s, tvec4<T, P> const & v);
-
361 
-
362  template <typename T, precision P>
-
363  GLM_FUNC_DECL tvec4<T, P> operator<<(tvec4<T, P> const & v1, tvec4<T, P> const & v2);
-
364 
-
365  template <typename T, precision P>
-
366  GLM_FUNC_DECL tvec4<T, P> operator>>(tvec4<T, P> const & v, T const & s);
-
367 
-
368  template <typename T, precision P>
-
369  GLM_FUNC_DECL tvec4<T, P> operator>>(T const & s, tvec4<T, P> const & v);
-
370 
-
371  template <typename T, precision P>
-
372  GLM_FUNC_DECL tvec4<T, P> operator>>(tvec4<T, P> const & v1, tvec4<T, P> const & v2);
-
373 
-
374  template <typename T, precision P>
-
375  GLM_FUNC_DECL tvec4<T, P> operator~(tvec4<T, P> const & v);
-
376 
-
377 }//namespace detail
-
378 }//namespace glm
-
379 
-
380 #ifndef GLM_EXTERNAL_TEMPLATE
-
381 #include "type_vec4.inl"
-
382 #endif//GLM_EXTERNAL_TEMPLATE
-
383 
-
384 #endif//glm_core_type_gentype4
-
GLM_FUNC_DECL genType::value_type length(genType const &x)
Returns the length of x, i.e., sqrt(x * x).
+Go to the documentation of this file.
1 
+
33 #pragma once
+
34 
+
35 #include "detail/type_vec2.hpp"
+
OpenGL Mathematics (glm.g-truc.net)
diff --git a/doc/api/a00139.html b/doc/api/a00139.html index e317811f..97ab9851 100644 --- a/doc/api/a00139.html +++ b/doc/api/a00139.html @@ -3,8 +3,8 @@ - -GLM: ulp.hpp File Reference + +0.9.6: vec3.hpp File Reference @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,63 +41,33 @@
-
-Namespaces | -Functions
-
gtc/ulp.hpp File Reference
+
vec3.hpp File Reference

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
- - - - - - - - - - - - - - - - - - - -

-Functions

template<typename T >
GLM_FUNC_DECL uint float_distance (T const &x, T const &y)
 
template<typename T , template< typename > class vecType>
GLM_FUNC_DECL vecType< uint > float_distance (vecType< T > const &x, vecType< T > const &y)
 
template<typename genType >
GLM_FUNC_DECL genType next_float (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType next_float (genType const &x, uint const &Distance)
 
template<typename genType >
GLM_FUNC_DECL genType prev_float (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType prev_float (genType const &x, uint const &Distance)
 

Detailed Description

OpenGL Mathematics (glm.g-truc.net)

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTC_ulp

-
Date
2011-02-21 / 2011-12-12
-
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
+

GLM Core

+
Date
2013-12-24 / 2013-12-24
+
Author
Christophe Riccio
-

Definition in file gtc/ulp.hpp.

+

Definition in file vec3.hpp.

diff --git a/doc/api/a00139_source.html b/doc/api/a00139_source.html index 26229656..ecf888f3 100644 --- a/doc/api/a00139_source.html +++ b/doc/api/a00139_source.html @@ -3,8 +3,8 @@ - -GLM: ulp.hpp Source File + +0.9.6: vec3.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,64 +41,25 @@
-
gtc/ulp.hpp
+
vec3.hpp
Go to the documentation of this file.
1 
-
39 #ifndef GLM_GTC_ulp
-
40 #define GLM_GTC_ulp
-
41 
-
42 // Dependencies
-
43 #include "../detail/setup.hpp"
-
44 #include "../detail/precision.hpp"
-
45 #include "../detail/type_int.hpp"
-
46 
-
47 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
48 # pragma message("GLM: GLM_GTC_ulp extension included")
-
49 #endif
-
50 
-
51 namespace glm
-
52 {
-
55 
-
58  template <typename genType>
-
59  GLM_FUNC_DECL genType next_float(genType const & x);
-
60 
-
63  template <typename genType>
-
64  GLM_FUNC_DECL genType prev_float(genType const & x);
-
65 
-
68  template <typename genType>
-
69  GLM_FUNC_DECL genType next_float(genType const & x, uint const & Distance);
-
70 
-
73  template <typename genType>
-
74  GLM_FUNC_DECL genType prev_float(genType const & x, uint const & Distance);
-
75 
-
78  template <typename T>
-
79  GLM_FUNC_DECL uint float_distance(T const & x, T const & y);
-
80 
-
83  template<typename T, template<typename> class vecType>
-
84  GLM_FUNC_DECL vecType<uint> float_distance(vecType<T> const & x, vecType<T> const & y);
-
85 
-
87 }// namespace glm
-
88 
-
89 #include "ulp.inl"
-
90 
-
91 #endif//GLM_GTC_ulp
-
92 
-
GLM_FUNC_DECL genType next_float(genType const &x)
Return the next ULP value(s) after the input value(s).
-
unsigned int uint
Unsigned integer type.
Definition: type_int.hpp:171
-
GLM_FUNC_DECL uint float_distance(T const &x, T const &y)
Return the distance in the number of ULP between 2 scalars.
-
GLM_FUNC_DECL genType prev_float(genType const &x)
Return the previous ULP value(s) before the input value(s).
+
33 #pragma once
+
34 
+
35 #include "detail/type_vec3.hpp"
+
OpenGL Mathematics (glm.g-truc.net)
diff --git a/doc/api/a00145.html b/doc/api/a00140.html similarity index 73% rename from doc/api/a00145.html rename to doc/api/a00140.html index dab97b44..2e397e01 100644 --- a/doc/api/a00145.html +++ b/doc/api/a00140.html @@ -3,8 +3,8 @@ - -GLM: vec4.hpp File Reference + +0.9.6: vec4.hpp File Reference @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,7 +41,7 @@
@@ -52,23 +50,24 @@
-

Go to the source code of this file.

+

Go to the source code of this file.

Detailed Description

OpenGL Mathematics (glm.g-truc.net)

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM Core

+

GLM Core

Date
2013-12-24 / 2013-12-24
Author
Christophe Riccio
-

Definition in file vec4.hpp.

+

Definition in file vec4.hpp.

diff --git a/doc/api/a00140_source.html b/doc/api/a00140_source.html index 8fa1ec2b..7651aeb6 100644 --- a/doc/api/a00140_source.html +++ b/doc/api/a00140_source.html @@ -3,8 +3,8 @@ - -GLM: ulp.hpp Source File + +0.9.6: vec4.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,27 +41,25 @@
-
gtx/ulp.hpp
+
vec4.hpp
-
1 
-
24 #if(defined(GLM_MESSAGES))
-
25 # pragma message("GLM: GLM_GTX_ulp extension is deprecated, include GLM_GTC_ulp (glm/gtc/ulp.hpp) instead")
-
26 #endif
-
27 
-
28 // Promoted:
-
29 #include "../gtc/ulp.hpp"
+Go to the documentation of this file.
1 
+
33 #pragma once
+
34 
+
35 #include "detail/type_vec4.hpp"
+
OpenGL Mathematics (glm.g-truc.net)
diff --git a/doc/api/a00146.html b/doc/api/a00141.html similarity index 53% rename from doc/api/a00146.html rename to doc/api/a00141.html index bdaac867..7e377735 100644 --- a/doc/api/a00146.html +++ b/doc/api/a00141.html @@ -3,8 +3,8 @@ - -GLM: vector_angle.hpp File Reference + +0.9.6: vector_angle.hpp File Reference @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,59 +41,53 @@
-Namespaces | Functions
vector_angle.hpp File Reference
-

Go to the source code of this file.

+

Go to the source code of this file.

- - - -

-Namespaces

 glm
 
- - - - - - - - - + + + + + + + + +

Functions

template<typename vecType >
GLM_FUNC_QUALIFIER
-vecType::value_type 
angle (vecType const &x, vecType const &y)
 
template<typename T , precision P>
GLM_FUNC_QUALIFIER T orientedAngle (detail::tvec2< T, P > const &x, detail::tvec2< T, P > const &y)
 
template<typename T , precision P>
GLM_FUNC_QUALIFIER T orientedAngle (detail::tvec3< T, P > const &x, detail::tvec3< T, P > const &y, detail::tvec3< T, P > const &ref)
 
template<typename vecType >
GLM_FUNC_DECL vecType::value_type angle (vecType const &x, vecType const &y)
 
template<typename T , precision P>
GLM_FUNC_DECL T orientedAngle (tvec2< T, P > const &x, tvec2< T, P > const &y)
 
template<typename T , precision P>
GLM_FUNC_DECL T orientedAngle (tvec3< T, P > const &x, tvec3< T, P > const &y, tvec3< T, P > const &ref)
 

Detailed Description

OpenGL Mathematics (glm.g-truc.net)

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_vector_angle

+

GLM_GTX_vector_angle

Date
2005-12-30 / 2011-06-07
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
+
See also
GLM Core (dependence)
-GLM_GTX_quaternion (dependence)
+GLM_GTX_quaternion (dependence)
gtx_epsilon (dependence)
-

Definition in file vector_angle.hpp.

+

Definition in file vector_angle.hpp.

diff --git a/doc/api/a00141_source.html b/doc/api/a00141_source.html index b12c34ce..bf231ee4 100644 --- a/doc/api/a00141_source.html +++ b/doc/api/a00141_source.html @@ -3,8 +3,8 @@ - -GLM: unsigned_int.hpp Source File + +0.9.6: vector_angle.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,24 +41,58 @@
-
unsigned_int.hpp
+
vector_angle.hpp
-
1 
-
24 #if(defined(GLM_MESSAGES))
-
25 # pragma message("GLM: GLM_GTX_unsigned_int extension is deprecated, include GLM_GTX_integer instead")
-
26 #endif
+Go to the documentation of this file.
1 
+
44 #pragma once
+
45 
+
46 // Dependency:
+
47 #include "../glm.hpp"
+
48 #include "../gtc/epsilon.hpp"
+
49 #include "../gtx/quaternion.hpp"
+
50 #include "../gtx/rotate_vector.hpp"
+
51 
+
52 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+
53 # pragma message("GLM: GLM_GTX_vector_angle extension included")
+
54 #endif
+
55 
+
56 namespace glm
+
57 {
+
60 
+
64  template <typename vecType>
+
65  GLM_FUNC_DECL typename vecType::value_type angle(
+
66  vecType const & x,
+
67  vecType const & y);
+
68 
+
72  template <typename T, precision P>
+
73  GLM_FUNC_DECL T orientedAngle(
+
74  tvec2<T, P> const & x,
+
75  tvec2<T, P> const & y);
+
76 
+
80  template <typename T, precision P>
+
81  GLM_FUNC_DECL T orientedAngle(
+
82  tvec3<T, P> const & x,
+
83  tvec3<T, P> const & y,
+
84  tvec3<T, P> const & ref);
+
85 
+
87 }// namespace glm
+
88 
+
89 #include "vector_angle.inl"
+
GLM_FUNC_DECL vecType::value_type angle(vecType const &x, vecType const &y)
Returns the absolute angle between two vectors Parameters need to be normalized.
+
Definition: _noise.hpp:39
+
GLM_FUNC_DECL T orientedAngle(tvec3< T, P > const &x, tvec3< T, P > const &y, tvec3< T, P > const &ref)
Returns the oriented angle between two 3d vectors based from a reference axis.
diff --git a/doc/api/a00142.html b/doc/api/a00142.html index d9bf4109..51fc53c7 100644 --- a/doc/api/a00142.html +++ b/doc/api/a00142.html @@ -3,8 +3,8 @@ - -GLM: vec1.hpp File Reference + +0.9.6: vector_query.hpp File Reference @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,71 +41,58 @@
-Namespaces | -Typedefs
+Functions
-
vec1.hpp File Reference
+
vector_query.hpp File Reference

Go to the source code of this file.

- - - -

-Namespaces

 glm
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + +

-Typedefs

typedef highp_bvec1 bvec1
 
typedef highp_bvec1_t highp_bvec1
 
typedef highp_ivec1_t highp_ivec1
 
typedef highp_uvec1_t highp_uvec1
 
typedef highp_ivec1 ivec1
 
typedef lowp_bvec1_t lowp_bvec1
 
typedef lowp_ivec1_t lowp_ivec1
 
typedef lowp_uvec1_t lowp_uvec1
 
typedef mediump_bvec1_t mediump_bvec1
 
typedef mediump_ivec1_t mediump_ivec1
 
typedef mediump_uvec1_t mediump_uvec1
 
typedef highp_uvec1 uvec1
 
typedef highp_vec1 vec1
 

+Functions

template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL bool areCollinear (vecType< T, P > const &v0, vecType< T, P > const &v1, T const &epsilon)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL bool areOrthogonal (vecType< T, P > const &v0, vecType< T, P > const &v1, T const &epsilon)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL bool areOrthonormal (vecType< T, P > const &v0, vecType< T, P > const &v1, T const &epsilon)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< bool, P > isCompNull (vecType< T, P > const &v, T const &epsilon)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL bool isNormalized (vecType< T, P > const &v, T const &epsilon)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL bool isNull (vecType< T, P > const &v, T const &epsilon)
 

Detailed Description

OpenGL Mathematics (glm.g-truc.net)

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_vec1

-
Date
2010-02-08 / 2011-06-07
+

GLM_GTX_vector_query

+
Date
2008-03-10 / 2011-06-07
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
+
See also
GLM Core (dependence)
-

Definition in file vec1.hpp.

+

Definition in file vector_query.hpp.

diff --git a/doc/api/a00142_source.html b/doc/api/a00142_source.html index 0f6b8955..0895a965 100644 --- a/doc/api/a00142_source.html +++ b/doc/api/a00142_source.html @@ -3,8 +3,8 @@ - -GLM: vec1.hpp Source File + +0.9.6: vector_query.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,122 +41,64 @@
-
vec1.hpp
+
vector_query.hpp
Go to the documentation of this file.
1 
-
37 #ifndef GLM_GTX_vec1
-
38 #define GLM_GTX_vec1
-
39 
-
40 // Dependency:
-
41 #include "../glm.hpp"
-
42 #include "../detail/type_vec1.hpp"
+
42 #pragma once
43 
-
44 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
45 # pragma message("GLM: GLM_GTX_vec1 extension included")
-
46 #endif
-
47 
-
48 namespace glm
-
49 {
-
53  typedef highp_vec1_t highp_vec1;
-
54 
-
58  typedef mediump_vec1_t mediump_vec1;
-
59 
-
63  typedef lowp_vec1_t lowp_vec1;
-
64 
-
68  typedef highp_ivec1_t highp_ivec1;
-
69 
-
73  typedef mediump_ivec1_t mediump_ivec1;
-
74 
-
78  typedef lowp_ivec1_t lowp_ivec1;
-
79 
-
83  typedef highp_uvec1_t highp_uvec1;
-
84 
-
88  typedef mediump_uvec1_t mediump_uvec1;
-
89 
-
93  typedef lowp_uvec1_t lowp_uvec1;
-
94 
-
98  typedef highp_bvec1_t highp_bvec1;
-
99 
-
103  typedef mediump_bvec1_t mediump_bvec1;
-
104 
-
108  typedef lowp_bvec1_t lowp_bvec1;
-
109 
-
111  // vec1 definition
-
112 
-
113 #if(defined(GLM_PRECISION_HIGHP_BOOL))
-
114  typedef highp_bvec1 bvec1;
-
115 #elif(defined(GLM_PRECISION_MEDIUMP_BOOL))
-
116  typedef mediump_bvec1 bvec1;
-
117 #elif(defined(GLM_PRECISION_LOWP_BOOL))
-
118  typedef lowp_bvec1 bvec1;
-
119 #else
-
120  typedef highp_bvec1 bvec1;
-
123 #endif//GLM_PRECISION
-
124 
-
125 #if(defined(GLM_PRECISION_HIGHP_FLOAT))
-
126  typedef highp_vec1 vec1;
-
127 #elif(defined(GLM_PRECISION_MEDIUMP_FLOAT))
-
128  typedef mediump_vec1 vec1;
-
129 #elif(defined(GLM_PRECISION_LOWP_FLOAT))
-
130  typedef lowp_vec1 vec1;
-
131 #else
-
132  typedef highp_vec1 vec1;
-
135 #endif//GLM_PRECISION
-
136 
-
137 #if(defined(GLM_PRECISION_HIGHP_INT))
-
138  typedef highp_ivec1 ivec1;
-
139 #elif(defined(GLM_PRECISION_MEDIUMP_INT))
-
140  typedef mediump_ivec1 ivec1;
-
141 #elif(defined(GLM_PRECISION_LOWP_INT))
-
142  typedef lowp_ivec1 ivec1;
-
143 #else
-
144  typedef highp_ivec1 ivec1;
-
147 #endif//GLM_PRECISION
-
148 
-
149 #if(defined(GLM_PRECISION_HIGHP_UINT))
-
150  typedef highp_uvec1 uvec1;
-
151 #elif(defined(GLM_PRECISION_MEDIUMP_UINT))
-
152  typedef mediump_uvec1 uvec1;
-
153 #elif(defined(GLM_PRECISION_LOWP_UINT))
-
154  typedef lowp_uvec1 uvec1;
-
155 #else
-
156  typedef highp_uvec1 uvec1;
-
159 #endif//GLM_PRECISION
-
160 
-
161 }// namespace glm
-
162 
-
163 #include "vec1.inl"
-
164 
-
165 #endif//GLM_GTX_vec1
-
166 
-
lowp_uvec1_t lowp_uvec1
1 component vector of low precision unsigned integer numbers.
Definition: vec1.hpp:93
-
mediump_uvec1_t mediump_uvec1
1 component vector of medium precision unsigned integer numbers.
Definition: vec1.hpp:88
-
detail::tvec1< float, highp > highp_vec1
High single-precision floating-point vector of 1 component.
Definition: fwd.hpp:1601
-
highp_ivec1 ivec1
1 component vector of signed integer numbers.
Definition: vec1.hpp:146
-
highp_ivec1_t highp_ivec1
1 component vector of high precision signed integer numbers.
Definition: vec1.hpp:68
-
detail::tvec1< float, mediump > mediump_vec1
Medium single-precision floating-point vector of 1 component.
Definition: fwd.hpp:1567
-
detail::tvec1< float, lowp > lowp_vec1
Low single-precision floating-point vector of 1 component.
Definition: fwd.hpp:1533
-
highp_uvec1_t highp_uvec1
1 component vector of high precision unsigned integer numbers.
Definition: vec1.hpp:83
-
highp_vec1 vec1
1 component vector of floating-point numbers.
Definition: vec1.hpp:134
-
highp_bvec1 bvec1
1 component vector of boolean.
Definition: vec1.hpp:122
-
mediump_bvec1_t mediump_bvec1
1 component vector of medium precision boolean.
Definition: vec1.hpp:103
-
mediump_ivec1_t mediump_ivec1
1 component vector of medium precision signed integer numbers.
Definition: vec1.hpp:73
-
highp_uvec1 uvec1
1 component vector of unsigned integer numbers.
Definition: vec1.hpp:158
-
lowp_ivec1_t lowp_ivec1
1 component vector of low precision signed integer numbers.
Definition: vec1.hpp:78
-
highp_bvec1_t highp_bvec1
1 component vector of high precision boolean.
Definition: vec1.hpp:98
-
lowp_bvec1_t lowp_bvec1
1 component vector of low precision boolean.
Definition: vec1.hpp:108
+
44 // Dependency:
+
45 #include "../glm.hpp"
+
46 #include <cfloat>
+
47 #include <limits>
+
48 
+
49 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+
50 # pragma message("GLM: GLM_GTX_vector_query extension included")
+
51 #endif
+
52 
+
53 namespace glm
+
54 {
+
57 
+
60  template <typename T, precision P, template <typename, precision> class vecType>
+
61  GLM_FUNC_DECL bool areCollinear(vecType<T, P> const & v0, vecType<T, P> const & v1, T const & epsilon);
+
62 
+
65  template <typename T, precision P, template <typename, precision> class vecType>
+
66  GLM_FUNC_DECL bool areOrthogonal(vecType<T, P> const & v0, vecType<T, P> const & v1, T const & epsilon);
+
67 
+
70  template <typename T, precision P, template <typename, precision> class vecType>
+
71  GLM_FUNC_DECL bool isNormalized(vecType<T, P> const & v, T const & epsilon);
+
72 
+
75  template <typename T, precision P, template <typename, precision> class vecType>
+
76  GLM_FUNC_DECL bool isNull(vecType<T, P> const & v, T const & epsilon);
+
77 
+
80  template <typename T, precision P, template <typename, precision> class vecType>
+
81  GLM_FUNC_DECL vecType<bool, P> isCompNull(vecType<T, P> const & v, T const & epsilon);
+
82 
+
85  template <typename T, precision P, template <typename, precision> class vecType>
+
86  GLM_FUNC_DECL bool areOrthonormal(vecType<T, P> const & v0, vecType<T, P> const & v1, T const & epsilon);
+
87 
+
89 }// namespace glm
+
90 
+
91 #include "vector_query.inl"
+
GLM_FUNC_DECL bool isNormalized(vecType< T, P > const &v, T const &epsilon)
Check whether a vector is normalized.
+
GLM_FUNC_DECL bool areOrthonormal(vecType< T, P > const &v0, vecType< T, P > const &v1, T const &epsilon)
Check whether two vectors are orthonormal.
+
GLM_FUNC_DECL bool areOrthogonal(vecType< T, P > const &v0, vecType< T, P > const &v1, T const &epsilon)
Check whether two vectors are orthogonals.
+
GLM_FUNC_DECL vecType< bool, P > isCompNull(vecType< T, P > const &v, T const &epsilon)
Check whether a each component of a vector is null.
+
GLM_FUNC_DECL bool areCollinear(vecType< T, P > const &v0, vecType< T, P > const &v1, T const &epsilon)
Check whether two vectors are collinears.
+
Definition: _noise.hpp:39
+
GLM_FUNC_DECL bool isNull(vecType< T, P > const &v, T const &epsilon)
Check whether a vector is null.
+
GLM_FUNC_DECL genType epsilon()
Return the epsilon constant for floating point types.
diff --git a/doc/api/a00143.html b/doc/api/a00143.html index 30b11efa..d0d58fb5 100644 --- a/doc/api/a00143.html +++ b/doc/api/a00143.html @@ -3,8 +3,8 @@ - -GLM: vec2.hpp File Reference + +0.9.6: vector_relational.hpp File Reference @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,12 +41,12 @@
-
vec2.hpp File Reference
+
vector_relational.hpp File Reference
@@ -57,18 +55,19 @@

OpenGL Mathematics (glm.g-truc.net)

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM Core

+

GLM Core

Date
2013-12-24 / 2013-12-24
Author
Christophe Riccio
-

Definition in file vec2.hpp.

+

Definition in file vector_relational.hpp.

diff --git a/doc/api/a00143_source.html b/doc/api/a00143_source.html index df9fa722..79986a74 100644 --- a/doc/api/a00143_source.html +++ b/doc/api/a00143_source.html @@ -3,8 +3,8 @@ - -GLM: vec2.hpp Source File + +0.9.6: vector_relational.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,27 +41,25 @@
-
vec2.hpp
+
vector_relational.hpp
Go to the documentation of this file.
1 
-
29 #ifndef GLM_VEC2_INCLUDED
-
30 #define GLM_VEC2_INCLUDED
-
31 
-
32 #include "detail/type_vec2.hpp"
-
33 
-
34 #endif//GLM_VEC2_INCLUDED
+
33 #pragma once
+
34 
+ +
OpenGL Mathematics (glm.g-truc.net)
diff --git a/doc/api/a00144.html b/doc/api/a00144.html index f745ada8..45645bd6 100644 --- a/doc/api/a00144.html +++ b/doc/api/a00144.html @@ -3,8 +3,8 @@ - -GLM: vec3.hpp File Reference + +0.9.6: wrap.hpp File Reference @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,32 +41,49 @@
+
+Functions
-
vec3.hpp File Reference
+
wrap.hpp File Reference

Go to the source code of this file.

+ + + + + + + + + + + +

+Functions

template<typename genType >
GLM_FUNC_DECL genType clamp (genType const &Texcoord)
 
template<typename genType >
GLM_FUNC_DECL genType mirrorRepeat (genType const &Texcoord)
 
template<typename genType >
GLM_FUNC_DECL genType repeat (genType const &Texcoord)
 

Detailed Description

OpenGL Mathematics (glm.g-truc.net)

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM Core

-
Date
2013-12-24 / 2013-12-24
-
Author
Christophe Riccio
+

GLM_GTX_wrap

+
Date
2009-11-25 / 2011-06-07
+
Author
Christophe Riccio
+
See also
GLM Core (dependence)
-

Definition in file vec3.hpp.

+

Definition in file wrap.hpp.

diff --git a/doc/api/a00144_source.html b/doc/api/a00144_source.html index 0f2cb4c5..5aca05ec 100644 --- a/doc/api/a00144_source.html +++ b/doc/api/a00144_source.html @@ -3,8 +3,8 @@ - -GLM: vec3.hpp Source File + +0.9.6: wrap.hpp Source File @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -43,27 +41,49 @@
-
vec3.hpp
+
wrap.hpp
Go to the documentation of this file.
1 
-
29 #ifndef GLM_VEC3_INCLUDED
-
30 #define GLM_VEC3_INCLUDED
-
31 
-
32 #include "detail/type_vec3.hpp"
-
33 
-
34 #endif//GLM_VEC3_INCLUDED
+
42 #pragma once
+
43 
+
44 // Dependency:
+
45 #include "../glm.hpp"
+
46 
+
47 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+
48 # pragma message("GLM: GLM_GTX_wrap extension included")
+
49 #endif
+
50 
+
51 namespace glm
+
52 {
+
55 
+
58  template <typename genType>
+
59  GLM_FUNC_DECL genType clamp(genType const & Texcoord);
+
60 
+
63  template <typename genType>
+
64  GLM_FUNC_DECL genType repeat(genType const & Texcoord);
+
65 
+
68  template <typename genType>
+
69  GLM_FUNC_DECL genType mirrorRepeat(genType const & Texcoord);
+
70 
+
72 }// namespace glm
+
73 
+
74 #include "wrap.inl"
+
GLM_FUNC_DECL genType clamp(genType const &Texcoord)
Simulate GL_CLAMP OpenGL wrap mode.
+
GLM_FUNC_DECL genType repeat(genType const &Texcoord)
Simulate GL_REPEAT OpenGL wrap mode.
+
GLM_FUNC_DECL genType mirrorRepeat(genType const &Texcoord)
Simulate GL_MIRROR_REPEAT OpenGL wrap mode.
+
Definition: _noise.hpp:39
diff --git a/doc/api/a00145_source.html b/doc/api/a00145_source.html deleted file mode 100644 index 797aebb1..00000000 --- a/doc/api/a00145_source.html +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - -GLM: vec4.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
vec4.hpp
-
-
-Go to the documentation of this file.
1 
-
29 #ifndef GLM_VEC4_INCLUDED
-
30 #define GLM_VEC4_INCLUDED
-
31 
-
32 #include "detail/type_vec4.hpp"
-
33 
-
34 #endif//GLM_VEC4_INCLUDED
-
- - - - diff --git a/doc/api/a00146_source.html b/doc/api/a00146_source.html deleted file mode 100644 index 44fd9bf4..00000000 --- a/doc/api/a00146_source.html +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - -GLM: vector_angle.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
vector_angle.hpp
-
-
-Go to the documentation of this file.
1 
-
40 #ifndef GLM_GTX_vector_angle
-
41 #define GLM_GTX_vector_angle
-
42 
-
43 // Dependency:
-
44 #include "../glm.hpp"
-
45 #include "../gtc/epsilon.hpp"
-
46 #include "../gtx/quaternion.hpp"
-
47 #include "../gtx/rotate_vector.hpp"
-
48 
-
49 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
50 # pragma message("GLM: GLM_GTX_vector_angle extension included")
-
51 #endif
-
52 
-
53 namespace glm
-
54 {
-
57 
-
61  template <typename vecType>
-
62  GLM_FUNC_QUALIFIER typename vecType::value_type angle(
-
63  vecType const & x,
-
64  vecType const & y);
-
65 
-
69  template <typename T, precision P>
-
70  GLM_FUNC_QUALIFIER T orientedAngle(
-
71  detail::tvec2<T, P> const & x,
-
72  detail::tvec2<T, P> const & y);
-
73 
-
77  template <typename T, precision P>
-
78  GLM_FUNC_QUALIFIER T orientedAngle(
-
79  detail::tvec3<T, P> const & x,
-
80  detail::tvec3<T, P> const & y,
-
81  detail::tvec3<T, P> const & ref);
-
82 
-
84 }// namespace glm
-
85 
-
86 #include "vector_angle.inl"
-
87 
-
88 #endif//GLM_GTX_vector_angle
-
GLM_FUNC_QUALIFIER T orientedAngle(detail::tvec2< T, P > const &x, detail::tvec2< T, P > const &y)
Returns the oriented angle between two 2d vectors Parameters need to be normalized.
-
GLM_FUNC_DECL T angle(detail::tquat< T, P > const &x)
Returns the quaternion rotation angle.
-
- - - - diff --git a/doc/api/a00147.html b/doc/api/a00147.html deleted file mode 100644 index 3ec552e5..00000000 --- a/doc/api/a00147.html +++ /dev/null @@ -1,105 +0,0 @@ - - - - - - -GLM: vector_query.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-Namespaces | -Functions
-
-
vector_query.hpp File Reference
-
-
- -

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
- - - - - - - - - - - - - - - - - - - -

-Functions

template<typename T , precision P, template< typename, precision > class vecType>
bool areCollinear (vecType< T, P > const &v0, vecType< T, P > const &v1, T const &epsilon)
 
template<typename T , precision P, template< typename, precision > class vecType>
bool areOrthogonal (vecType< T, P > const &v0, vecType< T, P > const &v1, T const &epsilon)
 
template<typename T , precision P, template< typename, precision > class vecType>
bool areOrthonormal (vecType< T, P > const &v0, vecType< T, P > const &v1, T const &epsilon)
 
template<typename T , precision P, template< typename, precision > class vecType>
vecType< bool, P > isCompNull (vecType< T, P > const &v, T const &epsilon)
 
template<typename T , precision P, template< typename, precision > class vecType>
bool isNormalized (vecType< T, P > const &v, T const &epsilon)
 
template<typename T , precision P, template< typename, precision > class vecType>
bool isNull (vecType< T, P > const &v, T const &epsilon)
 
-

Detailed Description

-

OpenGL Mathematics (glm.g-truc.net)

-

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_vector_query

-
Date
2008-03-10 / 2011-06-07
-
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
- -

Definition in file vector_query.hpp.

-
- - - - diff --git a/doc/api/a00147_source.html b/doc/api/a00147_source.html deleted file mode 100644 index 7e38f1da..00000000 --- a/doc/api/a00147_source.html +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - -GLM: vector_query.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
vector_query.hpp
-
-
-Go to the documentation of this file.
1 
-
38 #ifndef GLM_GTX_vector_query
-
39 #define GLM_GTX_vector_query
-
40 
-
41 // Dependency:
-
42 #include "../glm.hpp"
-
43 #include <cfloat>
-
44 #include <limits>
-
45 
-
46 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
47 # pragma message("GLM: GLM_GTX_vector_query extension included")
-
48 #endif
-
49 
-
50 namespace glm
-
51 {
-
54 
-
57  template <typename T, precision P, template <typename, precision> class vecType>
-
58  bool areCollinear(vecType<T, P> const & v0, vecType<T, P> const & v1, T const & epsilon);
-
59 
-
62  template <typename T, precision P, template <typename, precision> class vecType>
-
63  bool areOrthogonal(vecType<T, P> const & v0, vecType<T, P> const & v1, T const & epsilon);
-
64 
-
67  template <typename T, precision P, template <typename, precision> class vecType>
-
68  bool isNormalized(vecType<T, P> const & v, T const & epsilon);
-
69 
-
72  template <typename T, precision P, template <typename, precision> class vecType>
-
73  bool isNull(vecType<T, P> const & v, T const & epsilon);
-
74 
-
77  template <typename T, precision P, template <typename, precision> class vecType>
-
78  vecType<bool, P> isCompNull(vecType<T, P> const & v, T const & epsilon);
-
79 
-
82  template <typename T, precision P, template <typename, precision> class vecType>
-
83  bool areOrthonormal(vecType<T, P> const & v0, vecType<T, P> const & v1, T const & epsilon);
-
84 
-
86 }// namespace glm
-
87 
-
88 #include "vector_query.inl"
-
89 
-
90 #endif//GLM_GTX_vector_query
-
GLM_FUNC_DECL genType epsilon()
Return the epsilon constant for floating point types.
-
bool areOrthonormal(vecType< T, P > const &v0, vecType< T, P > const &v1, T const &epsilon)
Check whether two vectors are orthonormal.
-
bool areOrthogonal(vecType< T, P > const &v0, vecType< T, P > const &v1, T const &epsilon)
Check whether two vectors are orthogonals.
-
bool areCollinear(vecType< T, P > const &v0, vecType< T, P > const &v1, T const &epsilon)
Check whether two vectors are collinears.
-
bool isNormalized(detail::tmat2x2< T, P > const &m, T const &epsilon)
Return whether a matrix is a normalized matrix.
-
bool isNull(detail::tmat2x2< T, P > const &m, T const &epsilon)
Return whether a matrix a null matrix.
-
vecType< bool, P > isCompNull(vecType< T, P > const &v, T const &epsilon)
Check whether a each component of a vector is null.
-
- - - - diff --git a/doc/api/a00148_source.html b/doc/api/a00148_source.html deleted file mode 100644 index fb2aa460..00000000 --- a/doc/api/a00148_source.html +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - -GLM: vector_relational.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
vector_relational.hpp
-
-
-Go to the documentation of this file.
1 
-
29 #ifndef GLM_VECTOR_RELATIONAL_INCLUDED
-
30 #define GLM_VECTOR_RELATIONAL_INCLUDED
-
31 
-
32 #include "detail/func_vector_relational.hpp"
-
33 
-
34 #endif//GLM_VECTOR_RELATIONAL_INCLUDED
-
- - - - diff --git a/doc/api/a00149.html b/doc/api/a00149.html index 0273e741..48260394 100644 --- a/doc/api/a00149.html +++ b/doc/api/a00149.html @@ -3,8 +3,8 @@ - -GLM: wrap.hpp File Reference + +0.9.6: Common functions @@ -16,9 +16,9 @@ + @@ -26,71 +26,1098 @@
-
GLM -  0.9.5 +
0.9.6
- + - -
-Namespaces | Functions
-
wrap.hpp File Reference
+
Common functions
- -

Go to the source code of this file.

- - - -

-Namespaces

 glm
 
- - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Functions

template<typename genType >
GLM_FUNC_DECL genType clamp (genType const &Texcoord)
 
template<typename genType >
GLM_FUNC_DECL genType mirrorRepeat (genType const &Texcoord)
 
template<typename genType >
GLM_FUNC_DECL genType repeat (genType const &Texcoord)
 
template<typename genType >
GLM_FUNC_DECL genType abs (genType x)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > ceil (vecType< T, P > const &x)
 
template<typename genType >
GLM_FUNC_DECL genType clamp (genType x, genType minVal, genType maxVal)
 
GLM_FUNC_DECL int floatBitsToInt (float const &v)
 
template<template< typename, precision > class vecType, precision P>
GLM_FUNC_DECL vecType< int, P > floatBitsToInt (vecType< float, P > const &v)
 
GLM_FUNC_DECL uint floatBitsToUint (float const &v)
 
template<template< typename, precision > class vecType, precision P>
GLM_FUNC_DECL vecType< uint, P > floatBitsToUint (vecType< float, P > const &v)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > floor (vecType< T, P > const &x)
 
template<typename genType >
GLM_FUNC_DECL genType fma (genType const &a, genType const &b, genType const &c)
 
template<typename genType >
GLM_FUNC_DECL genType fract (genType x)
 
template<typename genType , typename genIType >
GLM_FUNC_DECL genType frexp (genType const &x, genIType &exp)
 
GLM_FUNC_DECL float intBitsToFloat (int const &v)
 
template<template< typename, precision > class vecType, precision P>
GLM_FUNC_DECL vecType< float, P > intBitsToFloat (vecType< int, P > const &v)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< bool, P > isinf (vecType< T, P > const &x)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< bool, P > isnan (vecType< T, P > const &x)
 
template<typename genType , typename genIType >
GLM_FUNC_DECL genType ldexp (genType const &x, genIType const &exp)
 
template<typename genType >
GLM_FUNC_DECL genType max (genType x, genType y)
 
template<typename genType >
GLM_FUNC_DECL genType min (genType x, genType y)
 
template<typename T , typename U , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > mix (vecType< T, P > const &x, vecType< T, P > const &y, vecType< U, P > const &a)
 
template<typename genType >
GLM_FUNC_DECL genType mod (genType x, genType y)
 
template<typename genType >
GLM_FUNC_DECL genType modf (genType x, genType &i)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > round (vecType< T, P > const &x)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > roundEven (vecType< T, P > const &x)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > sign (vecType< T, P > const &x)
 
template<typename genType >
GLM_FUNC_DECL genType smoothstep (genType edge0, genType edge1, genType x)
 
template<typename genType >
GLM_FUNC_DECL genType step (genType edge, genType x)
 
template<template< typename, precision > class vecType, typename T , precision P>
GLM_FUNC_DECL vecType< T, P > step (T edge, vecType< T, P > const &x)
 
template<template< typename, precision > class vecType, typename T , precision P>
GLM_FUNC_DECL vecType< T, P > step (vecType< T, P > const &edge, vecType< T, P > const &x)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > trunc (vecType< T, P > const &x)
 
GLM_FUNC_DECL float uintBitsToFloat (uint const &v)
 
template<template< typename, precision > class vecType, precision P>
GLM_FUNC_DECL vecType< float, P > uintBitsToFloat (vecType< uint, P > const &v)
 

Detailed Description

-

OpenGL Mathematics (glm.g-truc.net)

-

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_wrap

-
Date
2009-11-25 / 2011-06-07
-
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
+

These all operate component-wise.

+

The description is per component.

+

Function Documentation

+ +
+
+ + + + + + + + +
GLM_FUNC_DECL genType glm::abs (genType x)
+
-

Definition in file wrap.hpp.

-
+

Returns x if x >= 0; otherwise, it returns -x.

+
Template Parameters
+ + +
genTypefloating-point or signed integer; scalar or vector types.
+
+
+
See also
GLSL abs man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vecType<T, P> glm::ceil (vecType< T, P > const & x)
+
+ +

Returns a value equal to the nearest integer that is greater than or equal to x.

+
Template Parameters
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also
GLSL ceil man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL genType glm::clamp (genType x,
genType minVal,
genType maxVal 
)
+
+ +

Returns min(max(x, minVal), maxVal) for each component in x using the floating-point values minVal and maxVal.

+
Template Parameters
+ + +
genTypeFloating-point or integer; scalar or vector types.
+
+
+
See also
GLSL clamp man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +

Referenced by glm::saturate().

+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL int glm::floatBitsToInt (float const & v)
+
+ +

Returns a signed integer value representing the encoding of a floating-point value.

+

The floating-point value's bit-level representation is preserved.

+
See also
GLSL floatBitsToInt man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vecType<int, P> glm::floatBitsToInt (vecType< float, P > const & v)
+
+ +

Returns a signed integer value representing the encoding of a floating-point value.

+

The floatingpoint value's bit-level representation is preserved.

+
See also
GLSL floatBitsToInt man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL uint glm::floatBitsToUint (float const & v)
+
+ +

Returns a unsigned integer value representing the encoding of a floating-point value.

+

The floatingpoint value's bit-level representation is preserved.

+
See also
GLSL floatBitsToUint man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vecType<uint, P> glm::floatBitsToUint (vecType< float, P > const & v)
+
+ +

Returns a unsigned integer value representing the encoding of a floating-point value.

+

The floatingpoint value's bit-level representation is preserved.

+
See also
GLSL floatBitsToUint man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vecType<T, P> glm::floor (vecType< T, P > const & x)
+
+ +

Returns a value equal to the nearest integer that is less then or equal to x.

+
Template Parameters
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also
GLSL floor man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL genType glm::fma (genType const & a,
genType const & b,
genType const & c 
)
+
+ +

Computes and returns a * b + c.

+
Template Parameters
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also
GLSL fma man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL genType glm::fract (genType x)
+
+ +

Return x - floor(x).

+
Template Parameters
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also
GLSL fract man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL genType glm::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, such that: x = significand * exp(2, exponent)

+

The significand is returned by the function and the exponent is returned in the parameter exp. For a floating-point value of zero, the significant and exponent are both zero. For a floating-point value that is an infinity or is not a number, the results are undefined.

+
Template Parameters
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also
GLSL frexp man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL float glm::intBitsToFloat (int const & v)
+
+ +

Returns a floating-point value corresponding to a signed integer encoding of a floating-point value.

+

If an inf or NaN is passed in, it will not signal, and the resulting floating point value is unspecified. Otherwise, the bit-level representation is preserved.

+
See also
GLSL intBitsToFloat man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vecType<float, P> glm::intBitsToFloat (vecType< int, P > const & v)
+
+ +

Returns a floating-point value corresponding to a signed integer encoding of a floating-point value.

+

If an inf or NaN is passed in, it will not signal, and the resulting floating point value is unspecified. Otherwise, the bit-level representation is preserved.

+
See also
GLSL intBitsToFloat man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vecType<bool, P> glm::isinf (vecType< T, P > const & x)
+
+ +

Returns true if x holds a positive infinity or negative infinity representation in the underlying implementation's set of floating point representations.

+

Returns false otherwise, including for implementations with no infinity representations.

+
Template Parameters
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also
GLSL isinf man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vecType<bool, P> glm::isnan (vecType< T, P > const & x)
+
+ +

Returns true if x holds a NaN (not a number) representation in the underlying implementation's set of floating point representations.

+

Returns false otherwise, including for implementations with no NaN representations.

+

/!\ When using compiler fast math, this function may fail.

+
Template Parameters
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also
GLSL isnan man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL genType glm::ldexp (genType const & x,
genIType const & exp 
)
+
+ +

Builds a floating-point number from x and the corresponding integral exponent of two in exp, returning: significand * exp(2, exponent)

+

If this product is too large to be represented in the floating-point type, the result is undefined.

+
Template Parameters
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also
GLSL ldexp man page;
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL genType glm::max (genType x,
genType y 
)
+
+ +

Returns y if x < y; otherwise, it returns x.

+
Template Parameters
+ + +
genTypeFloating-point or integer; scalar or vector types.
+
+
+
See also
GLSL max man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL genType glm::min (genType x,
genType y 
)
+
+ +

Returns y if y < x; otherwise, it returns x.

+
Template Parameters
+ + +
genTypeFloating-point or integer; scalar or vector types.
+
+
+
See also
GLSL min man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vecType<T, P> glm::mix (vecType< T, P > const & x,
vecType< T, P > const & y,
vecType< U, P > const & a 
)
+
+ +

If genTypeU is a floating scalar or vector: Returns x * (1.0 - a) + y * a, i.e., the linear blend of x and y using the floating-point value a.

+

The value for a is not restricted to the range [0, 1].

+

If genTypeU is a boolean scalar or vector: Selects which vector each returned component comes from. For a component of that is false, the corresponding component of x is returned. For a component of a that is true, the corresponding component of y is returned. Components of x and y that are not selected are allowed to be invalid floating point values and will have no effect on the results. Thus, this provides different functionality than genType mix(genType x, genType y, genType(a)) where a is a Boolean vector.

+
See also
GLSL mix man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+
Parameters
+ + + + +
[in]xValue to interpolate.
[in]yValue to interpolate.
[in]aInterpolant.
+
+
+
Template Parameters
+ + + +
genTypeTFloating point scalar or vector.
genTypeUFloating point or boolean scalar or vector. It can't be a vector if it is the length of genTypeT.
+
+
+
#include <glm/glm.hpp>
+
...
+
float a;
+
bool b;
+ + + + +
...
+
glm::vec4 r = glm::mix(g, h, a); // Interpolate with a floating-point scalar two vectors.
+
glm::vec4 s = glm::mix(g, h, b); // Teturns g or h;
+
glm::dvec3 t = glm::mix(e, f, a); // Types of the third parameter is not required to match with the first and the second.
+
glm::vec4 u = glm::mix(g, h, r); // Interpolations can be perform per component with a vector for the last parameter.
+
+

Referenced by glm::lerp(), and glm::slerp().

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL genType glm::mod (genType x,
genType y 
)
+
+ +

Modulus.

+

Returns x - y * floor(x / y) for each component in x using the floating point value y.

+
Template Parameters
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also
GLSL mod man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL genType glm::modf (genType x,
genType & i 
)
+
+ +

Returns the fractional part of x and sets i to the integer part (as a whole number floating point value).

+

Both the return value and the output parameter will have the same sign as x.

+
Template Parameters
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also
GLSL modf man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vecType<T, P> glm::round (vecType< T, P > const & x)
+
+ +

Returns a value equal to the nearest integer to x.

+

The fraction 0.5 will round in a direction chosen by the implementation, presumably the direction that is fastest. This includes the possibility that round(x) returns the same value as roundEven(x) for all values of x.

+
Template Parameters
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also
GLSL round man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vecType<T, P> glm::roundEven (vecType< T, P > const & x)
+
+ +

Returns a value equal to the nearest integer to x.

+

A fractional part of 0.5 will round toward the nearest even integer. (Both 3.5 and 4.5 for x will return 4.0.)

+
Template Parameters
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also
GLSL roundEven man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+
+New round to even technique
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vecType<T, P> glm::sign (vecType< T, P > const & x)
+
+ +

Returns 1.0 if x > 0, 0.0 if x == 0, or -1.0 if x < 0.

+
Template Parameters
+ + +
genTypeFloating-point or signed integer; scalar or vector types.
+
+
+
See also
GLSL sign man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL genType glm::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 and 1 when edge0 < x < edge1.

+

This is useful in cases where you would want a threshold function with a smooth transition. This is equivalent to: genType t; t = clamp ((x - edge0) / (edge1 - edge0), 0, 1); return t * t * (3 - 2 * t); Results are undefined if edge0 >= edge1.

+
Template Parameters
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also
GLSL smoothstep man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL genType glm::step (genType edge,
genType x 
)
+
+ +

Returns 0.0 if x < edge, otherwise it returns 1.0 for each component of a genType.

+
See also
GLSL step man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vecType<T, P> glm::step (edge,
vecType< T, P > const & x 
)
+
+ +

Returns 0.0 if x < edge, otherwise it returns 1.0.

+
See also
GLSL step man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vecType<T, P> glm::step (vecType< T, P > const & edge,
vecType< T, P > const & x 
)
+
+ +

Returns 0.0 if x < edge, otherwise it returns 1.0.

+
See also
GLSL step man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vecType<T, P> glm::trunc (vecType< T, P > const & x)
+
+ +

Returns a value equal to the nearest integer to x whose absolute value is not larger than the absolute value of x.

+
Template Parameters
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also
GLSL trunc man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL float glm::uintBitsToFloat (uint const & v)
+
+ +

Returns a floating-point value corresponding to a unsigned integer encoding of a floating-point value.

+

If an inf or NaN is passed in, it will not signal, and the resulting floating point value is unspecified. Otherwise, the bit-level representation is preserved.

+
See also
GLSL uintBitsToFloat man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vecType<float, P> glm::uintBitsToFloat (vecType< uint, P > const & v)
+
+ +

Returns a floating-point value corresponding to a unsigned integer encoding of a floating-point value.

+

If an inf or NaN is passed in, it will not signal, and the resulting floating point value is unspecified. Otherwise, the bit-level representation is preserved.

+
See also
GLSL uintBitsToFloat man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +
+
+ diff --git a/doc/api/a00149_source.html b/doc/api/a00149_source.html deleted file mode 100644 index 24b76161..00000000 --- a/doc/api/a00149_source.html +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - -GLM: wrap.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
wrap.hpp
-
-
-Go to the documentation of this file.
1 
-
38 #ifndef GLM_GTX_wrap
-
39 #define GLM_GTX_wrap
-
40 
-
41 // Dependency:
-
42 #include "../glm.hpp"
-
43 
-
44 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
45 # pragma message("GLM: GLM_GTX_wrap extension included")
-
46 #endif
-
47 
-
48 namespace glm
-
49 {
-
52 
-
55  template <typename genType>
-
56  GLM_FUNC_DECL genType clamp(genType const & Texcoord);
-
57 
-
60  template <typename genType>
-
61  GLM_FUNC_DECL genType repeat(genType const & Texcoord);
-
62 
-
65  template <typename genType>
-
66  GLM_FUNC_DECL genType mirrorRepeat(genType const & Texcoord);
-
67 
-
69 }// namespace glm
-
70 
-
71 #include "wrap.inl"
-
72 
-
73 #endif//GLM_GTX_wrap
-
GLM_FUNC_DECL genType mirrorRepeat(genType const &Texcoord)
Simulate GL_MIRROR_REPEAT OpenGL wrap mode.
-
GLM_FUNC_DECL genType clamp(genType const &x, genType const &minVal, genType const &maxVal)
Returns min(max(x, minVal), maxVal) for each component in x using the floating-point values minVal an...
-
GLM_FUNC_DECL genType repeat(genType const &Texcoord)
Simulate GL_REPEAT OpenGL wrap mode.
-
- - - - diff --git a/doc/api/a00150.html b/doc/api/a00150.html index ef4163f8..334bce54 100644 --- a/doc/api/a00150.html +++ b/doc/api/a00150.html @@ -3,8 +3,8 @@ - -GLM: xstream.hpp File Reference + +0.9.6: Exponential functions @@ -16,9 +16,9 @@ + @@ -26,52 +26,300 @@
-
GLM -  0.9.5 +
0.9.6
- + - -
+
+Functions
-
xstream.hpp File Reference
+
Exponential functions
- -

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > exp (vecType< T, P > const &v)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > exp2 (vecType< T, P > const &v)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > inversesqrt (vecType< T, P > const &v)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > log (vecType< T, P > const &v)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > log2 (vecType< T, P > const &v)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > pow (vecType< T, P > const &base, vecType< T, P > const &exponent)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > sqrt (vecType< T, P > const &v)
 

Detailed Description

-

OpenGL Mathematics (glm.g-truc.net)

-

Copyright (c) 2005 - 2013 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_VIRTREV_xstream: xml like output

-
Date
2008-05-24 / 2008-05-26
-
Author
Mathieu Roumillac (matrem84.free.fr)
-
See Also
GLM Core (dependence)
-
-GLM_GTC_matrix_access (dependence)
+

These all operate component-wise.

+

The description is per component.

+

Function Documentation

+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vecType<T, P> glm::exp (vecType< T, P > const & v)
+
-

Definition in file xstream.hpp.

-
+

Returns the natural exponentiation of x, i.e., e^x.

+
Parameters
+ + +
vexp function is defined for input values of v defined in the range (inf-, inf+) in the limit of the type precision.
+
+
+
Template Parameters
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also
GLSL exp man page
+
+GLSL 4.20.8 specification, section 8.2 Exponential Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vecType<T, P> glm::exp2 (vecType< T, P > const & v)
+
+ +

Returns 2 raised to the v power.

+
Parameters
+ + +
vexp2 function is defined for input values of v defined in the range (inf-, inf+) in the limit of the type precision.
+
+
+
Template Parameters
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also
GLSL exp2 man page
+
+GLSL 4.20.8 specification, section 8.2 Exponential Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vecType<T, P> glm::inversesqrt (vecType< T, P > const & v)
+
+ +

Returns the reciprocal of the positive square root of v.

+
Parameters
+ + +
vinversesqrt function is defined for input values of v defined in the range [0, inf+) in the limit of the type precision.
+
+
+
Template Parameters
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also
GLSL inversesqrt man page
+
+GLSL 4.20.8 specification, section 8.2 Exponential Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vecType<T, P> glm::log (vecType< T, P > const & v)
+
+ +

Returns the natural logarithm of v, i.e., returns the value y which satisfies the equation x = e^y.

+

Results are undefined if v <= 0.

+
Parameters
+ + +
vlog function is defined for input values of v defined in the range (0, inf+) in the limit of the type precision.
+
+
+
Template Parameters
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also
GLSL log man page
+
+GLSL 4.20.8 specification, section 8.2 Exponential Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vecType<T, P> glm::log2 (vecType< T, P > const & v)
+
+ +

Returns the base 2 log of x, i.e., returns the value y, which satisfies the equation x = 2 ^ y.

+
Parameters
+ + +
vlog2 function is defined for input values of v defined in the range (0, inf+) in the limit of the type precision.
+
+
+
Template Parameters
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also
GLSL log2 man page
+
+GLSL 4.20.8 specification, section 8.2 Exponential Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vecType<T, P> glm::pow (vecType< T, P > const & base,
vecType< T, P > const & exponent 
)
+
+ +

Returns 'base' raised to the power 'exponent'.

+
Parameters
+ + + +
baseFloating point value. pow function is defined for input values of 'base' defined in the range (inf-, inf+) in the limit of the type precision.
exponentFloating point value representing the 'exponent'.
+
+
+
Template Parameters
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also
GLSL pow man page
+
+GLSL 4.20.8 specification, section 8.2 Exponential Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vecType<T, P> glm::sqrt (vecType< T, P > const & v)
+
+ +

Returns the positive square root of v.

+
Parameters
+ + +
vsqrt function is defined for input values of v defined in the range [0, inf+) in the limit of the type precision.
+
+
+
Template Parameters
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also
GLSL sqrt man page
+
+GLSL 4.20.8 specification, section 8.2 Exponential Functions
+ +
+
+ diff --git a/doc/api/a00150_source.html b/doc/api/a00150_source.html deleted file mode 100644 index 18172ea2..00000000 --- a/doc/api/a00150_source.html +++ /dev/null @@ -1,191 +0,0 @@ - - - - - - -GLM: xstream.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
xstream.hpp
-
-
-Go to the documentation of this file.
1 
-
39 #ifndef GLM_VIRTREV_xstream
-
40 #define GLM_VIRTREV_xstream GLM_VERSION
-
41 
-
42 #include "../glm.hpp"
-
43 #include "../gtc/matrix_access.hpp"
-
44 #include <iostream>
-
45 
-
46 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
-
47 # pragma message("GLM: GLM_VIRTREV_xstream extension included")
-
48 #endif
-
49 /*
-
50 namespace glm{
-
51 namespace detail
-
52 {
-
53  template<typename T>
-
54  std::ostream & operator << (std::ostream & stream, glm::detail::tvec2<T, P> const & vec)
-
55  {
-
56  stream << "<glm_vec2 ";
-
57  stream << "x=\"" << vec.x << "\" ";
-
58  stream << "y=\"" << vec.y << "\" ";
-
59  stream << "/>";
-
60 
-
61  return stream;
-
62  }
-
63 
-
64  template<typename T>
-
65  std::ostream & operator << (std::ostream & stream, glm::detail::tvec3<T, P> const & vec)
-
66  {
-
67  stream << "<glm_vec3 ";
-
68  stream << "x=\"" << vec.x << "\" ";
-
69  stream << "y=\"" << vec.y << "\" ";
-
70  stream << "z=\"" << vec.z << "\" ";
-
71  stream << "/>";
-
72 
-
73  return stream;
-
74  }
-
75 
-
76  template<typename T>
-
77  std::ostream & operator << (std::ostream & stream, glm::detail::tvec4<T, P> const & vec)
-
78  {
-
79  stream << "<glm_vec4 ";
-
80  stream << "x=\"" << vec.x << "\" ";
-
81  stream << "y=\"" << vec.y << "\" ";
-
82  stream << "z=\"" << vec.z << "\" ";
-
83  stream << "w=\"" << vec.w << "\" ";
-
84  stream << "/>";
-
85 
-
86  return stream;
-
87  }
-
88 
-
89  template<typename T>
-
90  std::ostream & operator << (std::ostream & stream, glm::detail::tmat2x2<T, P> const & mat)
-
91  {
-
92  stream << "<glm_mat2>" << std::endl;
-
93  stream << "<row ";
-
94  stream << "x=\"" << glm::row(mat, 0)[0] << "\" ";
-
95  stream << "y=\"" << glm::row(mat, 0)[1] << "\" ";
-
96  stream << "/>" << std::endl;
-
97  stream << "<row ";
-
98  stream << "x=\"" << glm::row(mat, 1)[0] << "\" ";
-
99  stream << "y=\"" << glm::row(mat, 1)[1] << "\" ";
-
100  stream << "/>" << std::endl;
-
101  stream << "</glm_mat2>";
-
102 
-
103  return stream;
-
104  }
-
105 
-
106  template<typename T>
-
107  std::ostream & operator << (std::ostream & stream, glm::detail::tmat3x3<T, P> const & mat)
-
108  {
-
109  stream << "<glm_mat3>" << std::endl;
-
110  stream << "<row ";
-
111  stream << "x=\"" << glm::row(mat, 0)[0] << "\" ";
-
112  stream << "y=\"" << glm::row(mat, 0)[1] << "\" ";
-
113  stream << "z=\"" << glm::row(mat, 0)[2] << "\" ";
-
114  stream << "/>" << std::endl;
-
115  stream << "<row ";
-
116  stream << "x=\"" << glm::row(mat, 1)[0] << "\" ";
-
117  stream << "y=\"" << glm::row(mat, 1)[1] << "\" ";
-
118  stream << "z=\"" << glm::row(mat, 1)[2] << "\" ";
-
119  stream << "/>" << std::endl;
-
120  stream << "<row ";
-
121  stream << "x=\"" << glm::row(mat, 2)[0] << "\" ";
-
122  stream << "y=\"" << glm::row(mat, 2)[1] << "\" ";
-
123  stream << "z=\"" << glm::row(mat, 2)[2] << "\" ";
-
124  stream << "/>" << std::endl;
-
125  stream << "</glm_mat3>";
-
126 
-
127  return stream;
-
128  }
-
129 
-
130  template<typename T>
-
131  std::ostream & operator << (std::ostream & stream, glm::detail::tmat4x4<T, P> const & mat)
-
132  {
-
133  stream << "<glm_mat4>" << std::endl;
-
134  stream << "<row ";
-
135  stream << "x=\"" << glm::row(mat, 0)[0] << "\" ";
-
136  stream << "y=\"" << glm::row(mat, 0)[1] << "\" ";
-
137  stream << "z=\"" << glm::row(mat, 0)[2] << "\" ";
-
138  stream << "w=\"" << glm::row(mat, 0)[3] << "\" ";
-
139  stream << "/>" << std::endl;
-
140  stream << "<row ";
-
141  stream << "x=\"" << glm::row(mat, 1)[0] << "\" ";
-
142  stream << "y=\"" << glm::row(mat, 1)[1] << "\" ";
-
143  stream << "z=\"" << glm::row(mat, 1)[2] << "\" ";
-
144  stream << "w=\"" << glm::row(mat, 1)[3] << "\" ";
-
145  stream << "/>" << std::endl;
-
146  stream << "<row ";
-
147  stream << "x=\"" << glm::row(mat, 2)[0] << "\" ";
-
148  stream << "y=\"" << glm::row(mat, 2)[1] << "\" ";
-
149  stream << "z=\"" << glm::row(mat, 2)[2] << "\" ";
-
150  stream << "w=\"" << glm::row(mat, 2)[3] << "\" ";
-
151  stream << "/>" << std::endl;
-
152  stream << "<row ";
-
153  stream << "x=\"" << glm::row(mat, 3)[0] << "\" ";
-
154  stream << "y=\"" << glm::row(mat, 3)[1] << "\" ";
-
155  stream << "z=\"" << glm::row(mat, 3)[2] << "\" ";
-
156  stream << "w=\"" << glm::row(mat, 3)[3] << "\" ";
-
157  stream << "/>" << std::endl;
-
158  stream << "</glm_mat4>";
-
159 
-
160  return stream;
-
161  }
-
162 
-
163 }//namespace detail
-
164 }//namespace glm
-
165 */
-
166 #endif//GLM_VIRTREV_xstream
-
- - - - diff --git a/doc/api/a00151.html b/doc/api/a00151.html index 8e25d13f..c25ab909 100644 --- a/doc/api/a00151.html +++ b/doc/api/a00151.html @@ -3,8 +3,8 @@ - -GLM: glm Namespace Reference + +0.9.6: Geometric functions @@ -16,9 +16,9 @@ + @@ -26,4041 +26,333 @@
-
GLM -  0.9.5 +
0.9.6
- + -
-Typedefs | Functions
-
glm Namespace Reference
+
Geometric functions
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Typedefs

-typedef bool bool1
 
-typedef bool bool1x1
 
-typedef detail::tvec2< bool,
-highp > 
bool2
 
-typedef detail::tmat2x2< bool,
-highp > 
bool2x2
 
-typedef detail::tmat2x3< bool,
-highp > 
bool2x3
 
-typedef detail::tmat2x4< bool,
-highp > 
bool2x4
 
-typedef detail::tvec3< bool,
-highp > 
bool3
 
-typedef detail::tmat3x2< bool,
-highp > 
bool3x2
 
-typedef detail::tmat3x3< bool,
-highp > 
bool3x3
 
-typedef detail::tmat3x4< bool,
-highp > 
bool3x4
 
-typedef detail::tvec4< bool,
-highp > 
bool4
 
-typedef detail::tmat4x2< bool,
-highp > 
bool4x2
 
-typedef detail::tmat4x3< bool,
-highp > 
bool4x3
 
-typedef detail::tmat4x4< bool,
-highp > 
bool4x4
 
typedef highp_bvec1 bvec1
 
typedef highp_bvec2 bvec2
 
typedef highp_bvec3 bvec3
 
typedef highp_bvec4 bvec4
 
typedef detail::uint8 byte
 
typedef highp_ddualquat ddualquat
 
typedef highp_dmat2x2 dmat2
 
typedef highp_dmat2x2 dmat2x2
 
typedef highp_dmat2x3 dmat2x3
 
typedef highp_dmat2x4 dmat2x4
 
typedef highp_dmat3x3 dmat3
 
typedef highp_dmat3x2 dmat3x2
 
typedef highp_dmat3x3 dmat3x3
 
typedef highp_dmat3x4 dmat3x4
 
typedef highp_dmat4x4 dmat4
 
typedef highp_dmat4x2 dmat4x2
 
typedef highp_dmat4x3 dmat4x3
 
typedef highp_dmat4x4 dmat4x4
 
-typedef double double1
 
-typedef double double1x1
 
-typedef detail::tvec2< double,
-highp > 
double2
 
-typedef detail::tmat2x2
-< double, highp > 
double2x2
 
-typedef detail::tmat2x3
-< double, highp > 
double2x3
 
-typedef detail::tmat2x4
-< double, highp > 
double2x4
 
-typedef detail::tvec3< double,
-highp > 
double3
 
-typedef detail::tmat3x2
-< double, highp > 
double3x2
 
-typedef detail::tmat3x3
-< double, highp > 
double3x3
 
-typedef detail::tmat3x4
-< double, highp > 
double3x4
 
-typedef detail::tvec4< double,
-highp > 
double4
 
-typedef detail::tmat4x2
-< double, highp > 
double4x2
 
-typedef detail::tmat4x3
-< double, highp > 
double4x3
 
-typedef detail::tmat4x4
-< double, highp > 
double4x4
 
typedef highp_dquat dquat
 
typedef highp_fdualquat dualquat
 
typedef highp_dvec2 dvec2
 
typedef highp_dvec3 dvec3
 
typedef highp_dvec4 dvec4
 
typedef detail::uint32 dword
 
typedef highp_float32_t f32
 
typedef f32mat2x2 f32mat2
 
typedef highp_f32mat2x2 f32mat2x2
 
typedef highp_f32mat2x3 f32mat2x3
 
typedef highp_f32mat2x4 f32mat2x4
 
typedef f32mat3x3 f32mat3
 
typedef highp_f32mat3x2 f32mat3x2
 
typedef highp_f32mat3x3 f32mat3x3
 
typedef highp_f32mat3x4 f32mat3x4
 
typedef f32mat4x4 f32mat4
 
typedef highp_f32mat4x2 f32mat4x2
 
typedef highp_f32mat4x3 f32mat4x3
 
typedef highp_f32mat4x4 f32mat4x4
 
typedef highp_f32quat f32quat
 
typedef highp_f32vec1 f32vec1
 
typedef highp_f32vec2 f32vec2
 
typedef highp_f32vec3 f32vec3
 
typedef highp_f32vec4 f32vec4
 
typedef highp_float64_t f64
 
typedef f64mat2x2 f64mat2
 
typedef highp_f64mat2x2 f64mat2x2
 
typedef highp_f64mat2x3 f64mat2x3
 
typedef highp_f64mat2x4 f64mat2x4
 
typedef f64mat3x3 f64mat3
 
typedef highp_f64mat3x2 f64mat3x2
 
typedef highp_f64mat3x3 f64mat3x3
 
typedef highp_f64mat3x4 f64mat3x4
 
typedef f64mat4x4 f64mat4
 
typedef highp_f64mat4x2 f64mat4x2
 
typedef highp_f64mat4x3 f64mat4x3
 
typedef highp_f64mat4x4 f64mat4x4
 
typedef highp_f64quat f64quat
 
typedef highp_f64vec1 f64vec1
 
typedef highp_f64vec2 f64vec2
 
typedef highp_f64vec3 f64vec3
 
typedef highp_f64vec4 f64vec4
 
typedef highp_fdualquat fdualquat
 
-typedef float float1
 
-typedef float float1x1
 
-typedef detail::tvec2< float,
-highp > 
float2
 
-typedef detail::tmat2x2< float,
-highp > 
float2x2
 
-typedef detail::tmat2x3< float,
-highp > 
float2x3
 
-typedef detail::tmat2x4< float,
-highp > 
float2x4
 
-typedef detail::tvec3< float,
-highp > 
float3
 
typedef float float32
 
typedef highp_float32_t float32_t
 
-typedef detail::tmat3x2< float,
-highp > 
float3x2
 
-typedef detail::tmat3x3< float,
-highp > 
float3x3
 
-typedef detail::tmat3x4< float,
-highp > 
float3x4
 
-typedef detail::tvec4< float,
-highp > 
float4
 
-typedef detail::tmat4x2< float,
-highp > 
float4x2
 
-typedef detail::tmat4x3< float,
-highp > 
float4x3
 
-typedef detail::tmat4x4< float,
-highp > 
float4x4
 
typedef double float64
 
typedef highp_float64_t float64_t
 
typedef fmat2x2 fmat2
 
typedef highp_f32mat2x2 fmat2x2
 
typedef highp_f32mat2x3 fmat2x3
 
typedef highp_f32mat2x4 fmat2x4
 
typedef fmat3x3 fmat3
 
typedef highp_f32mat3x2 fmat3x2
 
typedef highp_f32mat3x3 fmat3x3
 
typedef highp_f32mat3x4 fmat3x4
 
typedef fmat4x4 fmat4
 
typedef highp_f32mat4x2 fmat4x2
 
typedef highp_f32mat4x3 fmat4x3
 
typedef highp_f32mat4x4 fmat4x4
 
typedef quat fquat
 
typedef highp_f32vec1 fvec1
 
typedef highp_f32vec2 fvec2
 
typedef highp_f32vec3 fvec3
 
typedef highp_f32vec4 fvec4
 
typedef highp_bvec1_t highp_bvec1
 
typedef detail::tvec2< bool,
-highp > 
highp_bvec2
 
typedef detail::tvec3< bool,
-highp > 
highp_bvec3
 
typedef detail::tvec4< bool,
-highp > 
highp_bvec4
 
typedef detail::tdualquat
-< double, highp > 
highp_ddualquat
 
typedef detail::tmat2x2
-< double, highp > 
highp_dmat2
 
typedef detail::tmat2x2
-< double, highp > 
highp_dmat2x2
 
typedef detail::tmat2x3
-< double, highp > 
highp_dmat2x3
 
typedef detail::tmat2x4
-< double, highp > 
highp_dmat2x4
 
typedef detail::tmat3x3
-< double, highp > 
highp_dmat3
 
typedef detail::tmat3x2
-< double, highp > 
highp_dmat3x2
 
typedef detail::tmat3x3
-< double, highp > 
highp_dmat3x3
 
typedef detail::tmat3x4
-< double, highp > 
highp_dmat3x4
 
typedef detail::tmat4x4
-< double, highp > 
highp_dmat4
 
typedef detail::tmat4x2
-< double, highp > 
highp_dmat4x2
 
typedef detail::tmat4x3
-< double, highp > 
highp_dmat4x3
 
typedef detail::tmat4x4
-< double, highp > 
highp_dmat4x4
 
typedef detail::tquat< double,
-highp > 
highp_dquat
 
typedef detail::tdualquat
-< float, highp > 
highp_dualquat
 
typedef detail::tvec2< double,
-highp > 
highp_dvec2
 
typedef detail::tvec3< double,
-highp > 
highp_dvec3
 
typedef detail::tvec4< double,
-highp > 
highp_dvec4
 
typedef float32 highp_f32
 
typedef highp_f32mat2x2 highp_f32mat2
 
typedef detail::tmat2x2< f32,
-highp > 
highp_f32mat2x2
 
typedef detail::tmat2x3< f32,
-highp > 
highp_f32mat2x3
 
typedef detail::tmat2x4< f32,
-highp > 
highp_f32mat2x4
 
typedef highp_f32mat3x3 highp_f32mat3
 
typedef detail::tmat3x2< f32,
-highp > 
highp_f32mat3x2
 
typedef detail::tmat3x3< f32,
-highp > 
highp_f32mat3x3
 
typedef detail::tmat3x4< f32,
-highp > 
highp_f32mat3x4
 
typedef highp_f32mat4x4 highp_f32mat4
 
typedef detail::tmat4x2< f32,
-highp > 
highp_f32mat4x2
 
typedef detail::tmat4x3< f32,
-highp > 
highp_f32mat4x3
 
typedef detail::tmat4x4< f32,
-highp > 
highp_f32mat4x4
 
typedef detail::tquat< f32, highp > highp_f32quat
 
typedef detail::tvec1< f32, highp > highp_f32vec1
 
typedef detail::tvec2< f32, highp > highp_f32vec2
 
typedef detail::tvec3< f32, highp > highp_f32vec3
 
typedef detail::tvec4< f32, highp > highp_f32vec4
 
typedef float64 highp_f64
 
typedef highp_f64mat2x2 highp_f64mat2
 
typedef detail::tmat2x2< f64,
-highp > 
highp_f64mat2x2
 
typedef detail::tmat2x3< f64,
-highp > 
highp_f64mat2x3
 
typedef detail::tmat2x4< f64,
-highp > 
highp_f64mat2x4
 
typedef highp_f64mat3x3 highp_f64mat3
 
typedef detail::tmat3x2< f64,
-highp > 
highp_f64mat3x2
 
typedef detail::tmat3x3< f64,
-highp > 
highp_f64mat3x3
 
typedef detail::tmat3x4< f64,
-highp > 
highp_f64mat3x4
 
typedef highp_f64mat4x4 highp_f64mat4
 
typedef detail::tmat4x2< f64,
-highp > 
highp_f64mat4x2
 
typedef detail::tmat4x3< f64,
-highp > 
highp_f64mat4x3
 
typedef detail::tmat4x4< f64,
-highp > 
highp_f64mat4x4
 
typedef detail::tquat< f64, highp > highp_f64quat
 
typedef detail::tvec1< f64, highp > highp_f64vec1
 
typedef detail::tvec2< f64, highp > highp_f64vec2
 
typedef detail::tvec3< f64, highp > highp_f64vec3
 
typedef detail::tvec4< f64, highp > highp_f64vec4
 
typedef detail::tdualquat
-< float, highp > 
highp_fdualquat
 
typedef highp_float_t highp_float
 
typedef detail::float32 highp_float32
 
typedef detail::float32 highp_float32_t
 
typedef detail::float64 highp_float64
 
typedef detail::float64 highp_float64_t
 
typedef highp_fmat2x2 highp_fmat2
 
typedef detail::tmat2x2< f32,
-highp > 
highp_fmat2x2
 
typedef detail::tmat2x3< f32,
-highp > 
highp_fmat2x3
 
typedef detail::tmat2x4< f32,
-highp > 
highp_fmat2x4
 
typedef highp_fmat3x3 highp_fmat3
 
typedef detail::tmat3x2< f32,
-highp > 
highp_fmat3x2
 
typedef detail::tmat3x3< f32,
-highp > 
highp_fmat3x3
 
typedef detail::tmat3x4< f32,
-highp > 
highp_fmat3x4
 
typedef highp_fmat4x4 highp_fmat4
 
typedef detail::tmat4x2< f32,
-highp > 
highp_fmat4x2
 
typedef detail::tmat4x3< f32,
-highp > 
highp_fmat4x3
 
typedef detail::tmat4x4< f32,
-highp > 
highp_fmat4x4
 
typedef highp_quat highp_fquat
 
typedef detail::tvec1< float,
-highp > 
highp_fvec1
 
typedef detail::tvec2< float,
-highp > 
highp_fvec2
 
typedef detail::tvec3< float,
-highp > 
highp_fvec3
 
typedef detail::tvec4< float,
-highp > 
highp_fvec4
 
typedef detail::int16 highp_i16
 
typedef detail::tvec1< i16, highp > highp_i16vec1
 
typedef detail::tvec2< i16, highp > highp_i16vec2
 
typedef detail::tvec3< i16, highp > highp_i16vec3
 
typedef detail::tvec4< i16, highp > highp_i16vec4
 
typedef detail::int32 highp_i32
 
typedef detail::tvec1< i32, highp > highp_i32vec1
 
typedef detail::tvec2< i32, highp > highp_i32vec2
 
typedef detail::tvec3< i32, highp > highp_i32vec3
 
typedef detail::tvec4< i32, highp > highp_i32vec4
 
typedef detail::int64 highp_i64
 
typedef detail::tvec1< i64, highp > highp_i64vec1
 
typedef detail::tvec2< i64, highp > highp_i64vec2
 
typedef detail::tvec3< i64, highp > highp_i64vec3
 
typedef detail::tvec4< i64, highp > highp_i64vec4
 
typedef detail::int8 highp_i8
 
typedef detail::tvec1< i8, highp > highp_i8vec1
 
typedef detail::tvec2< i8, highp > highp_i8vec2
 
typedef detail::tvec3< i8, highp > highp_i8vec3
 
typedef detail::tvec4< i8, highp > highp_i8vec4
 
typedef detail::tmat2x2< int,
-highp > 
highp_imat2
 
typedef detail::tmat2x2< int,
-highp > 
highp_imat2x2
 
typedef detail::tmat2x3< int,
-highp > 
highp_imat2x3
 
typedef detail::tmat2x4< int,
-highp > 
highp_imat2x4
 
typedef detail::tmat3x3< int,
-highp > 
highp_imat3
 
typedef detail::tmat3x2< int,
-highp > 
highp_imat3x2
 
typedef detail::tmat3x3< int,
-highp > 
highp_imat3x3
 
typedef detail::tmat3x4< int,
-highp > 
highp_imat3x4
 
typedef detail::tmat4x4< int,
-highp > 
highp_imat4
 
typedef detail::tmat4x2< int,
-highp > 
highp_imat4x2
 
typedef detail::tmat4x3< int,
-highp > 
highp_imat4x3
 
typedef detail::tmat4x4< int,
-highp > 
highp_imat4x4
 
typedef detail::highp_int_t highp_int
 
typedef detail::int16 highp_int16
 
typedef detail::int16 highp_int16_t
 
typedef detail::int32 highp_int32
 
typedef detail::int32 highp_int32_t
 
typedef detail::int64 highp_int64
 
typedef detail::int64 highp_int64_t
 
typedef detail::int8 highp_int8
 
typedef detail::int8 highp_int8_t
 
typedef highp_ivec1_t highp_ivec1
 
typedef detail::tvec2< int, highp > highp_ivec2
 
typedef detail::tvec3< int, highp > highp_ivec3
 
typedef detail::tvec4< int, highp > highp_ivec4
 
typedef detail::tmat2x2< float,
-highp > 
highp_mat2
 
typedef detail::tmat2x2< float,
-highp > 
highp_mat2x2
 
typedef detail::tmat2x3< float,
-highp > 
highp_mat2x3
 
typedef detail::tmat2x4< float,
-highp > 
highp_mat2x4
 
typedef detail::tmat3x3< float,
-highp > 
highp_mat3
 
typedef detail::tmat3x2< float,
-highp > 
highp_mat3x2
 
typedef detail::tmat3x3< float,
-highp > 
highp_mat3x3
 
typedef detail::tmat3x4< float,
-highp > 
highp_mat3x4
 
typedef detail::tmat4x4< float,
-highp > 
highp_mat4
 
typedef detail::tmat4x2< float,
-highp > 
highp_mat4x2
 
typedef detail::tmat4x3< float,
-highp > 
highp_mat4x3
 
typedef detail::tmat4x4< float,
-highp > 
highp_mat4x4
 
typedef detail::tquat< float,
-highp > 
highp_quat
 
typedef detail::uint16 highp_u16
 
typedef detail::tvec1< u16, highp > highp_u16vec1
 
typedef detail::tvec2< u16, highp > highp_u16vec2
 
typedef detail::tvec3< u16, highp > highp_u16vec3
 
typedef detail::tvec4< u16, highp > highp_u16vec4
 
typedef detail::uint32 highp_u32
 
typedef detail::tvec1< u32, highp > highp_u32vec1
 
typedef detail::tvec2< u32, highp > highp_u32vec2
 
typedef detail::tvec3< u32, highp > highp_u32vec3
 
typedef detail::tvec4< u32, highp > highp_u32vec4
 
typedef detail::uint64 highp_u64
 
typedef detail::tvec1< u64, highp > highp_u64vec1
 
typedef detail::tvec2< u64, highp > highp_u64vec2
 
typedef detail::tvec3< u64, highp > highp_u64vec3
 
typedef detail::tvec4< u64, highp > highp_u64vec4
 
typedef detail::uint8 highp_u8
 
typedef detail::tvec1< u8, highp > highp_u8vec1
 
typedef detail::tvec2< u8, highp > highp_u8vec2
 
typedef detail::tvec3< u8, highp > highp_u8vec3
 
typedef detail::tvec4< u8, highp > highp_u8vec4
 
typedef detail::highp_uint_t highp_uint
 
typedef detail::uint16 highp_uint16
 
typedef detail::uint16 highp_uint16_t
 
typedef detail::uint32 highp_uint32
 
typedef detail::uint32 highp_uint32_t
 
typedef detail::uint64 highp_uint64
 
typedef detail::uint64 highp_uint64_t
 
typedef detail::uint8 highp_uint8
 
typedef detail::uint8 highp_uint8_t
 
typedef detail::tmat2x2< uint,
-highp > 
highp_umat2
 
typedef detail::tmat2x2< uint,
-highp > 
highp_umat2x2
 
typedef detail::tmat2x3< uint,
-highp > 
highp_umat2x3
 
typedef detail::tmat2x4< uint,
-highp > 
highp_umat2x4
 
typedef detail::tmat3x3< uint,
-highp > 
highp_umat3
 
typedef detail::tmat3x2< uint,
-highp > 
highp_umat3x2
 
typedef detail::tmat3x3< uint,
-highp > 
highp_umat3x3
 
typedef detail::tmat3x4< uint,
-highp > 
highp_umat3x4
 
typedef detail::tmat4x4< uint,
-highp > 
highp_umat4
 
typedef detail::tmat4x2< uint,
-highp > 
highp_umat4x2
 
typedef detail::tmat4x3< uint,
-highp > 
highp_umat4x3
 
typedef detail::tmat4x4< uint,
-highp > 
highp_umat4x4
 
typedef highp_uvec1_t highp_uvec1
 
typedef detail::tvec2< uint,
-highp > 
highp_uvec2
 
typedef detail::tvec3< uint,
-highp > 
highp_uvec3
 
typedef detail::tvec4< uint,
-highp > 
highp_uvec4
 
typedef detail::tvec1< float,
-highp > 
highp_vec1
 
typedef detail::tvec2< float,
-highp > 
highp_vec2
 
typedef detail::tvec3< float,
-highp > 
highp_vec3
 
typedef detail::tvec4< float,
-highp > 
highp_vec4
 
typedef detail::int16 i16
 
typedef highp_i16vec1 i16vec1
 
typedef highp_i16vec2 i16vec2
 
typedef highp_i16vec3 i16vec3
 
typedef highp_i16vec4 i16vec4
 
typedef detail::int32 i32
 
typedef highp_i32vec1 i32vec1
 
typedef highp_i32vec2 i32vec2
 
typedef highp_i32vec3 i32vec3
 
typedef highp_i32vec4 i32vec4
 
typedef detail::int64 i64
 
typedef highp_i64vec1 i64vec1
 
typedef highp_i64vec2 i64vec2
 
typedef highp_i64vec3 i64vec3
 
typedef highp_i64vec4 i64vec4
 
typedef detail::int8 i8
 
typedef highp_i8vec1 i8vec1
 
typedef highp_i8vec2 i8vec2
 
typedef highp_i8vec3 i8vec3
 
typedef highp_i8vec4 i8vec4
 
typedef mediump_imat2 imat2
 
typedef mediump_imat2x2 imat2x2
 
typedef mediump_imat2x3 imat2x3
 
typedef mediump_imat2x4 imat2x4
 
typedef mediump_imat3 imat3
 
typedef mediump_imat3x2 imat3x2
 
typedef mediump_imat3x3 imat3x3
 
typedef mediump_imat3x4 imat3x4
 
typedef mediump_imat4 imat4
 
typedef mediump_imat4x2 imat4x2
 
typedef mediump_imat4x3 imat4x3
 
typedef mediump_imat4x4 imat4x4
 
-typedef int int1
 
typedef detail::int16 int16
 
typedef detail::int16 int16_t
 
-typedef int int1x1
 
-typedef detail::tvec2< int, highp > int2
 
-typedef detail::tmat2x2< int,
-highp > 
int2x2
 
-typedef detail::tmat2x3< int,
-highp > 
int2x3
 
-typedef detail::tmat2x4< int,
-highp > 
int2x4
 
-typedef detail::tvec3< int, highp > int3
 
typedef detail::int32 int32
 
typedef detail::int32 int32_t
 
-typedef detail::tmat3x2< int,
-highp > 
int3x2
 
-typedef detail::tmat3x3< int,
-highp > 
int3x3
 
-typedef detail::tmat3x4< int,
-highp > 
int3x4
 
-typedef detail::tvec4< int, highp > int4
 
-typedef detail::tmat4x2< int,
-highp > 
int4x2
 
-typedef detail::tmat4x3< int,
-highp > 
int4x3
 
-typedef detail::tmat4x4< int,
-highp > 
int4x4
 
typedef detail::int64 int64
 
typedef detail::int64 int64_t
 
typedef detail::int8 int8
 
typedef detail::int8 int8_t
 
typedef highp_ivec1 ivec1
 
typedef highp_ivec2 ivec2
 
typedef highp_ivec3 ivec3
 
typedef highp_ivec4 ivec4
 
typedef lowp_bvec1_t lowp_bvec1
 
typedef detail::tvec2< bool, lowp > lowp_bvec2
 
typedef detail::tvec3< bool, lowp > lowp_bvec3
 
typedef detail::tvec4< bool, lowp > lowp_bvec4
 
typedef detail::tdualquat
-< double, lowp > 
lowp_ddualquat
 
typedef detail::tmat2x2
-< double, lowp > 
lowp_dmat2
 
typedef detail::tmat2x2
-< double, lowp > 
lowp_dmat2x2
 
typedef detail::tmat2x3
-< double, lowp > 
lowp_dmat2x3
 
typedef detail::tmat2x4
-< double, lowp > 
lowp_dmat2x4
 
typedef detail::tmat3x3< float,
-lowp > 
lowp_dmat3
 
typedef detail::tmat3x2
-< double, lowp > 
lowp_dmat3x2
 
typedef detail::tmat3x3
-< double, lowp > 
lowp_dmat3x3
 
typedef detail::tmat3x4
-< double, lowp > 
lowp_dmat3x4
 
typedef detail::tmat4x4
-< double, lowp > 
lowp_dmat4
 
typedef detail::tmat4x2
-< double, lowp > 
lowp_dmat4x2
 
typedef detail::tmat4x3
-< double, lowp > 
lowp_dmat4x3
 
typedef detail::tmat4x4
-< double, lowp > 
lowp_dmat4x4
 
typedef detail::tquat< double,
-lowp > 
lowp_dquat
 
typedef detail::tdualquat
-< float, lowp > 
lowp_dualquat
 
typedef detail::tvec2< double,
-lowp > 
lowp_dvec2
 
typedef detail::tvec3< double,
-lowp > 
lowp_dvec3
 
typedef detail::tvec4< double,
-lowp > 
lowp_dvec4
 
typedef float32 lowp_f32
 
typedef lowp_f32mat2x2 lowp_f32mat2
 
typedef detail::tmat2x2< f32,
-lowp > 
lowp_f32mat2x2
 
typedef detail::tmat2x3< f32,
-lowp > 
lowp_f32mat2x3
 
typedef detail::tmat2x4< f32,
-lowp > 
lowp_f32mat2x4
 
typedef lowp_f32mat3x3 lowp_f32mat3
 
typedef detail::tmat3x2< f32,
-lowp > 
lowp_f32mat3x2
 
typedef detail::tmat3x3< f32,
-lowp > 
lowp_f32mat3x3
 
typedef detail::tmat3x4< f32,
-lowp > 
lowp_f32mat3x4
 
typedef lowp_f32mat4x4 lowp_f32mat4
 
typedef detail::tmat4x2< f32,
-lowp > 
lowp_f32mat4x2
 
typedef detail::tmat4x3< f32,
-lowp > 
lowp_f32mat4x3
 
typedef detail::tmat4x4< f32,
-lowp > 
lowp_f32mat4x4
 
typedef detail::tquat< f32, lowp > lowp_f32quat
 
typedef detail::tvec1< f32, lowp > lowp_f32vec1
 
typedef detail::tvec2< f32, lowp > lowp_f32vec2
 
typedef detail::tvec3< f32, lowp > lowp_f32vec3
 
typedef detail::tvec4< f32, lowp > lowp_f32vec4
 
typedef float64 lowp_f64
 
typedef lowp_f64mat2x2 lowp_f64mat2
 
typedef detail::tmat2x2< f64,
-lowp > 
lowp_f64mat2x2
 
typedef detail::tmat2x3< f64,
-lowp > 
lowp_f64mat2x3
 
typedef detail::tmat2x4< f64,
-lowp > 
lowp_f64mat2x4
 
typedef lowp_f64mat3x3 lowp_f64mat3
 
typedef detail::tmat3x2< f64,
-lowp > 
lowp_f64mat3x2
 
typedef detail::tmat3x3< f64,
-lowp > 
lowp_f64mat3x3
 
typedef detail::tmat3x4< f64,
-lowp > 
lowp_f64mat3x4
 
typedef lowp_f64mat4x4 lowp_f64mat4
 
typedef detail::tmat4x2< f64,
-lowp > 
lowp_f64mat4x2
 
typedef detail::tmat4x3< f64,
-lowp > 
lowp_f64mat4x3
 
typedef detail::tmat4x4< f64,
-lowp > 
lowp_f64mat4x4
 
typedef detail::tquat< f64, lowp > lowp_f64quat
 
typedef detail::tvec1< f64, lowp > lowp_f64vec1
 
typedef detail::tvec2< f64, lowp > lowp_f64vec2
 
typedef detail::tvec3< f64, lowp > lowp_f64vec3
 
typedef detail::tvec4< f64, lowp > lowp_f64vec4
 
typedef detail::tdualquat
-< float, lowp > 
lowp_fdualquat
 
typedef lowp_float_t lowp_float
 
typedef detail::float32 lowp_float32
 
typedef detail::float32 lowp_float32_t
 
typedef detail::float64 lowp_float64
 
typedef detail::float64 lowp_float64_t
 
typedef lowp_fmat2x2 lowp_fmat2
 
typedef detail::tmat2x2< f32,
-lowp > 
lowp_fmat2x2
 
typedef detail::tmat2x3< f32,
-lowp > 
lowp_fmat2x3
 
typedef detail::tmat2x4< f32,
-lowp > 
lowp_fmat2x4
 
typedef lowp_fmat3x3 lowp_fmat3
 
typedef detail::tmat3x2< f32,
-lowp > 
lowp_fmat3x2
 
typedef detail::tmat3x3< f32,
-lowp > 
lowp_fmat3x3
 
typedef detail::tmat3x4< f32,
-lowp > 
lowp_fmat3x4
 
typedef lowp_fmat4x4 lowp_fmat4
 
typedef detail::tmat4x2< f32,
-lowp > 
lowp_fmat4x2
 
typedef detail::tmat4x3< f32,
-lowp > 
lowp_fmat4x3
 
typedef detail::tmat4x4< f32,
-lowp > 
lowp_fmat4x4
 
typedef lowp_quat lowp_fquat
 
typedef detail::tvec1< float,
-lowp > 
lowp_fvec1
 
typedef detail::tvec2< float,
-lowp > 
lowp_fvec2
 
typedef detail::tvec3< float,
-lowp > 
lowp_fvec3
 
typedef detail::tvec4< float,
-lowp > 
lowp_fvec4
 
typedef detail::int16 lowp_i16
 
typedef detail::tvec1< i16, lowp > lowp_i16vec1
 
typedef detail::tvec2< i16, lowp > lowp_i16vec2
 
typedef detail::tvec3< i16, lowp > lowp_i16vec3
 
typedef detail::tvec4< i16, lowp > lowp_i16vec4
 
typedef detail::int32 lowp_i32
 
typedef detail::tvec1< i32, lowp > lowp_i32vec1
 
typedef detail::tvec2< i32, lowp > lowp_i32vec2
 
typedef detail::tvec3< i32, lowp > lowp_i32vec3
 
typedef detail::tvec4< i32, lowp > lowp_i32vec4
 
typedef detail::int64 lowp_i64
 
typedef detail::tvec1< i64, lowp > lowp_i64vec1
 
typedef detail::tvec2< i64, lowp > lowp_i64vec2
 
typedef detail::tvec3< i64, lowp > lowp_i64vec3
 
typedef detail::tvec4< i64, lowp > lowp_i64vec4
 
typedef detail::int8 lowp_i8
 
typedef detail::tvec1< i8, lowp > lowp_i8vec1
 
typedef detail::tvec2< i8, lowp > lowp_i8vec2
 
typedef detail::tvec3< i8, lowp > lowp_i8vec3
 
typedef detail::tvec4< i8, lowp > lowp_i8vec4
 
typedef detail::tmat2x2< int,
-lowp > 
lowp_imat2
 
typedef detail::tmat2x2< int,
-lowp > 
lowp_imat2x2
 
typedef detail::tmat2x3< int,
-lowp > 
lowp_imat2x3
 
typedef detail::tmat2x4< int,
-lowp > 
lowp_imat2x4
 
typedef detail::tmat3x3< int,
-lowp > 
lowp_imat3
 
typedef detail::tmat3x2< int,
-lowp > 
lowp_imat3x2
 
typedef detail::tmat3x3< int,
-lowp > 
lowp_imat3x3
 
typedef detail::tmat3x4< int,
-lowp > 
lowp_imat3x4
 
typedef detail::tmat4x4< int,
-lowp > 
lowp_imat4
 
typedef detail::tmat4x2< int,
-lowp > 
lowp_imat4x2
 
typedef detail::tmat4x3< int,
-lowp > 
lowp_imat4x3
 
typedef detail::tmat4x4< int,
-lowp > 
lowp_imat4x4
 
typedef detail::lowp_int_t lowp_int
 
typedef detail::int16 lowp_int16
 
typedef detail::int16 lowp_int16_t
 
typedef detail::int32 lowp_int32
 
typedef detail::int32 lowp_int32_t
 
typedef detail::int64 lowp_int64
 
typedef detail::int64 lowp_int64_t
 
typedef detail::int8 lowp_int8
 
typedef detail::int8 lowp_int8_t
 
typedef lowp_ivec1_t lowp_ivec1
 
typedef detail::tvec2< int, lowp > lowp_ivec2
 
typedef detail::tvec3< int, lowp > lowp_ivec3
 
typedef detail::tvec4< int, lowp > lowp_ivec4
 
typedef detail::tmat2x2< float,
-lowp > 
lowp_mat2
 
typedef detail::tmat2x2< float,
-lowp > 
lowp_mat2x2
 
typedef detail::tmat2x3< float,
-lowp > 
lowp_mat2x3
 
typedef detail::tmat2x4< float,
-lowp > 
lowp_mat2x4
 
typedef detail::tmat3x3< float,
-lowp > 
lowp_mat3
 
typedef detail::tmat3x2< float,
-lowp > 
lowp_mat3x2
 
typedef detail::tmat3x3< float,
-lowp > 
lowp_mat3x3
 
typedef detail::tmat3x4< float,
-lowp > 
lowp_mat3x4
 
typedef detail::tmat4x4< float,
-lowp > 
lowp_mat4
 
typedef detail::tmat4x2< float,
-lowp > 
lowp_mat4x2
 
typedef detail::tmat4x3< float,
-lowp > 
lowp_mat4x3
 
typedef detail::tmat4x4< float,
-lowp > 
lowp_mat4x4
 
typedef detail::tquat< float,
-lowp > 
lowp_quat
 
typedef detail::uint16 lowp_u16
 
typedef detail::tvec1< u16, lowp > lowp_u16vec1
 
typedef detail::tvec2< u16, lowp > lowp_u16vec2
 
typedef detail::tvec3< u16, lowp > lowp_u16vec3
 
typedef detail::tvec4< u16, lowp > lowp_u16vec4
 
typedef detail::uint32 lowp_u32
 
typedef detail::tvec1< u32, lowp > lowp_u32vec1
 
typedef detail::tvec2< u32, lowp > lowp_u32vec2
 
typedef detail::tvec3< u32, lowp > lowp_u32vec3
 
typedef detail::tvec4< u32, lowp > lowp_u32vec4
 
typedef detail::uint64 lowp_u64
 
typedef detail::tvec1< u64, lowp > lowp_u64vec1
 
typedef detail::tvec2< u64, lowp > lowp_u64vec2
 
typedef detail::tvec3< u64, lowp > lowp_u64vec3
 
typedef detail::tvec4< u64, lowp > lowp_u64vec4
 
typedef detail::uint8 lowp_u8
 
typedef detail::tvec1< u8, lowp > lowp_u8vec1
 
typedef detail::tvec2< u8, lowp > lowp_u8vec2
 
typedef detail::tvec3< u8, lowp > lowp_u8vec3
 
typedef detail::tvec4< u8, lowp > lowp_u8vec4
 
typedef detail::lowp_uint_t lowp_uint
 
typedef detail::uint16 lowp_uint16
 
typedef detail::uint16 lowp_uint16_t
 
typedef detail::uint32 lowp_uint32
 
typedef detail::uint32 lowp_uint32_t
 
typedef detail::uint64 lowp_uint64
 
typedef detail::uint64 lowp_uint64_t
 
typedef detail::uint8 lowp_uint8
 
typedef detail::uint8 lowp_uint8_t
 
typedef detail::tmat2x2< uint,
-lowp > 
lowp_umat2
 
typedef detail::tmat2x2< uint,
-lowp > 
lowp_umat2x2
 
typedef detail::tmat2x3< uint,
-lowp > 
lowp_umat2x3
 
typedef detail::tmat2x4< uint,
-lowp > 
lowp_umat2x4
 
typedef detail::tmat3x3< uint,
-lowp > 
lowp_umat3
 
typedef detail::tmat3x2< uint,
-lowp > 
lowp_umat3x2
 
typedef detail::tmat3x3< uint,
-lowp > 
lowp_umat3x3
 
typedef detail::tmat3x4< uint,
-lowp > 
lowp_umat3x4
 
typedef detail::tmat4x4< uint,
-lowp > 
lowp_umat4
 
typedef detail::tmat4x2< uint,
-lowp > 
lowp_umat4x2
 
typedef detail::tmat4x3< uint,
-lowp > 
lowp_umat4x3
 
typedef detail::tmat4x4< uint,
-lowp > 
lowp_umat4x4
 
typedef lowp_uvec1_t lowp_uvec1
 
typedef detail::tvec2< uint, lowp > lowp_uvec2
 
typedef detail::tvec3< uint, lowp > lowp_uvec3
 
typedef detail::tvec4< uint, lowp > lowp_uvec4
 
typedef detail::tvec1< float,
-lowp > 
lowp_vec1
 
typedef detail::tvec2< float,
-lowp > 
lowp_vec2
 
typedef detail::tvec3< float,
-lowp > 
lowp_vec3
 
typedef detail::tvec4< float,
-lowp > 
lowp_vec4
 
typedef mat2x2 mat2
 
typedef highp_mat2x2 mat2x2
 
typedef highp_mat2x3 mat2x3
 
typedef highp_mat2x4 mat2x4
 
typedef mat3x3 mat3
 
typedef highp_mat3x2 mat3x2
 
typedef highp_mat3x3 mat3x3
 
typedef highp_mat3x4 mat3x4
 
typedef mat4x4 mat4
 
typedef highp_mat4x2 mat4x2
 
typedef highp_mat4x3 mat4x3
 
typedef highp_mat4x4 mat4x4
 
typedef mediump_bvec1_t mediump_bvec1
 
typedef detail::tvec2< bool,
-mediump > 
mediump_bvec2
 
typedef detail::tvec3< bool,
-mediump > 
mediump_bvec3
 
typedef detail::tvec4< bool,
-mediump > 
mediump_bvec4
 
typedef detail::tdualquat
-< double, mediump > 
mediump_ddualquat
 
typedef detail::tmat2x2
-< double, mediump > 
mediump_dmat2
 
typedef detail::tmat2x2
-< double, mediump > 
mediump_dmat2x2
 
typedef detail::tmat2x3
-< double, mediump > 
mediump_dmat2x3
 
typedef detail::tmat2x4
-< double, mediump > 
mediump_dmat2x4
 
typedef detail::tmat3x3
-< double, mediump > 
mediump_dmat3
 
typedef detail::tmat3x2
-< double, mediump > 
mediump_dmat3x2
 
typedef detail::tmat3x3
-< double, mediump > 
mediump_dmat3x3
 
typedef detail::tmat3x4
-< double, mediump > 
mediump_dmat3x4
 
typedef detail::tmat4x4
-< double, mediump > 
mediump_dmat4
 
typedef detail::tmat4x2
-< double, mediump > 
mediump_dmat4x2
 
typedef detail::tmat4x3
-< double, mediump > 
mediump_dmat4x3
 
typedef detail::tmat4x4
-< double, mediump > 
mediump_dmat4x4
 
typedef detail::tquat< double,
-mediump > 
mediump_dquat
 
typedef detail::tdualquat
-< float, mediump > 
mediump_dualquat
 
typedef detail::tvec2< double,
-mediump > 
mediump_dvec2
 
typedef detail::tvec3< double,
-mediump > 
mediump_dvec3
 
typedef detail::tvec4< double,
-mediump > 
mediump_dvec4
 
typedef float32 mediump_f32
 
typedef mediump_f32mat2x2 mediump_f32mat2
 
typedef detail::tmat2x2< f32,
-mediump > 
mediump_f32mat2x2
 
typedef detail::tmat2x3< f32,
-mediump > 
mediump_f32mat2x3
 
typedef detail::tmat2x4< f32,
-mediump > 
mediump_f32mat2x4
 
typedef mediump_f32mat3x3 mediump_f32mat3
 
typedef detail::tmat3x2< f32,
-mediump > 
mediump_f32mat3x2
 
typedef detail::tmat3x3< f32,
-mediump > 
mediump_f32mat3x3
 
typedef detail::tmat3x4< f32,
-mediump > 
mediump_f32mat3x4
 
typedef mediump_f32mat4x4 mediump_f32mat4
 
typedef detail::tmat4x2< f32,
-mediump > 
mediump_f32mat4x2
 
typedef detail::tmat4x3< f32,
-mediump > 
mediump_f32mat4x3
 
typedef detail::tmat4x4< f32,
-mediump > 
mediump_f32mat4x4
 
typedef detail::tquat< f32,
-mediump > 
mediump_f32quat
 
typedef detail::tvec1< f32,
-mediump > 
mediump_f32vec1
 
typedef detail::tvec2< f32,
-mediump > 
mediump_f32vec2
 
typedef detail::tvec3< f32,
-mediump > 
mediump_f32vec3
 
typedef detail::tvec4< f32,
-mediump > 
mediump_f32vec4
 
typedef float64 mediump_f64
 
typedef mediump_f64mat2x2 mediump_f64mat2
 
typedef detail::tmat2x2< f64,
-mediump > 
mediump_f64mat2x2
 
typedef detail::tmat2x3< f64,
-mediump > 
mediump_f64mat2x3
 
typedef detail::tmat2x4< f64,
-mediump > 
mediump_f64mat2x4
 
typedef mediump_f64mat3x3 mediump_f64mat3
 
typedef detail::tmat3x2< f64,
-mediump > 
mediump_f64mat3x2
 
typedef detail::tmat3x3< f64,
-mediump > 
mediump_f64mat3x3
 
typedef detail::tmat3x4< f64,
-mediump > 
mediump_f64mat3x4
 
typedef mediump_f64mat4x4 mediump_f64mat4
 
typedef detail::tmat4x2< f64,
-mediump > 
mediump_f64mat4x2
 
typedef detail::tmat4x3< f64,
-mediump > 
mediump_f64mat4x3
 
typedef detail::tmat4x4< f64,
-mediump > 
mediump_f64mat4x4
 
typedef detail::tquat< f64,
-mediump > 
mediump_f64quat
 
typedef detail::tvec1< f64,
-mediump > 
mediump_f64vec1
 
typedef detail::tvec2< f64,
-mediump > 
mediump_f64vec2
 
typedef detail::tvec3< f64,
-mediump > 
mediump_f64vec3
 
typedef detail::tvec4< f64,
-mediump > 
mediump_f64vec4
 
typedef detail::tdualquat
-< float, mediump > 
mediump_fdualquat
 
typedef mediump_float_t mediump_float
 
typedef detail::float32 mediump_float32
 
typedef detail::float32 mediump_float32_t
 
typedef detail::float64 mediump_float64
 
typedef detail::float64 mediump_float64_t
 
typedef mediump_fmat2x2 mediump_fmat2
 
typedef detail::tmat2x2< f32,
-mediump > 
mediump_fmat2x2
 
typedef detail::tmat2x3< f32,
-mediump > 
mediump_fmat2x3
 
typedef detail::tmat2x4< f32,
-mediump > 
mediump_fmat2x4
 
typedef mediump_fmat3x3 mediump_fmat3
 
typedef detail::tmat3x2< f32,
-mediump > 
mediump_fmat3x2
 
typedef detail::tmat3x3< f32,
-mediump > 
mediump_fmat3x3
 
typedef detail::tmat3x4< f32,
-mediump > 
mediump_fmat3x4
 
typedef mediump_fmat4x4 mediump_fmat4
 
typedef detail::tmat4x2< f32,
-mediump > 
mediump_fmat4x2
 
typedef detail::tmat4x3< f32,
-mediump > 
mediump_fmat4x3
 
typedef detail::tmat4x4< f32,
-mediump > 
mediump_fmat4x4
 
typedef mediump_quat mediump_fquat
 
typedef detail::tvec1< float,
-mediump > 
mediump_fvec1
 
typedef detail::tvec2< float,
-mediump > 
mediump_fvec2
 
typedef detail::tvec3< float,
-mediump > 
mediump_fvec3
 
typedef detail::tvec4< float,
-mediump > 
mediump_fvec4
 
typedef detail::int16 mediump_i16
 
typedef detail::tvec1< i16,
-mediump > 
mediump_i16vec1
 
typedef detail::tvec2< i16,
-mediump > 
mediump_i16vec2
 
typedef detail::tvec3< i16,
-mediump > 
mediump_i16vec3
 
typedef detail::tvec4< i16,
-mediump > 
mediump_i16vec4
 
typedef detail::int32 mediump_i32
 
typedef detail::tvec1< i32,
-mediump > 
mediump_i32vec1
 
typedef detail::tvec2< i32,
-mediump > 
mediump_i32vec2
 
typedef detail::tvec3< i32,
-mediump > 
mediump_i32vec3
 
typedef detail::tvec4< i32,
-mediump > 
mediump_i32vec4
 
typedef detail::int64 mediump_i64
 
typedef detail::tvec1< i64,
-mediump > 
mediump_i64vec1
 
typedef detail::tvec2< i64,
-mediump > 
mediump_i64vec2
 
typedef detail::tvec3< i64,
-mediump > 
mediump_i64vec3
 
typedef detail::tvec4< i64,
-mediump > 
mediump_i64vec4
 
typedef detail::int8 mediump_i8
 
typedef detail::tvec1< i8,
-mediump > 
mediump_i8vec1
 
typedef detail::tvec2< i8,
-mediump > 
mediump_i8vec2
 
typedef detail::tvec3< i8,
-mediump > 
mediump_i8vec3
 
typedef detail::tvec4< i8,
-mediump > 
mediump_i8vec4
 
typedef detail::tmat2x2< int,
-mediump > 
mediump_imat2
 
typedef detail::tmat2x2< int,
-mediump > 
mediump_imat2x2
 
typedef detail::tmat2x3< int,
-mediump > 
mediump_imat2x3
 
typedef detail::tmat2x4< int,
-mediump > 
mediump_imat2x4
 
typedef detail::tmat3x3< int,
-mediump > 
mediump_imat3
 
typedef detail::tmat3x2< int,
-mediump > 
mediump_imat3x2
 
typedef detail::tmat3x3< int,
-mediump > 
mediump_imat3x3
 
typedef detail::tmat3x4< int,
-mediump > 
mediump_imat3x4
 
typedef detail::tmat4x4< int,
-mediump > 
mediump_imat4
 
typedef detail::tmat4x2< int,
-mediump > 
mediump_imat4x2
 
typedef detail::tmat4x3< int,
-mediump > 
mediump_imat4x3
 
typedef detail::tmat4x4< int,
-mediump > 
mediump_imat4x4
 
typedef detail::mediump_int_t mediump_int
 
typedef detail::int16 mediump_int16
 
typedef detail::int16 mediump_int16_t
 
typedef detail::int32 mediump_int32
 
typedef detail::int32 mediump_int32_t
 
typedef detail::int64 mediump_int64
 
typedef detail::int64 mediump_int64_t
 
typedef detail::int8 mediump_int8
 
typedef detail::int8 mediump_int8_t
 
typedef mediump_ivec1_t mediump_ivec1
 
typedef detail::tvec2< int,
-mediump > 
mediump_ivec2
 
typedef detail::tvec3< int,
-mediump > 
mediump_ivec3
 
typedef detail::tvec4< int,
-mediump > 
mediump_ivec4
 
typedef detail::tmat2x2< float,
-mediump > 
mediump_mat2
 
typedef detail::tmat2x2< float,
-mediump > 
mediump_mat2x2
 
typedef detail::tmat2x3< float,
-mediump > 
mediump_mat2x3
 
typedef detail::tmat2x4< float,
-mediump > 
mediump_mat2x4
 
typedef detail::tmat3x3< float,
-mediump > 
mediump_mat3
 
typedef detail::tmat3x2< float,
-mediump > 
mediump_mat3x2
 
typedef detail::tmat3x3< float,
-mediump > 
mediump_mat3x3
 
typedef detail::tmat3x4< float,
-mediump > 
mediump_mat3x4
 
typedef detail::tmat4x4< float,
-mediump > 
mediump_mat4
 
typedef detail::tmat4x2< float,
-mediump > 
mediump_mat4x2
 
typedef detail::tmat4x3< float,
-mediump > 
mediump_mat4x3
 
typedef detail::tmat4x4< float,
-mediump > 
mediump_mat4x4
 
typedef detail::tquat< float,
-mediump > 
mediump_quat
 
typedef detail::uint16 mediump_u16
 
typedef detail::tvec1< u16,
-mediump > 
mediump_u16vec1
 
typedef detail::tvec2< u16,
-mediump > 
mediump_u16vec2
 
typedef detail::tvec3< u16,
-mediump > 
mediump_u16vec3
 
typedef detail::tvec4< u16,
-mediump > 
mediump_u16vec4
 
typedef detail::uint32 mediump_u32
 
typedef detail::tvec1< u32,
-mediump > 
mediump_u32vec1
 
typedef detail::tvec2< u32,
-mediump > 
mediump_u32vec2
 
typedef detail::tvec3< u32,
-mediump > 
mediump_u32vec3
 
typedef detail::tvec4< u32,
-mediump > 
mediump_u32vec4
 
typedef detail::uint64 mediump_u64
 
typedef detail::tvec1< u64,
-mediump > 
mediump_u64vec1
 
typedef detail::tvec2< u64,
-mediump > 
mediump_u64vec2
 
typedef detail::tvec3< u64,
-mediump > 
mediump_u64vec3
 
typedef detail::tvec4< u64,
-mediump > 
mediump_u64vec4
 
typedef detail::uint8 mediump_u8
 
typedef detail::tvec1< u8,
-mediump > 
mediump_u8vec1
 
typedef detail::tvec2< u8,
-mediump > 
mediump_u8vec2
 
typedef detail::tvec3< u8,
-mediump > 
mediump_u8vec3
 
typedef detail::tvec4< u8,
-mediump > 
mediump_u8vec4
 
typedef detail::mediump_uint_t mediump_uint
 
typedef detail::uint16 mediump_uint16
 
typedef detail::uint16 mediump_uint16_t
 
typedef detail::uint32 mediump_uint32
 
typedef detail::uint32 mediump_uint32_t
 
typedef detail::uint64 mediump_uint64
 
typedef detail::uint64 mediump_uint64_t
 
typedef detail::uint8 mediump_uint8
 
typedef detail::uint8 mediump_uint8_t
 
typedef detail::tmat2x2< uint,
-mediump > 
mediump_umat2
 
typedef detail::tmat2x2< uint,
-mediump > 
mediump_umat2x2
 
typedef detail::tmat2x3< uint,
-mediump > 
mediump_umat2x3
 
typedef detail::tmat2x4< uint,
-mediump > 
mediump_umat2x4
 
typedef detail::tmat3x3< uint,
-mediump > 
mediump_umat3
 
typedef detail::tmat3x2< uint,
-mediump > 
mediump_umat3x2
 
typedef detail::tmat3x3< uint,
-mediump > 
mediump_umat3x3
 
typedef detail::tmat3x4< uint,
-mediump > 
mediump_umat3x4
 
typedef detail::tmat4x4< uint,
-mediump > 
mediump_umat4
 
typedef detail::tmat4x2< uint,
-mediump > 
mediump_umat4x2
 
typedef detail::tmat4x3< uint,
-mediump > 
mediump_umat4x3
 
typedef detail::tmat4x4< uint,
-mediump > 
mediump_umat4x4
 
typedef mediump_uvec1_t mediump_uvec1
 
typedef detail::tvec2< uint,
-mediump > 
mediump_uvec2
 
typedef detail::tvec3< uint,
-mediump > 
mediump_uvec3
 
typedef detail::tvec4< uint,
-mediump > 
mediump_uvec4
 
typedef detail::tvec1< float,
-mediump > 
mediump_vec1
 
typedef detail::tvec2< float,
-mediump > 
mediump_vec2
 
typedef detail::tvec3< float,
-mediump > 
mediump_vec3
 
typedef detail::tvec4< float,
-mediump > 
mediump_vec4
 
-typedef highp_quat quat
 
typedef detail::uint64 qword
 
typedef signed int sint
 
typedef detail::tvec2
-< std::size_t, defaultp > 
size2
 
typedef detail::tvec2
-< std::size_t, defaultp > 
size2_t
 
typedef detail::tvec3
-< std::size_t, defaultp > 
size3
 
typedef detail::tvec3
-< std::size_t, defaultp > 
size3_t
 
typedef detail::tvec4
-< std::size_t, defaultp > 
size4
 
typedef detail::tvec4
-< std::size_t, defaultp > 
size4_t
 
typedef detail::uint16 u16
 
typedef highp_u16vec1 u16vec1
 
typedef highp_u16vec2 u16vec2
 
typedef highp_u16vec3 u16vec3
 
typedef highp_u16vec4 u16vec4
 
typedef detail::uint32 u32
 
typedef highp_u32vec1 u32vec1
 
typedef highp_u32vec2 u32vec2
 
typedef highp_u32vec3 u32vec3
 
typedef highp_u32vec4 u32vec4
 
typedef detail::uint64 u64
 
typedef highp_u64vec1 u64vec1
 
typedef highp_u64vec2 u64vec2
 
typedef highp_u64vec3 u64vec3
 
typedef highp_u64vec4 u64vec4
 
typedef detail::uint8 u8
 
typedef highp_u8vec1 u8vec1
 
typedef highp_u8vec2 u8vec2
 
typedef highp_u8vec3 u8vec3
 
typedef highp_u8vec4 u8vec4
 
typedef unsigned int uint
 
typedef detail::uint16 uint16
 
typedef detail::uint16 uint16_t
 
typedef detail::uint32 uint32
 
typedef detail::uint32 uint32_t
 
typedef detail::uint64 uint64
 
typedef detail::uint64 uint64_t
 
typedef detail::uint8 uint8
 
typedef detail::uint8 uint8_t
 
typedef mediump_umat2 umat2
 
typedef mediump_umat2x2 umat2x2
 
typedef mediump_umat2x3 umat2x3
 
typedef mediump_umat2x4 umat2x4
 
typedef mediump_umat3 umat3
 
typedef mediump_umat3x2 umat3x2
 
typedef mediump_umat3x3 umat3x3
 
typedef mediump_umat3x4 umat3x4
 
typedef mediump_umat4 umat4
 
typedef mediump_umat4x2 umat4x2
 
typedef mediump_umat4x3 umat4x3
 
typedef mediump_umat4x4 umat4x4
 
typedef highp_uvec1 uvec1
 
typedef highp_uvec2 uvec2
 
typedef highp_uvec3 uvec3
 
typedef highp_uvec4 uvec4
 
typedef highp_vec1 vec1
 
typedef highp_vec2 vec2
 
typedef highp_vec3 vec3
 
typedef highp_vec4 vec4
 
typedef detail::uint16 word
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + +

Functions

template<typename genType >
GLM_FUNC_DECL genType abs (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType acos (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType acosh (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType acot (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType acoth (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType acsc (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType acsch (genType const &x)
 
template<typename genType >
GLM_FUNC_QUALIFIER genType affineInverse (genType const &m)
 
template<precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL bool all (vecType< bool, P > const &v)
 
template<typename vecType >
GLM_FUNC_QUALIFIER
-vecType::value_type 
angle (vecType const &x, vecType const &y)
 
template<typename T , precision P>
GLM_FUNC_DECL T angle (detail::tquat< T, P > const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tquat< T, P > angleAxis (T const &angle, detail::tvec3< T, P > const &axis)
 
template<precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL bool any (vecType< bool, P > const &v)
 
template<typename T , precision P, template< typename, precision > class vecType>
bool areCollinear (vecType< T, P > const &v0, vecType< T, P > const &v1, T const &epsilon)
 
template<typename T , precision P, template< typename, precision > class vecType>
bool areOrthogonal (vecType< T, P > const &v0, vecType< T, P > const &v1, T const &epsilon)
 
template<typename T , precision P, template< typename, precision > class vecType>
bool areOrthonormal (vecType< T, P > const &v0, vecType< T, P > const &v1, T const &epsilon)
 
template<typename genType >
GLM_FUNC_DECL genType asec (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType asech (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType asin (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType asinh (genType const &x)
 
template<typename genTypeT , typename genTypeU >
genTypeU associatedMax (const genTypeT &x, const genTypeU &a, const genTypeT &y, const genTypeU &b)
 
template<typename genTypeT , typename genTypeU >
genTypeU associatedMax (const genTypeT &x, const genTypeU &a, const genTypeT &y, const genTypeU &b, const genTypeT &z, const genTypeU &c)
 
template<typename genTypeT , typename genTypeU >
genTypeU associatedMax (const genTypeT &x, const genTypeU &a, const genTypeT &y, const genTypeU &b, const genTypeT &z, const genTypeU &c, const genTypeT &w, const genTypeU &d)
 
template<typename genTypeT , typename genTypeU >
genTypeU associatedMin (const genTypeT &x, const genTypeU &a, const genTypeT &y, const genTypeU &b)
 
template<typename genTypeT , typename genTypeU >
genTypeU associatedMin (const genTypeT &x, const genTypeU &a, const genTypeT &y, const genTypeU &b, const genTypeT &z, const genTypeU &c)
 
template<typename genTypeT , typename genTypeU >
genTypeU associatedMin (const genTypeT &x, const genTypeU &a, const genTypeT &y, const genTypeU &b, const genTypeT &z, const genTypeU &c, const genTypeT &w, const genTypeU &d)
 
template<typename genType >
GLM_FUNC_DECL genType atan (genType const &y, genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType atan (genType const &y_over_x)
 
-template<typename T , precision P>
GLM_FUNC_QUALIFIER T atan2 (T x, T y)
 
-template<typename T , precision P>
GLM_FUNC_QUALIFIER
-detail::tvec2< T, P > 
atan2 (const detail::tvec2< T, P > &x, const detail::tvec2< T, P > &y)
 
-template<typename T , precision P>
GLM_FUNC_QUALIFIER
-detail::tvec3< T, P > 
atan2 (const detail::tvec3< T, P > &x, const detail::tvec3< T, P > &y)
 
-template<typename T , precision P>
GLM_FUNC_QUALIFIER
-detail::tvec4< T, P > 
atan2 (const detail::tvec4< T, P > &x, const detail::tvec4< T, P > &y)
 
template<typename genType >
GLM_FUNC_DECL genType atanh (genType const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tvec3< T, P > axis (detail::tquat< T, P > const &x)
 
template<typename T , precision P>
void axisAngle (detail::tmat4x4< T, P > const &mat, detail::tvec3< T, P > &axis, T &angle)
 
template<typename T , precision P>
detail::tmat4x4< T, P > axisAngleMatrix (detail::tvec3< T, P > const &axis, T const angle)
 
template<typename T >
GLM_FUNC_DECL detail::tvec3< T,
-defaultp > 
ballRand (T const &Radius)
 
template<typename T , template< typename > class genIUType>
GLM_FUNC_DECL genIUType< T >
-::signed_type 
bitCount (genIUType< T > const &Value)
 
template<typename genIUType >
GLM_FUNC_DECL genIUType bitfieldExtract (genIUType const &Value, int const &Offset, int const &Bits)
 
template<typename genIUType >
GLM_FUNC_DECL genIUType bitfieldInsert (genIUType const &Base, genIUType const &Insert, int const &Offset, int const &Bits)
 
GLM_FUNC_DECL int16 bitfieldInterleave (int8 x, int8 y)
 
GLM_FUNC_DECL uint16 bitfieldInterleave (uint8 x, uint8 y)
 
GLM_FUNC_DECL int32 bitfieldInterleave (int16 x, int16 y)
 
GLM_FUNC_DECL uint32 bitfieldInterleave (uint16 x, uint16 y)
 
GLM_FUNC_DECL int64 bitfieldInterleave (int32 x, int32 y)
 
GLM_FUNC_DECL uint64 bitfieldInterleave (uint32 x, uint32 y)
 
GLM_FUNC_DECL int32 bitfieldInterleave (int8 x, int8 y, int8 z)
 
GLM_FUNC_DECL uint32 bitfieldInterleave (uint8 x, uint8 y, uint8 z)
 
GLM_FUNC_DECL int64 bitfieldInterleave (int16 x, int16 y, int16 z)
 
GLM_FUNC_DECL uint64 bitfieldInterleave (uint16 x, uint16 y, uint16 z)
 
GLM_FUNC_DECL int64 bitfieldInterleave (int32 x, int32 y, int32 z)
 
GLM_FUNC_DECL uint64 bitfieldInterleave (uint32 x, uint32 y, uint32 z)
 
GLM_FUNC_DECL int32 bitfieldInterleave (int8 x, int8 y, int8 z, int8 w)
 
GLM_FUNC_DECL uint32 bitfieldInterleave (uint8 x, uint8 y, uint8 z, uint8 w)
 
GLM_FUNC_DECL int64 bitfieldInterleave (int16 x, int16 y, int16 z, int16 w)
 
GLM_FUNC_DECL uint64 bitfieldInterleave (uint16 x, uint16 y, uint16 z, uint16 w)
 
template<typename genIUType >
GLM_FUNC_DECL genIUType bitfieldReverse (genIUType const &Value)
 
template<typename genType >
GLM_DEPRECATED GLM_FUNC_DECL
-genType 
bitRevert (genType const &value)
 
template<typename genType >
GLM_FUNC_DECL genType bitRotateLeft (genType const &In, std::size_t Shift)
 
template<typename genType >
GLM_FUNC_DECL genType bitRotateRight (genType const &In, std::size_t Shift)
 
template<typename genType >
GLM_FUNC_DECL genType catmullRom (genType const &v1, genType const &v2, genType const &v3, genType const &v4, typename genType::value_type const &s)
 
template<typename genType >
GLM_FUNC_DECL genType ceil (genType const &x)
 
template<typename T >
GLM_FUNC_DECL detail::tvec2< T,
-defaultp > 
circularRand (T const &Radius)
 
template<typename genType >
GLM_FUNC_DECL genType clamp (genType const &Texcoord)
 
template<typename genType >
GLM_FUNC_DECL genType clamp (genType const &x, genType const &minVal, genType const &maxVal)
 
template<typename T , precision P>
detail::tvec3< T, P > closestPointOnLine (detail::tvec3< T, P > const &point, detail::tvec3< T, P > const &a, detail::tvec3< T, P > const &b)
 
template<typename T , precision P>
detail::tmat2x2< T, P > colMajor2 (detail::tvec2< T, P > const &v1, detail::tvec2< T, P > const &v2)
 
template<typename T , precision P>
detail::tmat2x2< T, P > colMajor2 (detail::tmat2x2< T, P > const &m)
 
template<typename T , precision P>
detail::tmat3x3< T, P > colMajor3 (detail::tvec3< T, P > const &v1, detail::tvec3< T, P > const &v2, detail::tvec3< T, P > const &v3)
 
template<typename T , precision P>
detail::tmat3x3< T, P > colMajor3 (detail::tmat3x3< T, P > const &m)
 
template<typename T , precision P>
detail::tmat4x4< T, P > colMajor4 (detail::tvec4< T, P > const &v1, detail::tvec4< T, P > const &v2, detail::tvec4< T, P > const &v3, detail::tvec4< T, P > const &v4)
 
template<typename T , precision P>
detail::tmat4x4< T, P > colMajor4 (detail::tmat4x4< T, P > const &m)
 
template<typename genType >
genType::col_type column (genType const &m, length_t const &index)
 
template<typename genType >
genType column (genType const &m, length_t const &index, typename genType::col_type const &x)
 
template<typename genType >
genType::value_type compAdd (genType const &v)
 
template<typename genType >
genType::value_type compMax (genType const &v)
 
template<typename genType >
genType::value_type compMin (genType const &v)
 
template<typename genType >
genType::value_type compMul (genType const &v)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tquat< T, P > conjugate (detail::tquat< T, P > const &q)
 
template<typename genType >
GLM_FUNC_DECL genType cos (genType const &angle)
 
template<typename genType >
GLM_FUNC_DECL genType cosh (genType const &angle)
 
template<typename genType >
GLM_FUNC_DECL genType cot (genType const &angle)
 
template<typename genType >
GLM_FUNC_DECL genType coth (genType const &angle)
 
template<typename T , precision P>
detail::tvec3< T, P > cross (detail::tquat< T, P > const &q, detail::tvec3< T, P > const &v)
 
template<typename T , precision P>
detail::tvec3< T, P > cross (detail::tvec3< T, P > const &v, detail::tquat< T, P > const &q)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tvec3< T, P > cross (detail::tvec3< T, P > const &x, detail::tvec3< T, P > const &y)
 
template<typename genType >
GLM_FUNC_DECL genType csc (genType const &angle)
 
template<typename genType >
GLM_FUNC_DECL genType csch (genType const &angle)
 
template<typename genType >
GLM_FUNC_DECL genType cubic (genType const &v1, genType const &v2, genType const &v3, genType const &v4, typename genType::value_type const &s)
 
template<typename genType >
GLM_FUNC_DECL genType degrees (genType const &radians)
 
template<typename T , precision P>
detail::tmat2x2< T, P > diagonal2x2 (detail::tvec2< T, P > const &v)
 
template<typename T , precision P>
detail::tmat2x3< T, P > diagonal2x3 (detail::tvec2< T, P > const &v)
 
template<typename T , precision P>
detail::tmat2x4< T, P > diagonal2x4 (detail::tvec2< T, P > const &v)
 
template<typename T , precision P>
detail::tmat3x2< T, P > diagonal3x2 (detail::tvec2< T, P > const &v)
 
template<typename T , precision P>
detail::tmat3x3< T, P > diagonal3x3 (detail::tvec3< T, P > const &v)
 
template<typename T , precision P>
detail::tmat3x4< T, P > diagonal3x4 (detail::tvec3< T, P > const &v)
 
template<typename T , precision P>
detail::tmat4x2< T, P > diagonal4x2 (detail::tvec2< T, P > const &v)
 
template<typename T , precision P>
detail::tmat4x3< T, P > diagonal4x3 (detail::tvec3< T, P > const &v)
 
template<typename T , precision P>
detail::tmat4x4< T, P > diagonal4x4 (detail::tvec4< T, P > const &v)
 
template<typename T >
GLM_FUNC_DECL detail::tvec2< T,
-defaultp > 
diskRand (T const &Radius)
 
template<typename genType >
GLM_FUNC_DECL genType::value_type distance (genType const &p0, genType const &p1)
 
template<typename T >
distance2 (T const &p0, T const &p1)
 
template<typename genType >
genType::value_type distance2 (genType const &p0, genType const &p1)
 
template<typename T , precision P>
GLM_FUNC_DECL tvec3< T, P > cross (tvec3< T, P > const &x, tvec3< T, P > const &y)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL T distance (vecType< T, P > const &p0, vecType< T, P > const &p1)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL T dot (vecType< T, P > const &x, vecType< T, P > const &y)
GLM_FUNC_DECL T dot (vecType< T, P > const &x, vecType< T, P > const &y)
 
template<typename genType >
GLM_FUNC_DECL genType dot (genType const &x, genType const &y)
 
template<typename T , precision P, template< typename, precision > class quatType>
GLM_FUNC_DECL T dot (quatType< T, P > const &x, quatType< T, P > const &y)
 
template<typename T , precision P>
detail::tdualquat< T, P > dualquat_cast (detail::tmat2x4< T, P > const &x)
 
template<typename T , precision P>
detail::tdualquat< T, P > dualquat_cast (detail::tmat3x4< T, P > const &x)
 
template<typename genType >
GLM_FUNC_DECL genType e ()
 
template<typename genType >
GLM_FUNC_DECL genType epsilon ()
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< bool, P > epsilonEqual (vecType< T, P > const &x, vecType< T, P > const &y, T const &epsilon)
 
template<typename genType >
GLM_FUNC_DECL bool epsilonEqual (genType const &x, genType const &y, genType const &epsilon)
 
template<typename genType >
GLM_FUNC_DECL genType::boolType epsilonNotEqual (genType const &x, genType const &y, typename genType::value_type const &epsilon)
 
template<typename genType >
GLM_FUNC_DECL bool epsilonNotEqual (genType const &x, genType const &y, genType const &epsilon)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tvec4
-< bool, P > 
equal (detail::tquat< T, P > const &x, detail::tquat< T, P > const &y)
 
template<typename T , precision P>
detail::tvec3< T, P > euclidean (detail::tvec2< T, P > const &polar)
 
template<typename genType >
GLM_FUNC_DECL genType euler ()
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tvec3< T, P > eulerAngles (detail::tquat< T, P > const &x)
 
template<typename T >
detail::tmat4x4< T, defaultp > eulerAngleX (T const &angleX)
 
template<typename T >
detail::tmat4x4< T, defaultp > eulerAngleXY (T const &angleX, T const &angleY)
 
template<typename T >
detail::tmat4x4< T, defaultp > eulerAngleXZ (T const &angleX, T const &angleZ)
 
template<typename T >
detail::tmat4x4< T, defaultp > eulerAngleY (T const &angleY)
 
template<typename T >
detail::tmat4x4< T, defaultp > eulerAngleYX (T const &angleY, T const &angleX)
 
template<typename T >
detail::tmat4x4< T, defaultp > eulerAngleYXZ (T const &yaw, T const &pitch, T const &roll)
 
template<typename T >
detail::tmat4x4< T, defaultp > eulerAngleYZ (T const &angleY, T const &angleZ)
 
template<typename T >
detail::tmat4x4< T, defaultp > eulerAngleZ (T const &angleZ)
 
template<typename T >
detail::tmat4x4< T, defaultp > eulerAngleZX (T const &angle, T const &angleX)
 
template<typename T >
detail::tmat4x4< T, defaultp > eulerAngleZY (T const &angleZ, T const &angleY)
 
template<typename genType >
GLM_FUNC_DECL genType exp (genType const &x)
 
template<typename T , precision P>
detail::tquat< T, P > exp (detail::tquat< T, P > const &q)
 
template<typename genType >
GLM_FUNC_DECL genType exp2 (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType extend (genType const &Origin, genType const &Source, typename genType::value_type const Length)
 
template<typename T , precision P>
detail::tmat4x4< T, P > extractMatrixRotation (detail::tmat4x4< T, P > const &mat)
 
template<typename T , precision P>
extractRealComponent (detail::tquat< T, P > const &q)
 
template<typename genType >
GLM_FUNC_DECL genType faceforward (genType const &N, genType const &I, genType const &Nref)
GLM_FUNC_DECL genType faceforward (genType const &N, genType const &I, genType const &Nref)
 
template<typename genType >
genType factorial (genType const &x)
 
template<typename T >
fastAcos (const T &angle)
 
template<typename T >
fastAsin (const T &angle)
 
template<typename T >
fastAtan (const T &y, const T &x)
 
template<typename T >
fastAtan (const T &angle)
 
template<typename T >
fastCos (const T &angle)
 
template<typename genType >
genType::value_type fastDistance (genType const &x, genType const &y)
 
template<typename T >
fastExp (const T &x)
 
template<typename T >
fastExp2 (const T &x)
 
template<typename genType >
genType fastInverseSqrt (genType const &x)
 
template<typename genType >
genType::value_type fastLength (genType const &x)
 
template<typename T >
fastLn (const T &x)
 
template<typename T >
fastLog (const T &x)
 
template<typename T >
fastLog2 (const T &x)
 
template<typename T , precision P>
detail::tquat< T, P > fastMix (detail::tquat< T, P > const &x, detail::tquat< T, P > const &y, T const &a)
 
template<typename genType >
genType fastNormalize (genType const &x)
 
template<typename genType >
genType::value_type fastNormalizeDot (genType const &x, genType const &y)
 
template<typename genType >
genType fastPow (genType const &x, genType const &y)
 
template<typename genTypeT , typename genTypeU >
genTypeT fastPow (genTypeT const &x, genTypeU const &y)
 
template<typename T >
fastSin (const T &angle)
 
template<typename genType >
genType fastSqrt (genType const &x)
 
template<typename T >
fastTan (const T &angle)
 
template<typename genIUType >
GLM_FUNC_DECL genIUType fillBitfieldWithOne (genIUType const &Value, int const &FromBit, int const &ToBit)
 
template<typename genIUType >
GLM_FUNC_DECL genIUType fillBitfieldWithZero (genIUType const &Value, int const &FromBit, int const &ToBit)
 
template<typename T , template< typename > class genIUType>
GLM_FUNC_DECL genIUType< T >
-::signed_type 
findLSB (genIUType< T > const &Value)
 
template<typename T , template< typename > class genIUType>
GLM_FUNC_DECL genIUType< T >
-::signed_type 
findMSB (genIUType< T > const &Value)
 
template<typename T >
GLM_FUNC_DECL uint float_distance (T const &x, T const &y)
 
template<typename T , template< typename > class vecType>
GLM_FUNC_DECL vecType< uintfloat_distance (vecType< T > const &x, vecType< T > const &y)
 
GLM_FUNC_DECL int floatBitsToInt (float const &v)
 
template<template< typename, precision > class vecType, precision P>
GLM_FUNC_DECL vecType< int, P > floatBitsToInt (vecType< float, P > const &v)
 
GLM_FUNC_DECL uint floatBitsToUint (float const &v)
 
template<template< typename, precision > class vecType, precision P>
GLM_FUNC_DECL vecType< uint, P > floatBitsToUint (vecType< float, P > const &v)
 
template<typename genType >
GLM_FUNC_DECL genType floor (genType const &x)
 
unsigned int floor_log2 (unsigned int x)
 
template<typename genType >
GLM_FUNC_DECL genType fma (genType const &a, genType const &b, genType const &c)
 
template<typename genType >
GLM_FUNC_DECL genType fract (genType const &x)
 
template<typename genType , typename genIType >
GLM_FUNC_DECL genType frexp (genType const &x, genIType &exp)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tmat4x4
-< T, P > 
frustum (T const &left, T const &right, T const &bottom, T const &top, T const &near, T const &far)
 
template<typename genType >
GLM_FUNC_DECL genType gaussRand (genType const &Mean, genType const &Deviation)
 
template<typename genType >
GLM_FUNC_DECL genType golden_ratio ()
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P >
-::bool_type 
greaterThan (vecType< T, P > const &x, vecType< T, P > const &y)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tvec4
-< bool, P > 
greaterThan (detail::tquat< T, P > const &x, detail::tquat< T, P > const &y)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P >
-::bool_type 
greaterThanEqual (vecType< T, P > const &x, vecType< T, P > const &y)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tvec4
-< bool, P > 
greaterThanEqual (detail::tquat< T, P > const &x, detail::tquat< T, P > const &y)
 
template<typename genType >
GLM_FUNC_DECL genType half_pi ()
 
template<typename genType >
GLM_FUNC_DECL genType hermite (genType const &v1, genType const &t1, genType const &v2, genType const &t2, typename genType::value_type const &s)
 
template<typename genType >
genType higherMultiple (genType const &Source, genType const &Multiple)
 
template<typename genType >
GLM_FUNC_DECL genType highestBitValue (genType const &value)
 
template<typename T , precision P>
detail::tvec3< T, P > hsvColor (detail::tvec3< T, P > const &rgbValue)
 
template<typename genIType >
GLM_FUNC_DECL void imulExtended (genIType const &x, genIType const &y, genIType &msb, genIType &lsb)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tmat4x4
-< T, P > 
infinitePerspective (T fovy, T aspect, T near)
 
GLM_FUNC_DECL float intBitsToFloat (int const &v)
 
template<template< typename, precision > class vecType, precision P>
GLM_FUNC_DECL vecType< float, P > intBitsToFloat (vecType< int, P > const &v)
 
template<typename T , precision P>
detail::tquat< T, P > intermediate (detail::tquat< T, P > const &prev, detail::tquat< T, P > const &curr, detail::tquat< T, P > const &next)
 
template<typename T , precision P>
detail::tmat4x4< T, P > interpolate (detail::tmat4x4< T, P > const &m1, detail::tmat4x4< T, P > const &m2, T const delta)
 
template<typename genType >
bool intersectLineSphere (genType const &point0, genType const &point1, genType const &sphereCenter, typename genType::value_type sphereRadius, genType &intersectionPosition1, genType &intersectionNormal1, genType &intersectionPosition2=genType(), genType &intersectionNormal2=genType())
 
template<typename genType >
bool intersectLineTriangle (genType const &orig, genType const &dir, genType const &vert0, genType const &vert1, genType const &vert2, genType &position)
 
template<typename genType >
bool intersectRayPlane (genType const &orig, genType const &dir, genType const &planeOrig, genType const &planeNormal, typename genType::value_type &intersectionDistance)
 
template<typename genType >
bool intersectRaySphere (genType const &rayStarting, genType const &rayNormalizedDirection, genType const &sphereCenter, typename genType::value_type const sphereRadiusSquered, typename genType::value_type &intersectionDistance)
 
template<typename genType >
bool intersectRaySphere (genType const &rayStarting, genType const &rayNormalizedDirection, genType const &sphereCenter, const typename genType::value_type sphereRadius, genType &intersectionPosition, genType &intersectionNormal)
 
template<typename genType >
bool intersectRayTriangle (genType const &orig, genType const &dir, genType const &vert0, genType const &vert1, genType const &vert2, genType &baryPosition)
 
template<typename T , precision P>
detail::tdualquat< T, P > inverse (detail::tdualquat< T, P > const &q)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tquat< T, P > inverse (detail::tquat< T, P > const &q)
 
template<typename genType >
GLM_FUNC_DECL genType inversesqrt (genType const &x)
 
template<typename genType >
GLM_FUNC_QUALIFIER
-genType::value_type 
inverseTranspose (genType const &m)
 
template<typename T , precision P, template< typename, precision > class vecType>
vecType< bool, P > isCompNull (vecType< T, P > const &v, T const &epsilon)
 
-template<typename genType >
bool isfinite (genType const &x)
 
-template<typename T , precision P>
detail::tvec2< bool, P > isfinite (const detail::tvec2< T, P > &x)
 
-template<typename T , precision P>
detail::tvec3< bool, P > isfinite (const detail::tvec3< T, P > &x)
 
-template<typename T , precision P>
detail::tvec4< bool, P > isfinite (const detail::tvec4< T, P > &x)
 
template<typename T , precision P, template< typename, precision > class matType>
bool isIdentity (matType< T, P > const &m, T const &epsilon)
 
template<typename genType >
GLM_FUNC_DECL genType::bool_type isinf (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType::bool_type isnan (genType const &x)
 
template<typename T , precision P, template< typename, precision > class vecType>
bool isNormalized (vecType< T, P > const &v, T const &epsilon)
 
template<typename T , precision P>
bool isNormalized (detail::tmat2x2< T, P > const &m, T const &epsilon)
 
template<typename T , precision P>
bool isNormalized (detail::tmat3x3< T, P > const &m, T const &epsilon)
 
template<typename T , precision P>
bool isNormalized (detail::tmat4x4< T, P > const &m, T const &epsilon)
 
template<typename T , precision P>
bool isNull (detail::tmat2x2< T, P > const &m, T const &epsilon)
 
template<typename T , precision P>
bool isNull (detail::tmat3x3< T, P > const &m, T const &epsilon)
 
template<typename T , precision P>
bool isNull (detail::tmat4x4< T, P > const &m, T const &epsilon)
 
template<typename T , precision P, template< typename, precision > class vecType>
bool isNull (vecType< T, P > const &v, T const &epsilon)
 
template<typename T , precision P, template< typename, precision > class matType>
bool isOrthogonal (matType< T, P > const &m, T const &epsilon)
 
template<typename genType >
GLM_FUNC_DECL bool isPowerOfTwo (genType const &value)
 
template<typename T , precision P>
l1Norm (detail::tvec3< T, P > const &x, detail::tvec3< T, P > const &y)
 
template<typename T , precision P>
l1Norm (detail::tvec3< T, P > const &v)
 
template<typename T , precision P>
l2Norm (detail::tvec3< T, P > const &x, detail::tvec3< T, P > const &y)
 
template<typename T , precision P>
l2Norm (detail::tvec3< T, P > const &x)
 
template<typename genType , typename genIType >
GLM_FUNC_DECL genType ldexp (genType const &x, genIType const &exp)
 
template<typename T , precision P>
bool leftHanded (detail::tvec3< T, P > const &tangent, detail::tvec3< T, P > const &binormal, detail::tvec3< T, P > const &normal)
 
template<typename genType >
GLM_FUNC_DECL genType::value_type length (genType const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL T length (detail::tquat< T, P > const &q)
 
template<typename T >
length2 (T const &x)
 
template<typename genType >
genType::value_type length2 (genType const &x)
 
template<typename T , precision P>
length2 (detail::tquat< T, P > const &q)
 
-template<typename T >
GLM_FUNC_QUALIFIER T lerp (T x, T y, T a)
 
-template<typename T , precision P>
GLM_FUNC_QUALIFIER
-detail::tvec2< T, P > 
lerp (const detail::tvec2< T, P > &x, const detail::tvec2< T, P > &y, T a)
 
-template<typename T , precision P>
GLM_FUNC_QUALIFIER
-detail::tvec3< T, P > 
lerp (const detail::tvec3< T, P > &x, const detail::tvec3< T, P > &y, T a)
 
-template<typename T , precision P>
GLM_FUNC_QUALIFIER
-detail::tvec4< T, P > 
lerp (const detail::tvec4< T, P > &x, const detail::tvec4< T, P > &y, T a)
 
-template<typename T , precision P>
GLM_FUNC_QUALIFIER
-detail::tvec2< T, P > 
lerp (const detail::tvec2< T, P > &x, const detail::tvec2< T, P > &y, const detail::tvec2< T, P > &a)
 
-template<typename T , precision P>
GLM_FUNC_QUALIFIER
-detail::tvec3< T, P > 
lerp (const detail::tvec3< T, P > &x, const detail::tvec3< T, P > &y, const detail::tvec3< T, P > &a)
 
-template<typename T , precision P>
GLM_FUNC_QUALIFIER
-detail::tvec4< T, P > 
lerp (const detail::tvec4< T, P > &x, const detail::tvec4< T, P > &y, const detail::tvec4< T, P > &a)
 
template<typename T , precision P>
detail::tdualquat< T, P > lerp (detail::tdualquat< T, P > const &x, detail::tdualquat< T, P > const &y, T const &a)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tquat< T, P > lerp (detail::tquat< T, P > const &x, detail::tquat< T, P > const &y, T const &a)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tvec4
-< bool, P > 
lessThan (detail::tquat< T, P > const &x, detail::tquat< T, P > const &y)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P >
-::bool_type 
lessThanEqual (vecType< T, P > const &x, vecType< T, P > const &y)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tvec4
-< bool, P > 
lessThanEqual (detail::tquat< T, P > const &x, detail::tquat< T, P > const &y)
 
template<typename T , precision P>
linearGradient (detail::tvec2< T, P > const &Point0, detail::tvec2< T, P > const &Point1, detail::tvec2< T, P > const &Position)
 
template<typename genType >
GLM_FUNC_DECL genType linearRand (genType const &Min, genType const &Max)
 
template<typename genType >
GLM_FUNC_DECL genType ln_ln_two ()
 
template<typename genType >
GLM_FUNC_DECL genType ln_ten ()
 
template<typename genType >
GLM_FUNC_DECL genType ln_two ()
 
template<typename genType >
genType log (genType const &x, genType const &base)
 
template<typename genType >
GLM_FUNC_DECL genType log (genType const &x)
 
template<typename T , precision P>
detail::tquat< T, P > log (detail::tquat< T, P > const &q)
 
template<typename genIUType >
genIUType log2 (genIUType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType log2 (genType const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tmat4x4
-< T, P > 
lookAt (detail::tvec3< T, P > const &eye, detail::tvec3< T, P > const &center, detail::tvec3< T, P > const &up)
 
template<typename genType >
genType lowerMultiple (genType const &Source, genType const &Multiple)
 
template<typename T , precision P>
luminosity (detail::tvec3< T, P > const &color)
 
template<typename T , precision P>
lxNorm (detail::tvec3< T, P > const &x, detail::tvec3< T, P > const &y, unsigned int Depth)
 
template<typename T , precision P>
lxNorm (detail::tvec3< T, P > const &x, unsigned int Depth)
 
template<typename T >
GLM_FUNC_DECL detail::tmat2x2
-< T, defaultp > 
make_mat2 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL detail::tmat2x2
-< T, defaultp > 
make_mat2x2 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL detail::tmat2x3
-< T, defaultp > 
make_mat2x3 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL detail::tmat2x4
-< T, defaultp > 
make_mat2x4 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL detail::tmat3x3
-< T, defaultp > 
make_mat3 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL detail::tmat3x2
-< T, defaultp > 
make_mat3x2 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL detail::tmat3x3
-< T, defaultp > 
make_mat3x3 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL detail::tmat3x4
-< T, defaultp > 
make_mat3x4 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL detail::tmat4x4
-< T, defaultp > 
make_mat4 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL detail::tmat4x2
-< T, defaultp > 
make_mat4x2 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL detail::tmat4x3
-< T, defaultp > 
make_mat4x3 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL detail::tmat4x4
-< T, defaultp > 
make_mat4x4 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL detail::tquat< T,
-defaultp > 
make_quat (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL detail::tvec2< T,
-defaultp > 
make_vec2 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL detail::tvec3< T,
-defaultp > 
make_vec3 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL detail::tvec4< T,
-defaultp > 
make_vec4 (T const *const ptr)
 
template<typename genIType >
GLM_FUNC_DECL genIType mask (genIType const &count)
 
template<typename T , precision P>
detail::tmat2x4< T, P > mat2x4_cast (detail::tdualquat< T, P > const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tmat3x3
-< T, P > 
mat3_cast (detail::tquat< T, P > const &x)
 
template<typename T , precision P>
detail::tmat3x4< T, P > mat3x4_cast (detail::tdualquat< T, P > const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tmat4x4
-< T, P > 
mat4_cast (detail::tquat< T, P > const &x)
 
template<typename T , precision P>
detail::tmat3x3< T, P > matrixCross3 (detail::tvec3< T, P > const &x)
 
template<typename T , precision P>
detail::tmat4x4< T, P > matrixCross4 (detail::tvec3< T, P > const &x)
 
template<typename T >
max (T const &x, T const &y, T const &z)
 
template<typename T , template< typename > class C>
C< T > max (C< T > const &x, typename C< T >::T const &y, typename C< T >::T const &z)
 
template<typename T , template< typename > class C>
C< T > max (C< T > const &x, C< T > const &y, C< T > const &z)
 
template<typename T >
max (T const &x, T const &y, T const &z, T const &w)
 
template<typename T , template< typename > class C>
C< T > max (C< T > const &x, typename C< T >::T const &y, typename C< T >::T const &z, typename C< T >::T const &w)
 
template<typename T , template< typename > class C>
C< T > max (C< T > const &x, C< T > const &y, C< T > const &z, C< T > const &w)
 
template<typename genType >
GLM_FUNC_DECL genType max (genType const &x, genType const &y)
 
template<typename T >
min (T const &x, T const &y, T const &z)
 
template<typename T , template< typename > class C>
C< T > min (C< T > const &x, typename C< T >::T const &y, typename C< T >::T const &z)
 
template<typename T , template< typename > class C>
C< T > min (C< T > const &x, C< T > const &y, C< T > const &z)
 
template<typename T >
min (T const &x, T const &y, T const &z, T const &w)
 
template<typename T , template< typename > class C>
C< T > min (C< T > const &x, typename C< T >::T const &y, typename C< T >::T const &z, typename C< T >::T const &w)
 
template<typename T , template< typename > class C>
C< T > min (C< T > const &x, C< T > const &y, C< T > const &z, C< T > const &w)
 
template<typename genType >
GLM_FUNC_DECL genType min (genType const &x, genType const &y)
 
template<typename genType >
GLM_FUNC_DECL genType mirrorRepeat (genType const &Texcoord)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tquat< T, P > mix (detail::tquat< T, P > const &x, detail::tquat< T, P > const &y, T const &a)
 
template<typename genTypeT , typename genTypeU >
GLM_FUNC_DECL genTypeT mix (genTypeT const &x, genTypeT const &y, genTypeU const &a)
 
-template<typename T , precision P>
mixedProduct (detail::tvec3< T, P > const &v1, detail::tvec3< T, P > const &v2, detail::tvec3< T, P > const &v3)
 
int mod (int x, int y)
 
uint mod (uint x, uint y)
 
template<typename genType >
GLM_FUNC_DECL genType mod (genType const &x, genType const &y)
 
template<typename genType >
GLM_FUNC_DECL genType mod (genType const &x, typename genType::value_type const &y)
 
template<typename genType >
GLM_FUNC_DECL genType modf (genType const &x, genType &i)
 
template<typename genType >
GLM_FUNC_DECL genType next_float (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType next_float (genType const &x, uint const &Distance)
 
uint nlz (uint x)
 
template<typename genType >
GLM_FUNC_DECL genType::value_type noise1 (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL detail::tvec2
-< typename genType::value_type,
-defaultp > 
noise2 (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL detail::tvec3
-< typename genType::value_type,
-defaultp > 
noise3 (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL detail::tvec4
-< typename genType::value_type,
-defaultp > 
noise4 (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType normalize (genType const &x)
 
template<typename T , precision P>
detail::tdualquat< T, P > normalize (detail::tdualquat< T, P > const &q)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tquat< T, P > normalize (detail::tquat< T, P > const &q)
 
template<typename genType >
genType::value_type normalizeDot (genType const &x, genType const &y)
 
template<precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< bool, P > not_ (vecType< bool, P > const &v)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P >
-::bool_type 
notEqual (vecType< T, P > const &x, vecType< T, P > const &y)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tvec4
-< bool, P > 
notEqual (detail::tquat< T, P > const &x, detail::tquat< T, P > const &y)
 
template<typename genType >
GLM_FUNC_DECL genType one ()
 
template<typename genType >
GLM_FUNC_DECL genType one_over_pi ()
 
template<typename genType >
GLM_FUNC_DECL genType one_over_root_two ()
 
template<typename T >
detail::tmat2x2< T, defaultp > orientate2 (T const &angle)
 
template<typename T >
detail::tmat3x3< T, defaultp > orientate3 (T const &angle)
 
template<typename T , precision P>
detail::tmat3x3< T, P > orientate3 (detail::tvec3< T, P > const &angles)
 
template<typename T , precision P>
detail::tmat4x4< T, P > orientate4 (detail::tvec3< T, P > const &angles)
 
template<typename T , precision P>
detail::tmat4x4< T, P > orientation (detail::tvec3< T, P > const &Normal, detail::tvec3< T, P > const &Up)
 
template<typename T , precision P>
GLM_FUNC_QUALIFIER T orientedAngle (detail::tvec2< T, P > const &x, detail::tvec2< T, P > const &y)
 
template<typename T , precision P>
GLM_FUNC_QUALIFIER T orientedAngle (detail::tvec3< T, P > const &x, detail::tvec3< T, P > const &y, detail::tvec3< T, P > const &ref)
 
template<typename T >
GLM_FUNC_DECL detail::tmat4x4
-< T, defaultp > 
ortho (T const &left, T const &right, T const &bottom, T const &top, T const &zNear, T const &zFar)
 
template<typename T >
GLM_FUNC_DECL detail::tmat4x4
-< T, defaultp > 
ortho (T const &left, T const &right, T const &bottom, T const &top)
 
template<typename T , precision P>
detail::tmat3x3< T, P > orthonormalize (const detail::tmat3x3< T, P > &m)
 
template<typename T , precision P>
detail::tvec3< T, P > orthonormalize (const detail::tvec3< T, P > &x, const detail::tvec3< T, P > &y)
 
GLM_FUNC_DECL double packDouble2x32 (uvec2 const &v)
 
GLM_FUNC_DECL uint32 packF2x11_1x10 (vec3 const &v)
 
GLM_FUNC_DECL uint16 packHalf1x16 (float const &v)
 
GLM_FUNC_DECL uint packHalf2x16 (vec2 const &v)
 
GLM_FUNC_DECL uint64 packHalf4x16 (vec4 const &v)
 
GLM_FUNC_DECL uint32 packI3x10_1x2 (ivec4 const &v)
 
GLM_FUNC_DECL uint16 packSnorm1x16 (float const &v)
 
GLM_FUNC_DECL uint8 packSnorm1x8 (float const &s)
 
GLM_FUNC_DECL uint packSnorm2x16 (vec2 const &v)
 
GLM_FUNC_DECL uint16 packSnorm2x8 (vec2 const &v)
 
GLM_FUNC_DECL uint32 packSnorm3x10_1x2 (vec4 const &v)
 
GLM_FUNC_DECL uint64 packSnorm4x16 (vec4 const &v)
 
GLM_FUNC_DECL uint packSnorm4x8 (vec4 const &v)
 
GLM_FUNC_DECL uint32 packU3x10_1x2 (uvec4 const &v)
 
GLM_FUNC_DECL uint16 packUnorm1x16 (float const &v)
 
GLM_FUNC_DECL uint8 packUnorm1x8 (float const &v)
 
GLM_FUNC_DECL uint packUnorm2x16 (vec2 const &v)
 
GLM_FUNC_DECL uint16 packUnorm2x8 (vec2 const &v)
 
GLM_FUNC_DECL uint32 packUnorm3x10_1x2 (vec4 const &v)
 
GLM_FUNC_DECL uint64 packUnorm4x16 (vec4 const &v)
 
GLM_FUNC_DECL uint packUnorm4x8 (vec4 const &v)
 
template<typename T , precision P, template< typename, precision > class vecType>
perlin (vecType< T, P > const &p)
 
template<typename T , precision P, template< typename, precision > class vecType>
perlin (vecType< T, P > const &p, vecType< T, P > const &rep)
 
template<typename vecType >
vecType perp (vecType const &x, vecType const &Normal)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tmat4x4
-< T, P > 
perspective (T const &fovy, T const &aspect, T const &near, T const &far)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tmat4x4
-< T, P > 
perspectiveFov (T const &fov, T const &width, T const &height, T const &near, T const &far)
 
template<typename genType >
GLM_FUNC_DECL genType pi ()
 
template<typename T , precision P, typename U >
GLM_FUNC_DECL detail::tmat4x4
-< T, P > 
pickMatrix (detail::tvec2< T, P > const &center, detail::tvec2< T, P > const &delta, detail::tvec4< U, P > const &viewport)
 
template<typename T , precision P>
GLM_FUNC_DECL T pitch (detail::tquat< T, P > const &x)
 
template<typename T , precision P>
detail::tvec3< T, P > polar (detail::tvec3< T, P > const &euclidean)
 
int pow (int x, int y)
 
template<typename genType >
GLM_FUNC_DECL genType pow (genType const &base, genType const &exponent)
 
uint pow (uint x, uint y)
 
template<typename T , precision P>
detail::tquat< T, P > pow (detail::tquat< T, P > const &x, T const &y)
 
template<typename genType >
GLM_FUNC_DECL genType powerOfTwoAbove (genType const &value)
 
template<typename genType >
GLM_FUNC_DECL genType powerOfTwoBelow (genType const &value)
 
template<typename genType >
GLM_FUNC_DECL genType powerOfTwoNearest (genType const &value)
 
template<typename genType >
GLM_FUNC_DECL genType prev_float (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType prev_float (genType const &x, uint const &Distance)
 
template<typename vecType >
vecType proj (vecType const &x, vecType const &Normal)
 
template<typename T , precision P>
detail::tmat3x3< T, P > proj2D (const detail::tmat3x3< T, P > &m, const detail::tvec3< T, P > &normal)
 
template<typename T , precision P>
detail::tmat4x4< T, P > proj3D (const detail::tmat4x4< T, P > &m, const detail::tvec3< T, P > &normal)
 
template<typename T , typename U , precision P>
GLM_FUNC_DECL detail::tvec3< T, P > project (detail::tvec3< T, P > const &obj, detail::tmat4x4< T, P > const &model, detail::tmat4x4< T, P > const &proj, detail::tvec4< U, P > const &viewport)
 
template<typename genType >
GLM_FUNC_DECL genType quarter_pi ()
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tquat< T, P > quat_cast (detail::tmat3x3< T, P > const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tquat< T, P > quat_cast (detail::tmat4x4< T, P > const &x)
 
template<typename T , precision P>
radialGradient (detail::tvec2< T, P > const &Center, T const &Radius, detail::tvec2< T, P > const &Focal, detail::tvec2< T, P > const &Position)
 
template<typename genType >
GLM_FUNC_DECL genType radians (genType const &degrees)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL T length (vecType< T, P > const &x)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > normalize (vecType< T, P > const &x)
 
template<typename genType >
GLM_FUNC_DECL genType reflect (genType const &I, genType const &N)
GLM_FUNC_DECL genType reflect (genType const &I, genType const &N)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > refract (vecType< T, P > const &I, vecType< T, P > const &N, T const &eta)
 
template<typename genType >
GLM_FUNC_DECL genType repeat (genType const &Texcoord)
 
template<typename T , precision P>
detail::tvec3< T, P > rgb2YCoCg (detail::tvec3< T, P > const &rgbColor)
 
template<typename T , precision P>
detail::tvec3< T, P > rgb2YCoCgR (detail::tvec3< T, P > const &rgbColor)
 
template<typename T , precision P>
detail::tvec3< T, P > rgbColor (detail::tvec3< T, P > const &hsvValue)
 
template<typename T , precision P>
bool rightHanded (detail::tvec3< T, P > const &tangent, detail::tvec3< T, P > const &binormal, detail::tvec3< T, P > const &normal)
 
template<typename T , precision P>
GLM_FUNC_DECL T roll (detail::tquat< T, P > const &x)
 
template<typename genType >
GLM_FUNC_DECL genType root_five ()
 
template<typename genType >
GLM_FUNC_DECL genType root_half_pi ()
 
template<typename genType >
GLM_FUNC_DECL genType root_ln_four ()
 
template<typename genType >
GLM_FUNC_DECL genType root_pi ()
 
template<typename genType >
GLM_FUNC_DECL genType root_three ()
 
template<typename genType >
GLM_FUNC_DECL genType root_two ()
 
template<typename genType >
GLM_FUNC_DECL genType root_two_pi ()
 
template<typename T , precision P>
detail::tvec2< T, P > rotate (detail::tvec2< T, P > const &v, T const &angle)
 
template<typename T , precision P>
detail::tvec3< T, P > rotate (detail::tvec3< T, P > const &v, T const &angle, detail::tvec3< T, P > const &normal)
 
template<typename T , precision P>
detail::tmat4x4< T, P > rotate (T angle, detail::tvec3< T, P > const &v)
 
template<typename T , precision P>
detail::tvec4< T, P > rotate (detail::tvec4< T, P > const &v, T const &angle, detail::tvec3< T, P > const &normal)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tmat4x4
-< T, P > 
rotate (detail::tmat4x4< T, P > const &m, T const &angle, detail::tvec3< T, P > const &axis)
 
template<typename T , precision P>
detail::tvec3< T, P > rotate (detail::tquat< T, P > const &q, detail::tvec3< T, P > const &v)
 
template<typename T , precision P>
detail::tvec4< T, P > rotate (detail::tquat< T, P > const &q, detail::tvec4< T, P > const &v)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tquat< T, P > rotate (detail::tquat< T, P > const &q, T const &angle, detail::tvec3< T, P > const &axis)
 
template<typename T , precision P>
detail::tmat4x4< T, P > rotateNormalizedAxis (detail::tmat4x4< T, P > const &m, T const &angle, detail::tvec3< T, P > const &axis)
 
template<typename T , precision P>
detail::tquat< T, P > rotateNormalizedAxis (detail::tquat< T, P > const &q, T const &angle, detail::tvec3< T, P > const &axis)
 
template<typename T , precision P>
detail::tvec3< T, P > rotateX (detail::tvec3< T, P > const &v, T const &angle)
 
template<typename T , precision P>
detail::tvec4< T, P > rotateX (detail::tvec4< T, P > const &v, T const &angle)
 
template<typename T , precision P>
detail::tvec3< T, P > rotateY (detail::tvec3< T, P > const &v, T const &angle)
 
template<typename T , precision P>
detail::tvec4< T, P > rotateY (detail::tvec4< T, P > const &v, T const &angle)
 
template<typename T , precision P>
detail::tvec3< T, P > rotateZ (detail::tvec3< T, P > const &v, T const &angle)
 
template<typename T , precision P>
detail::tvec4< T, P > rotateZ (detail::tvec4< T, P > const &v, T const &angle)
 
template<typename T , precision P>
detail::tquat< T, P > rotation (detail::tvec3< T, P > const &orig, detail::tvec3< T, P > const &dest)
 
template<typename genType >
GLM_FUNC_DECL genType round (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType roundEven (genType const &x)
 
template<typename genType >
genType::row_type row (genType const &m, length_t const &index)
 
template<typename genType >
genType row (genType const &m, length_t const &index, typename genType::row_type const &x)
 
template<typename T , precision P>
detail::tmat2x2< T, P > rowMajor2 (detail::tvec2< T, P > const &v1, detail::tvec2< T, P > const &v2)
 
template<typename T , precision P>
detail::tmat2x2< T, P > rowMajor2 (detail::tmat2x2< T, P > const &m)
 
template<typename T , precision P>
detail::tmat3x3< T, P > rowMajor3 (detail::tvec3< T, P > const &v1, detail::tvec3< T, P > const &v2, detail::tvec3< T, P > const &v3)
 
template<typename T , precision P>
detail::tmat3x3< T, P > rowMajor3 (detail::tmat3x3< T, P > const &m)
 
template<typename T , precision P>
detail::tmat4x4< T, P > rowMajor4 (detail::tvec4< T, P > const &v1, detail::tvec4< T, P > const &v2, detail::tvec4< T, P > const &v3, detail::tvec4< T, P > const &v4)
 
template<typename T , precision P>
detail::tmat4x4< T, P > rowMajor4 (detail::tmat4x4< T, P > const &m)
 
-template<typename T , precision P>
GLM_FUNC_QUALIFIER T saturate (T x)
 
-template<typename T , precision P>
GLM_FUNC_QUALIFIER
-detail::tvec2< T, P > 
saturate (const detail::tvec2< T, P > &x)
 
-template<typename T , precision P>
GLM_FUNC_QUALIFIER
-detail::tvec3< T, P > 
saturate (const detail::tvec3< T, P > &x)
 
-template<typename T , precision P>
GLM_FUNC_QUALIFIER
-detail::tvec4< T, P > 
saturate (const detail::tvec4< T, P > &x)
 
template<typename T , precision P>
detail::tmat4x4< T, P > saturation (T const s)
 
template<typename T , precision P>
detail::tvec3< T, P > saturation (T const s, detail::tvec3< T, P > const &color)
 
template<typename T , precision P>
detail::tvec4< T, P > saturation (T const s, detail::tvec4< T, P > const &color)
 
template<typename T , precision P>
detail::tmat4x4< T, P > scale (detail::tvec3< T, P > const &v)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tmat4x4
-< T, P > 
scale (detail::tmat4x4< T, P > const &m, detail::tvec3< T, P > const &v)
 
template<typename valType , precision P>
detail::tmat4x4< valType, P > scaleBias (valType scale, valType bias)
 
template<typename valType , precision P>
detail::tmat4x4< valType, P > scaleBias (detail::tmat4x4< valType, P > const &m, valType scale, valType bias)
 
template<typename genType >
GLM_FUNC_DECL genType sec (genType const &angle)
 
template<typename genType >
GLM_FUNC_DECL genType sech (genType const &angle)
 
template<typename T , precision P>
detail::tmat3x3< T, P > shearX2D (detail::tmat3x3< T, P > const &m, T y)
 
template<typename T , precision P>
detail::tmat4x4< T, P > shearX3D (const detail::tmat4x4< T, P > &m, T y, T z)
 
template<typename T , precision P>
detail::tmat3x3< T, P > shearY2D (detail::tmat3x3< T, P > const &m, T x)
 
template<typename T , precision P>
detail::tmat4x4< T, P > shearY3D (const detail::tmat4x4< T, P > &m, T x, T z)
 
template<typename T , precision P>
detail::tmat4x4< T, P > shearZ3D (const detail::tmat4x4< T, P > &m, T x, T y)
 
template<typename T , precision P>
detail::tquat< T, P > shortMix (detail::tquat< T, P > const &x, detail::tquat< T, P > const &y, T const &a)
 
template<typename genType >
GLM_FUNC_DECL genType sign (genType const &x)
 
template<typename T , precision P, template< typename, precision > class vecType>
simplex (vecType< T, P > const &p)
 
template<typename genType >
GLM_FUNC_DECL genType sin (genType const &angle)
 
template<typename genType >
GLM_FUNC_DECL genType sinh (genType const &angle)
 
template<typename T , precision P>
GLM_FUNC_QUALIFIER T slerp (detail::tquat< T, P > const &x, detail::tquat< T, P > const &y, T const &a)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tquat< T, P > slerp (detail::tquat< T, P > const &x, detail::tquat< T, P > const &y, T const &a)
 
template<typename genType >
GLM_FUNC_DECL genType smoothstep (genType const &edge0, genType const &edge1, genType const &x)
 
template<typename T >
GLM_FUNC_DECL detail::tvec3< T,
-defaultp > 
sphericalRand (T const &Radius)
 
int sqrt (int x)
 
uint sqrt (uint x)
 
template<typename genType >
GLM_FUNC_DECL genType sqrt (genType const &x)
 
template<typename T , precision P>
detail::tquat< T, P > squad (detail::tquat< T, P > const &q1, detail::tquat< T, P > const &q2, detail::tquat< T, P > const &s1, detail::tquat< T, P > const &s2, T const &h)
 
template<typename genType >
GLM_FUNC_DECL genType step (genType const &edge, genType const &x)
 
template<template< typename, precision > class vecType, typename T , precision P>
GLM_FUNC_DECL vecType< T, P > step (T const &edge, vecType< T, P > const &x)
 
template<typename genType >
GLM_FUNC_DECL genType tan (genType const &angle)
 
template<typename genType >
GLM_FUNC_DECL genType tanh (genType const &angle)
 
template<typename genType >
GLM_FUNC_DECL genType third ()
 
template<typename genType >
std::string to_string (genType const &x)
 
template<typename T , precision P>
detail::tmat3x3< T, P > toMat3 (detail::tquat< T, P > const &x)
 
template<typename T , precision P>
detail::tmat4x4< T, P > toMat4 (detail::tquat< T, P > const &x)
 
template<typename T , precision P>
detail::tquat< T, P > toQuat (detail::tmat3x3< T, P > const &x)
 
template<typename T , precision P>
detail::tquat< T, P > toQuat (detail::tmat4x4< T, P > const &x)
 
template<typename T , precision P>
detail::tmat4x4< T, P > translate (detail::tvec3< T, P > const &v)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tmat4x4
-< T, P > 
translate (detail::tmat4x4< T, P > const &m, detail::tvec3< T, P > const &v)
 
template<typename T , precision P>
detail::tvec3< T, P > triangleNormal (detail::tvec3< T, P > const &p1, detail::tvec3< T, P > const &p2, detail::tvec3< T, P > const &p3)
 
template<typename genType >
GLM_FUNC_DECL genType trunc (genType const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tmat4x4
-< T, P > 
tweakedInfinitePerspective (T fovy, T aspect, T near)
 
template<typename genType >
GLM_FUNC_DECL genType two_over_pi ()
 
template<typename genType >
GLM_FUNC_DECL genType two_over_root_pi ()
 
template<typename genType >
GLM_FUNC_DECL genType two_thirds ()
 
template<typename genUType >
GLM_FUNC_DECL genUType uaddCarry (genUType const &x, genUType const &y, genUType &carry)
 
-GLM_DEPRECATED dword uint10_10_10_2_cast (glm::vec4 const &v)
 
GLM_FUNC_DECL float uintBitsToFloat (uint const &v)
 
template<template< typename, precision > class vecType, precision P>
GLM_FUNC_DECL vecType< float, P > uintBitsToFloat (vecType< uint, P > const &v)
 
template<typename genUType >
GLM_FUNC_DECL void umulExtended (genUType const &x, genUType const &y, genUType &msb, genUType &lsb)
 
GLM_FUNC_DECL uvec2 unpackDouble2x32 (double const &v)
 
GLM_FUNC_DECL vec3 unpackF2x11_1x10 (uint32 const &p)
 
GLM_FUNC_DECL float unpackHalf1x16 (uint16 const &v)
 
GLM_FUNC_DECL vec2 unpackHalf2x16 (uint const &v)
 
GLM_FUNC_DECL vec4 unpackHalf4x16 (uint64 const &p)
 
GLM_FUNC_DECL ivec4 unpackI3x10_1x2 (uint32 const &p)
 
GLM_FUNC_DECL float unpackSnorm1x16 (uint16 const &p)
 
GLM_FUNC_DECL float unpackSnorm1x8 (uint8 const &p)
 
GLM_FUNC_DECL vec2 unpackSnorm2x16 (uint const &p)
 
GLM_FUNC_DECL vec2 unpackSnorm2x8 (uint16 const &p)
 
GLM_FUNC_DECL vec4 unpackSnorm3x10_1x2 (uint32 const &p)
 
GLM_FUNC_DECL vec4 unpackSnorm4x16 (uint64 const &p)
 
GLM_FUNC_DECL vec4 unpackSnorm4x8 (uint const &p)
 
GLM_FUNC_DECL uvec4 unpackU3x10_1x2 (uint32 const &p)
 
GLM_FUNC_DECL float unpackUnorm1x16 (uint16 const &p)
 
GLM_FUNC_DECL float unpackUnorm1x8 (uint8 const &p)
 
GLM_FUNC_DECL vec2 unpackUnorm2x16 (uint const &p)
 
GLM_FUNC_DECL vec2 unpackUnorm2x8 (uint16 const &p)
 
GLM_FUNC_DECL vec4 unpackUnorm3x10_1x2 (uint32 const &p)
 
GLM_FUNC_DECL vec4 unpackUnorm4x16 (uint64 const &p)
 
GLM_FUNC_DECL vec4 unpackUnorm4x8 (uint const &p)
 
template<typename T , typename U , precision P>
GLM_FUNC_DECL detail::tvec3< T, P > unProject (detail::tvec3< T, P > const &win, detail::tmat4x4< T, P > const &model, detail::tmat4x4< T, P > const &proj, detail::tvec4< U, P > const &viewport)
 
template<typename genUType >
GLM_FUNC_DECL genUType usubBorrow (genUType const &x, genUType const &y, genUType &borrow)
 
template<typename genType >
GLM_FUNC_DECL
-genType::value_type const * 
value_ptr (genType const &vec)
 
template<typename T , precision P>
GLM_FUNC_DECL T yaw (detail::tquat< T, P > const &x)
 
template<typename T >
detail::tmat4x4< T, defaultp > yawPitchRoll (T const &yaw, T const &pitch, T const &roll)
 
template<typename T , precision P>
detail::tvec3< T, P > YCoCg2rgb (detail::tvec3< T, P > const &YCoCgColor)
 
template<typename T , precision P>
detail::tvec3< T, P > YCoCgR2rgb (detail::tvec3< T, P > const &YCoCgColor)
 
template<typename genType >
GLM_FUNC_DECL genType zero ()
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > refract (vecType< T, P > const &I, vecType< T, P > const &N, T eta)
 

Detailed Description

-

OpenGL Mathematics (glm.g-truc.net)

-

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

Typedef Documentation

- +

These operate on vectors as vectors, not component-wise.

+

Function Documentation

+
- + + + + + + + + + + + + + + +
typedef highp_bvec1 bvec1GLM_FUNC_DECL tvec3<T, P> glm::cross (tvec3< T, P > const & x,
tvec3< T, P > const & y 
)
-

1 component vector of boolean.

-
See Also
GLM_GTX_vec1 extension.
- -

Definition at line 122 of file vec1.hpp.

+

Returns the cross product of x and y.

+
Template Parameters
+ + +
valTypeFloating-point scalar types.
+
+
+
See also
GLSL cross man page
+
+GLSL 4.20.8 specification, section 8.5 Geometric Functions
- +
- + + + + + + + + + + + + + + +
typedef highp_dquat dquatGLM_FUNC_DECL T glm::distance (vecType< T, P > const & p0,
vecType< T, P > const & p1 
)
-

Quaternion of default double-precision floating-point numbers.

-
See Also
GLM_GTC_quaternion
- -

Definition at line 118 of file fwd.hpp.

+

Returns the distance betwwen p0 and p1, i.e., length(p0 - p1).

+
Template Parameters
+ + +
genTypeFloating-point vector types.
+
+
+
See also
GLSL distance man page
+
+GLSL 4.20.8 specification, section 8.5 Geometric Functions
- +
- + + + + + + + + + + + + + + +
typedef highp_bvec1_t highp_bvec1GLM_FUNC_DECL T glm::dot (vecType< T, P > const & x,
vecType< T, P > const & y 
)
-

1 component vector of high precision boolean.

-

There is no guarantee on the actual precision.

-
See Also
GLM_GTX_vec1 extension.
- -

Definition at line 98 of file vec1.hpp.

+

Returns the dot product of x and y, i.e., result = x * y.

+
Template Parameters
+ + +
genTypeFloating-point vector types.
+
+
+
See also
GLSL dot man page
+
+GLSL 4.20.8 specification, section 8.5 Geometric Functions
- +
- + + + + + + + + + + + + + + + + + + + + +
typedef detail::tquat<double, highp> highp_dquatGLM_FUNC_DECL genType glm::faceforward (genType const & N,
genType const & I,
genType const & Nref 
)
-

Quaternion of high double-precision floating-point numbers.

-
See Also
GLM_GTC_quaternion
- -

Definition at line 106 of file fwd.hpp.

+

If dot(Nref, I) < 0.0, return N, otherwise, return -N.

+
Template Parameters
+ + +
genTypeFloating-point vector types.
+
+
+
See also
GLSL faceforward man page
+
+GLSL 4.20.8 specification, section 8.5 Geometric Functions
- +
- + + + + +
typedef highp_quat highp_fquatGLM_FUNC_DECL T glm::length (vecType< T, P > const & x)
-

Quaternion of high single-precision floating-point numbers.

-
See Also
GLM_GTC_quaternion
- -

Definition at line 85 of file fwd.hpp.

+

Returns the length of x, i.e., sqrt(x * x).

+
Template Parameters
+ + +
genTypeFloating-point vector types.
+
+
+
See also
GLSL length man page
+
+GLSL 4.20.8 specification, section 8.5 Geometric Functions
- +
- + + + + +
typedef highp_ivec1_t highp_ivec1GLM_FUNC_DECL vecType<T, P> glm::normalize (vecType< T, P > const & x)
-

1 component vector of high precision signed integer numbers.

-

There is no guarantee on the actual precision.

-
See Also
GLM_GTX_vec1 extension.
- -

Definition at line 68 of file vec1.hpp.

+

Returns a vector in the same direction as x but with length of 1.

+

According to issue 10 GLSL 1.10 specification, if length(x) == 0 then result is undefined and generate an error.

+
See also
GLSL normalize man page
+
+GLSL 4.20.8 specification, section 8.5 Geometric Functions
- +
- + + + + + + + + + + + + + + +
typedef detail::tquat<float, highp> highp_quatGLM_FUNC_DECL genType glm::reflect (genType const & I,
genType const & N 
)
-

Quaternion of high single-precision floating-point numbers.

-
See Also
GLM_GTC_quaternion
- -

Definition at line 59 of file fwd.hpp.

+

For the incident vector I and surface orientation N, returns the reflection direction : result = I - 2.0 * dot(N, I) * N.

+
Template Parameters
+ + +
genTypeFloating-point vector types.
+
+
+
See also
GLSL reflect man page
+
+GLSL 4.20.8 specification, section 8.5 Geometric Functions
- +
- + + + + -
typedef highp_uvec1_t highp_uvec1GLM_FUNC_DECL vecType<T, P> glm::refract (vecType< T, P > const & I,
-
- -

1 component vector of high precision unsigned integer numbers.

-

There is no guarantee on the actual precision.

-
See Also
GLM_GTX_vec1 extension.
- -

Definition at line 83 of file vec1.hpp.

- -
-
- -
-
- - + + + + -
typedef highp_ivec1 ivec1vecType< T, P > const & N,
-
- -

1 component vector of signed integer numbers.

-
See Also
GLM_GTX_vec1 extension.
- -

Definition at line 146 of file vec1.hpp.

- -
-
- -
-
- - + + + + -
typedef lowp_bvec1_t lowp_bvec1eta 
-
- -

1 component vector of low precision boolean.

-

There is no guarantee on the actual precision.

-
See Also
GLM_GTX_vec1 extension.
- -

Definition at line 108 of file vec1.hpp.

- -
-
- -
-
- - + + +
typedef detail::tquat<double, lowp> lowp_dquat)
-

Quaternion of low double-precision floating-point numbers.

-
See Also
GLM_GTC_quaternion
- -

Definition at line 96 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef lowp_quat lowp_fquat
-
- -

Quaternion of low single-precision floating-point numbers.

-
See Also
GLM_GTC_quaternion
- -

Definition at line 75 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef lowp_ivec1_t lowp_ivec1
-
- -

1 component vector of low precision signed integer numbers.

-

There is no guarantee on the actual precision.

-
See Also
GLM_GTX_vec1 extension.
- -

Definition at line 78 of file vec1.hpp.

- -
-
- -
-
- - - - -
typedef detail::tquat<float, lowp> lowp_quat
-
- -

Quaternion of low single-precision floating-point numbers.

-
See Also
GLM_GTC_quaternion
- -

Definition at line 49 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef lowp_uvec1_t lowp_uvec1
-
- -

1 component vector of low precision unsigned integer numbers.

-

There is no guarantee on the actual precision.

-
See Also
GLM_GTX_vec1 extension.
- -

Definition at line 93 of file vec1.hpp.

- -
-
- -
-
- - - - -
typedef mediump_bvec1_t mediump_bvec1
-
- -

1 component vector of medium precision boolean.

-

There is no guarantee on the actual precision.

-
See Also
GLM_GTX_vec1 extension.
- -

Definition at line 103 of file vec1.hpp.

- -
-
- -
-
- - - - -
typedef detail::tquat<double, mediump> mediump_dquat
-
- -

Quaternion of medium double-precision floating-point numbers.

-
See Also
GLM_GTC_quaternion
- -

Definition at line 101 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mediump_quat mediump_fquat
-
- -

Quaternion of medium single-precision floating-point numbers.

-
See Also
GLM_GTC_quaternion
- -

Definition at line 80 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mediump_ivec1_t mediump_ivec1
-
- -

1 component vector of medium precision signed integer numbers.

-

There is no guarantee on the actual precision.

-
See Also
GLM_GTX_vec1 extension.
- -

Definition at line 73 of file vec1.hpp.

- -
-
- -
-
- - - - -
typedef detail::tquat<float, mediump> mediump_quat
-
- -

Quaternion of medium single-precision floating-point numbers.

-
See Also
GLM_GTC_quaternion
- -

Definition at line 54 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mediump_uvec1_t mediump_uvec1
-
- -

1 component vector of medium precision unsigned integer numbers.

-

There is no guarantee on the actual precision.

-
See Also
GLM_GTX_vec1 extension.
- -

Definition at line 88 of file vec1.hpp.

- -
-
- -
-
- - - - -
typedef highp_uvec1 uvec1
-
- -

1 component vector of unsigned integer numbers.

-
See Also
GLM_GTX_vec1 extension.
- -

Definition at line 158 of file vec1.hpp.

- -
-
- -
-
- - - - -
typedef highp_vec1 vec1
-
- -

1 component vector of floating-point numbers.

-
See Also
GLM_GTX_vec1 extension.
- -

Definition at line 134 of file vec1.hpp.

+

For the incident vector I and surface normal N, and the ratio of indices of refraction eta, return the refraction vector.

+
Template Parameters
+ + +
genTypeFloating-point vector types.
+
+
+
See also
GLSL refract man page
+
+GLSL 4.20.8 specification, section 8.5 Geometric Functions
@@ -4069,7 +361,7 @@ genType::value_type const *  diff --git a/doc/api/a00152.html b/doc/api/a00152.html new file mode 100644 index 00000000..3ae087e6 --- /dev/null +++ b/doc/api/a00152.html @@ -0,0 +1,577 @@ + + + + + + +0.9.6: Integer functions + + + + + + +
+
+ + + + + + + +
+
0.9.6 +
+
+
+ + + +
+
+ +
+
Integer functions
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename genType >
GLM_FUNC_DECL int bitCount (genType v)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< int, P > bitCount (vecType< T, P > const &v)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > bitfieldExtract (vecType< T, P > const &Value, int Offset, int Bits)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > bitfieldInsert (vecType< T, P > const &Base, vecType< T, P > const &Insert, int Offset, int Bits)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > bitfieldReverse (vecType< T, P > const &v)
 
template<typename genIUType >
GLM_FUNC_DECL int findLSB (genIUType x)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< int, P > findLSB (vecType< T, P > const &v)
 
template<typename genIUType >
GLM_FUNC_DECL int findMSB (genIUType x)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< int, P > findMSB (vecType< T, P > const &v)
 
template<precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL void imulExtended (vecType< int, P > const &x, vecType< int, P > const &y, vecType< int, P > &msb, vecType< int, P > &lsb)
 
template<precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< uint, P > uaddCarry (vecType< uint, P > const &x, vecType< uint, P > const &y, vecType< uint, P > &carry)
 
template<precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL void umulExtended (vecType< uint, P > const &x, vecType< uint, P > const &y, vecType< uint, P > &msb, vecType< uint, P > &lsb)
 
template<precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< uint, P > usubBorrow (vecType< uint, P > const &x, vecType< uint, P > const &y, vecType< uint, P > &borrow)
 
+

Detailed Description

+

These all operate component-wise.

+

The description is per component. The notation [a, b] means the set of bits from bit-number a through bit-number b, inclusive. The lowest-order bit is bit 0.

+

Function Documentation

+ +
+
+ + + + + + + + +
GLM_FUNC_DECL int glm::bitCount (genType v)
+
+ +

Returns the number of bits set to 1 in the binary representation of value.

+
Template Parameters
+ + +
TSigned or unsigned integer scalar or vector types.
+
+
+
See also
GLSL bitCount man page
+
+GLSL 4.20.8 specification, section 8.8 Integer Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vecType<int, P> glm::bitCount (vecType< T, P > const & v)
+
+ +

Returns the number of bits set to 1 in the binary representation of value.

+
Template Parameters
+ + +
TSigned or unsigned integer scalar or vector types.
+
+
+
See also
GLSL bitCount man page
+
+GLSL 4.20.8 specification, section 8.8 Integer Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vecType<T, P> glm::bitfieldExtract (vecType< T, P > const & Value,
int Offset,
int Bits 
)
+
+ +

Extracts bits [offset, offset + bits - 1] from value, returning them in the least significant bits of the result.

+

For unsigned data types, the most significant bits of the result will be set to zero. For signed data types, the most significant bits will be set to the value of bit offset + base - 1.

+

If bits is zero, the result will be zero. The result will be undefined if offset or bits is negative, or if the sum of offset and bits is greater than the number of bits used to store the operand.

+
Template Parameters
+ + +
TSigned or unsigned integer scalar or vector types.
+
+
+
See also
GLSL bitfieldExtract man page
+
+GLSL 4.20.8 specification, section 8.8 Integer Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vecType<T, P> glm::bitfieldInsert (vecType< T, P > const & Base,
vecType< T, P > const & Insert,
int Offset,
int Bits 
)
+
+ +

Returns the insertion the bits least-significant bits of insert into base.

+

The result will have bits [offset, offset + bits - 1] taken from bits [0, bits - 1] of insert, and all other bits taken directly from the corresponding bits of base. If bits is zero, the result will simply be base. The result will be undefined if offset or bits is negative, or if the sum of offset and bits is greater than the number of bits used to store the operand.

+
Template Parameters
+ + +
TSigned or unsigned integer scalar or vector types.
+
+
+
See also
GLSL bitfieldInsert man page
+
+GLSL 4.20.8 specification, section 8.8 Integer Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vecType<T, P> glm::bitfieldReverse (vecType< T, P > const & v)
+
+ +

Returns the reversal of the bits of value.

+

The bit numbered n of the result will be taken from bit (bits - 1) - n of value, where bits is the total number of bits used to represent value.

+
Template Parameters
+ + +
TSigned or unsigned integer scalar or vector types.
+
+
+
See also
GLSL bitfieldReverse man page
+
+GLSL 4.20.8 specification, section 8.8 Integer Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL int glm::findLSB (genIUType x)
+
+ +

Returns the bit number of the least significant bit set to 1 in the binary representation of value.

+

If value is zero, -1 will be returned.

+
Template Parameters
+ + +
TSigned or unsigned integer scalar types.
+
+
+
See also
GLSL findLSB man page
+
+GLSL 4.20.8 specification, section 8.8 Integer Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vecType<int, P> glm::findLSB (vecType< T, P > const & v)
+
+ +

Returns the bit number of the least significant bit set to 1 in the binary representation of value.

+

If value is zero, -1 will be returned.

+
Template Parameters
+ + +
TSigned or unsigned integer scalar types.
+
+
+
See also
GLSL findLSB man page
+
+GLSL 4.20.8 specification, section 8.8 Integer Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL int glm::findMSB (genIUType x)
+
+ +

Returns the bit number of the most significant bit in the binary representation of value.

+

For positive integers, the result will be the bit number of the most significant bit set to 1. For negative integers, the result will be the bit number of the most significant bit set to 0. For a value of zero or negative one, -1 will be returned.

+
Template Parameters
+ + +
TSigned or unsigned integer scalar types.
+
+
+
See also
GLSL findMSB man page
+
+GLSL 4.20.8 specification, section 8.8 Integer Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vecType<int, P> glm::findMSB (vecType< T, P > const & v)
+
+ +

Returns the bit number of the most significant bit in the binary representation of value.

+

For positive integers, the result will be the bit number of the most significant bit set to 1. For negative integers, the result will be the bit number of the most significant bit set to 0. For a value of zero or negative one, -1 will be returned.

+
Template Parameters
+ + +
TSigned or unsigned integer scalar types.
+
+
+
See also
GLSL findMSB man page
+
+GLSL 4.20.8 specification, section 8.8 Integer Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL void glm::imulExtended (vecType< int, P > const & x,
vecType< int, P > const & y,
vecType< int, P > & msb,
vecType< int, P > & lsb 
)
+
+ +

Multiplies 32-bit integers x and y, producing a 64-bit result.

+

The 32 least-significant bits are returned in lsb. The 32 most-significant bits are returned in msb.

+
Template Parameters
+ + +
genITypeSigned integer scalar or vector types.
+
+
+
See also
GLSL imulExtended man page
+
+GLSL 4.20.8 specification, section 8.8 Integer Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vecType<uint, P> glm::uaddCarry (vecType< uint, P > const & x,
vecType< uint, P > const & y,
vecType< uint, P > & carry 
)
+
+ +

Adds 32-bit unsigned integer x and y, returning the sum modulo pow(2, 32).

+

The value carry is set to 0 if the sum was less than pow(2, 32), or to 1 otherwise.

+
Template Parameters
+ + +
genUTypeUnsigned integer scalar or vector types.
+
+
+
See also
GLSL uaddCarry man page
+
+GLSL 4.20.8 specification, section 8.8 Integer Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL void glm::umulExtended (vecType< uint, P > const & x,
vecType< uint, P > const & y,
vecType< uint, P > & msb,
vecType< uint, P > & lsb 
)
+
+ +

Multiplies 32-bit integers x and y, producing a 64-bit result.

+

The 32 least-significant bits are returned in lsb. The 32 most-significant bits are returned in msb.

+
Template Parameters
+ + +
genUTypeUnsigned integer scalar or vector types.
+
+
+
See also
GLSL umulExtended man page
+
+GLSL 4.20.8 specification, section 8.8 Integer Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vecType<uint, P> glm::usubBorrow (vecType< uint, P > const & x,
vecType< uint, P > const & y,
vecType< uint, P > & borrow 
)
+
+ +

Subtracts the 32-bit unsigned integer y from x, returning the difference if non-negative, or pow(2, 32) plus the difference otherwise.

+

The value borrow is set to 0 if x >= y, or to 1 otherwise.

+
Template Parameters
+ + +
genUTypeUnsigned integer scalar or vector types.
+
+
+
See also
GLSL usubBorrow man page
+
+GLSL 4.20.8 specification, section 8.8 Integer Functions
+ +
+
+
+ + + + diff --git a/doc/api/a00153.html b/doc/api/a00153.html new file mode 100644 index 00000000..a29aa3b8 --- /dev/null +++ b/doc/api/a00153.html @@ -0,0 +1,212 @@ + + + + + + +0.9.6: Matrix functions + + + + + + +
+
+ + + + + + + +
+
0.9.6 +
+
+
+ + + +
+
+ +
+
Matrix functions
+
+
+ + + + + + + + + + + + + + +

+Functions

template<typename T , precision P, template< typename, precision > class matType>
GLM_FUNC_DECL T determinant (matType< T, P > const &m)
 
template<typename T , precision P, template< typename, precision > class matType>
GLM_FUNC_DECL matType< T, P > inverse (matType< T, P > const &m)
 
template<typename T , precision P, template< typename, precision > class matType>
GLM_FUNC_DECL matType< T, P > matrixCompMult (matType< T, P > const &x, matType< T, P > const &y)
 
template<typename T , precision P, template< typename, precision > class vecTypeA, template< typename, precision > class vecTypeB>
GLM_FUNC_DECL
+detail::outerProduct_trait< T,
+P, vecTypeA, vecTypeB >::type 
outerProduct (vecTypeA< T, P > const &c, vecTypeB< T, P > const &r)
 
+

Detailed Description

+

For each of the following built-in matrix functions, there is both a single-precision floating point version, where all arguments and return values are single precision, and a double-precision floating version, where all arguments and return values are double precision.

+

Only the single-precision floating point version is shown.

+

Function Documentation

+ +
+
+ + + + + + + + +
GLM_FUNC_DECL T glm::determinant (matType< T, P > const & m)
+
+ +

Returns the transposed matrix of x.

+
Template Parameters
+ + +
matTypeFloating-point matrix types.
+
+
+
See also
GLSL transpose man page
+
+GLSL 4.20.8 specification, section 8.6 Matrix Functions Return the determinant of a squared matrix.
+
Template Parameters
+ + +
valTypeFloating-point scalar types.
+
+
+
See also
GLSL determinant man page
+
+GLSL 4.20.8 specification, section 8.6 Matrix Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL matType<T, P> glm::inverse (matType< T, P > const & m)
+
+ +

Return the inverse of a squared matrix.

+
Template Parameters
+ + +
valTypeFloating-point scalar types.
+
+
+
See also
GLSL inverse man page
+
+GLSL 4.20.8 specification, section 8.6 Matrix Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL matType<T, P> glm::matrixCompMult (matType< T, P > const & x,
matType< T, P > const & y 
)
+
+ +

Multiply matrix x by matrix y component-wise, i.e., result[i][j] is the scalar product of x[i][j] and y[i][j].

+
Template Parameters
+ + +
matTypeFloating-point matrix types.
+
+
+
See also
GLSL matrixCompMult man page
+
+GLSL 4.20.8 specification, section 8.6 Matrix Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL detail::outerProduct_trait<T, P, vecTypeA, vecTypeB>::type glm::outerProduct (vecTypeA< T, P > const & c,
vecTypeB< T, P > const & r 
)
+
+ +

Treats the first parameter c as a column vector and the second parameter r as a row vector and does a linear algebraic matrix multiply c * r.

+
Template Parameters
+ + +
matTypeFloating-point matrix types.
+
+
+
See also
GLSL outerProduct man page
+
+GLSL 4.20.8 specification, section 8.6 Matrix Functions
+ +
+
+
+ + + + diff --git a/doc/api/a00154.html b/doc/api/a00154.html new file mode 100644 index 00000000..a505abaf --- /dev/null +++ b/doc/api/a00154.html @@ -0,0 +1,184 @@ + + + + + + +0.9.6: Noise functions + + + + + + +
+
+ + + + + + + +
+
0.9.6 +
+
+
+ + + +
+
+ +
+
Noise functions
+
+
+ + + + + + + + + + + + + + +

+Functions

template<typename genType >
GLM_FUNC_DECL genType::value_type noise1 (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL tvec2< typename
+genType::value_type, defaultp > 
noise2 (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL tvec3< typename
+genType::value_type, defaultp > 
noise3 (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL tvec4< typename
+genType::value_type, defaultp > 
noise4 (genType const &x)
 
+

Detailed Description

+

Noise functions are stochastic functions that can be used to increase visual complexity.

+

Values returned by the following noise functions give the appearance of randomness, but are not truly random.

+

Function Documentation

+ +
+
+ + + + + + + + +
GLM_FUNC_DECL genType::value_type glm::noise1 (genType const & x)
+
+ +

Returns a 1D noise value based on the input value x.

+
Template Parameters
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also
GLSL noise1 man page
+
+GLSL 4.20.8 specification, section 8.13 Noise Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL tvec2<typename genType::value_type, defaultp> glm::noise2 (genType const & x)
+
+ +

Returns a 2D noise value based on the input value x.

+
Template Parameters
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also
GLSL noise2 man page
+
+GLSL 4.20.8 specification, section 8.13 Noise Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL tvec3<typename genType::value_type, defaultp> glm::noise3 (genType const & x)
+
+ +

Returns a 3D noise value based on the input value x.

+
Template Parameters
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also
GLSL noise3 man page
+
+GLSL 4.20.8 specification, section 8.13 Noise Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL tvec4<typename genType::value_type, defaultp> glm::noise4 (genType const & x)
+
+ +

Returns a 4D noise value based on the input value x.

+
Template Parameters
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also
GLSL noise4 man page
+
+GLSL 4.20.8 specification, section 8.13 Noise Functions
+ +
+
+
+ + + + diff --git a/doc/api/a00155.html b/doc/api/a00155.html index 11a0e56b..38e2bc2c 100644 --- a/doc/api/a00155.html +++ b/doc/api/a00155.html @@ -3,8 +3,8 @@ - -GLM: Common functions + +0.9.6: Floating-Point Pack and Unpack Functions @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -41,1049 +39,208 @@
Functions
-
Common functions
+
Floating-Point Pack and Unpack Functions
GLM Core
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + +

Functions

template<typename genType >
GLM_FUNC_DECL genType abs (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType ceil (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType clamp (genType const &x, genType const &minVal, genType const &maxVal)
 
GLM_FUNC_DECL int floatBitsToInt (float const &v)
 
template<template< typename, precision > class vecType, precision P>
GLM_FUNC_DECL vecType< int, P > floatBitsToInt (vecType< float, P > const &v)
 
GLM_FUNC_DECL uint floatBitsToUint (float const &v)
 
template<template< typename, precision > class vecType, precision P>
GLM_FUNC_DECL vecType< uint, P > floatBitsToUint (vecType< float, P > const &v)
 
template<typename genType >
GLM_FUNC_DECL genType floor (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType fma (genType const &a, genType const &b, genType const &c)
 
template<typename genType >
GLM_FUNC_DECL genType fract (genType const &x)
 
template<typename genType , typename genIType >
GLM_FUNC_DECL genType frexp (genType const &x, genIType &exp)
 
GLM_FUNC_DECL float intBitsToFloat (int const &v)
 
template<template< typename, precision > class vecType, precision P>
GLM_FUNC_DECL vecType< float, P > intBitsToFloat (vecType< int, P > const &v)
 
template<typename genType >
GLM_FUNC_DECL genType::bool_type isinf (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType::bool_type isnan (genType const &x)
 
template<typename genType , typename genIType >
GLM_FUNC_DECL genType ldexp (genType const &x, genIType const &exp)
 
template<typename genType >
GLM_FUNC_DECL genType max (genType const &x, genType const &y)
 
template<typename genType >
GLM_FUNC_DECL genType min (genType const &x, genType const &y)
 
template<typename genTypeT , typename genTypeU >
GLM_FUNC_DECL genTypeT mix (genTypeT const &x, genTypeT const &y, genTypeU const &a)
 
template<typename genType >
GLM_FUNC_DECL genType mod (genType const &x, genType const &y)
 
template<typename genType >
GLM_FUNC_DECL genType mod (genType const &x, typename genType::value_type const &y)
 
template<typename genType >
GLM_FUNC_DECL genType modf (genType const &x, genType &i)
 
template<typename genType >
GLM_FUNC_DECL genType round (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType roundEven (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType sign (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType smoothstep (genType const &edge0, genType const &edge1, genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType step (genType const &edge, genType const &x)
 
template<template< typename, precision > class vecType, typename T , precision P>
GLM_FUNC_DECL vecType< T, P > step (T const &edge, vecType< T, P > const &x)
 
template<typename genType >
GLM_FUNC_DECL genType trunc (genType const &x)
 
GLM_FUNC_DECL float uintBitsToFloat (uint const &v)
 
template<template< typename, precision > class vecType, precision P>
GLM_FUNC_DECL vecType< float, P > uintBitsToFloat (vecType< uint, P > const &v)
 
GLM_FUNC_DECL double packDouble2x32 (uvec2 const &v)
 
GLM_FUNC_DECL uint packHalf2x16 (vec2 const &v)
 
GLM_FUNC_DECL uint packSnorm2x16 (vec2 const &v)
 
GLM_FUNC_DECL uint packSnorm4x8 (vec4 const &v)
 
GLM_FUNC_DECL uint packUnorm2x16 (vec2 const &v)
 
GLM_FUNC_DECL uint packUnorm4x8 (vec4 const &v)
 
GLM_FUNC_DECL uvec2 unpackDouble2x32 (double const &v)
 
GLM_FUNC_DECL vec2 unpackHalf2x16 (uint const &v)
 
GLM_FUNC_DECL vec2 unpackSnorm2x16 (uint const &p)
 
GLM_FUNC_DECL vec4 unpackSnorm4x8 (uint const &p)
 
GLM_FUNC_DECL vec2 unpackUnorm2x16 (uint const &p)
 
GLM_FUNC_DECL vec4 unpackUnorm4x8 (uint const &p)
 

Detailed Description

-

These all operate component-wise.

-

The description is per component.

+

These functions do not operate component-wise, rather as described in each case.

Function Documentation

- +
- + - - - - -
GLM_FUNC_DECL genType glm::abs GLM_FUNC_DECL double glm::packDouble2x32 (genType const & x)
-
- -

Returns x if x >= 0; otherwise, it returns -x.

-
Template Parameters
- - -
genTypefloating-point or signed integer; scalar or vector types.
-
-
-
See Also
GLSL abs man page
-
-GLSL 4.20.8 specification, section 8.3 Common Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::ceil (genType const & x)
-
- -

Returns a value equal to the nearest integer that is greater than or equal to x.

-
Template Parameters
- - -
genTypeFloating-point scalar or vector types.
-
-
-
See Also
GLSL ceil man page
-
-GLSL 4.20.8 specification, section 8.3 Common Functions
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL genType glm::clamp (genType const & x,
genType const & minVal,
genType const & maxVal 
)
-
- -

Returns min(max(x, minVal), maxVal) for each component in x using the floating-point values minVal and maxVal.

-
Template Parameters
- - -
genTypeFloating-point or integer; scalar or vector types.
-
-
-
See Also
GLSL clamp man page
-
-GLSL 4.20.8 specification, section 8.3 Common Functions
- -

Referenced by glm::saturate().

- -
-
- -
-
- - - - - +
GLM_FUNC_DECL int glm::floatBitsToInt (float const & uvec2 const &  v)
-

Returns a signed integer value representing the encoding of a floating-point value.

-

The floating-point value's bit-level representation is preserved.

-
See Also
GLSL floatBitsToInt man page
+

Returns a double-precision value obtained by packing the components of v into a 64-bit value.

+

If an IEEE 754 Inf or NaN is created, it will not signal, and the resulting floating point value is unspecified. Otherwise, the bit- level representation of v is preserved. The first vector component specifies the 32 least significant bits; the second component specifies the 32 most significant bits.

+
See also
GLSL packDouble2x32 man page
-GLSL 4.20.8 specification, section 8.3 Common Functions
+GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
- +
- + - +
GLM_FUNC_DECL vecType<int, P> glm::floatBitsToInt GLM_FUNC_DECL uint glm::packHalf2x16 (vecType< float, P > const & vec2 const &  v)
-

Returns a signed integer value representing the encoding of a floating-point value.

-

The floatingpoint value's bit-level representation is preserved.

-
See Also
GLSL floatBitsToInt man page
+

Returns an unsigned integer obtained by converting the components of a two-component floating-point vector to the 16-bit floating-point representation found in the OpenGL Specification, and then packing these two 16- bit integers into a 32-bit unsigned integer.

+

The first vector component specifies the 16 least-significant bits of the result; the second component specifies the 16 most-significant bits.

+
See also
GLSL packHalf2x16 man page
-GLSL 4.20.8 specification, section 8.3 Common Functions
+GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
- +
- + - +
GLM_FUNC_DECL uint glm::floatBitsToUint GLM_FUNC_DECL uint glm::packSnorm2x16 (float const & vec2 const &  v)
-

Returns a unsigned integer value representing the encoding of a floating-point value.

-

The floatingpoint value's bit-level representation is preserved.

-
See Also
GLSL floatBitsToUint man page
+

First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values.

+

Then, the results are packed into the returned 32-bit unsigned integer.

+

The conversion for component c of v to fixed point is done as follows: packSnorm2x16: round(clamp(v, -1, +1) * 32767.0)

+

The first component of the vector will be written to the least significant bits of the output; the last component will be written to the most significant bits.

+
See also
GLSL packSnorm2x16 man page
-GLSL 4.20.8 specification, section 8.3 Common Functions
+GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
- +
- + - +
GLM_FUNC_DECL vecType<uint, P> glm::floatBitsToUint GLM_FUNC_DECL uint glm::packSnorm4x8 (vecType< float, P > const & vec4 const &  v)
-

Returns a unsigned integer value representing the encoding of a floating-point value.

-

The floatingpoint value's bit-level representation is preserved.

-
See Also
GLSL floatBitsToUint man page
+

First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values.

+

Then, the results are packed into the returned 32-bit unsigned integer.

+

The conversion for component c of v to fixed point is done as follows: packSnorm4x8: round(clamp(c, -1, +1) * 127.0)

+

The first component of the vector will be written to the least significant bits of the output; the last component will be written to the most significant bits.

+
See also
GLSL packSnorm4x8 man page
-GLSL 4.20.8 specification, section 8.3 Common Functions
+GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
- +
- + - - - - -
GLM_FUNC_DECL genType glm::floor GLM_FUNC_DECL uint glm::packUnorm2x16 (genType const & x)
-
- -

Returns a value equal to the nearest integer that is less then or equal to x.

-
Template Parameters
- - -
genTypeFloating-point scalar or vector types.
-
-
-
See Also
GLSL floor man page
-
-GLSL 4.20.8 specification, section 8.3 Common Functions
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL genType glm::fma (genType const & a,
genType const & b,
genType const & c 
)
-
- -

Computes and returns a * b + c.

-
Template Parameters
- - -
genTypeFloating-point scalar or vector types.
-
-
-
See Also
GLSL fma man page
-
-GLSL 4.20.8 specification, section 8.3 Common Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::fract (genType const & x)
-
- -

Return x - floor(x).

-
Template Parameters
- - -
genTypeFloating-point scalar or vector types.
-
-
-
See Also
GLSL fract man page
-
-GLSL 4.20.8 specification, section 8.3 Common Functions
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL genType glm::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, such that: x = significand * exp(2, exponent)

-

The significand is returned by the function and the exponent is returned in the parameter exp. For a floating-point value of zero, the significant and exponent are both zero. For a floating-point value that is an infinity or is not a number, the results are undefined.

-
Template Parameters
- - -
genTypeFloating-point scalar or vector types.
-
-
-
See Also
GLSL frexp man page
-
-GLSL 4.20.8 specification, section 8.3 Common Functions
- -
-
- -
-
- - - - - +
GLM_FUNC_DECL float glm::intBitsToFloat (int const & vec2 const &  v)
-

Returns a floating-point value corresponding to a signed integer encoding of a floating-point value.

-

If an inf or NaN is passed in, it will not signal, and the resulting floating point value is unspecified. Otherwise, the bit-level representation is preserved.

-
See Also
GLSL intBitsToFloat man page
+

First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values.

+

Then, the results are packed into the returned 32-bit unsigned integer.

+

The conversion for component c of v to fixed point is done as follows: packUnorm2x16: round(clamp(c, 0, +1) * 65535.0)

+

The first component of the vector will be written to the least significant bits of the output; the last component will be written to the most significant bits.

+
See also
GLSL packUnorm2x16 man page
-GLSL 4.20.8 specification, section 8.3 Common Functions
+GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
- +
- + - +
GLM_FUNC_DECL vecType<float, P> glm::intBitsToFloat GLM_FUNC_DECL uint glm::packUnorm4x8 (vecType< int, P > const & vec4 const &  v)
-

Returns a floating-point value corresponding to a signed integer encoding of a floating-point value.

-

If an inf or NaN is passed in, it will not signal, and the resulting floating point value is unspecified. Otherwise, the bit-level representation is preserved.

-
See Also
GLSL intBitsToFloat man page
+

First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values.

+

Then, the results are packed into the returned 32-bit unsigned integer.

+

The conversion for component c of v to fixed point is done as follows: packUnorm4x8: round(clamp(c, 0, +1) * 255.0)

+

The first component of the vector will be written to the least significant bits of the output; the last component will be written to the most significant bits.

+
See also
GLSL packUnorm4x8 man page
-GLSL 4.20.8 specification, section 8.3 Common Functions
+GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
- +
- + - - + +
GLM_FUNC_DECL genType::bool_type glm::isinf GLM_FUNC_DECL uvec2 glm::unpackDouble2x32 (genType const & x)double const & v)
-

Returns true if x holds a positive infinity or negative infinity representation in the underlying implementation's set of floating point representations.

-

Returns false otherwise, including for implementations with no infinity representations.

-
Template Parameters
- - -
genTypeFloating-point scalar or vector types.
-
-
-
See Also
GLSL isinf man page
+

Returns a two-component unsigned integer vector representation of v.

+

The bit-level representation of v is preserved. The first component of the vector contains the 32 least significant bits of the double; the second component consists the 32 most significant bits.

+
See also
GLSL unpackDouble2x32 man page
-GLSL 4.20.8 specification, section 8.3 Common Functions
+GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
- +
- - - - - - -
GLM_FUNC_DECL genType::bool_type glm::isnan (genType const & x)
-
- -

Returns true if x holds a NaN (not a number) representation in the underlying implementation's set of floating point representations.

-

Returns false otherwise, including for implementations with no NaN representations.

-

/!\ When using compiler fast math, this function may fail.

-
Template Parameters
- - -
genTypeFloating-point scalar or vector types.
-
-
-
See Also
GLSL isnan man page
-
-GLSL 4.20.8 specification, section 8.3 Common Functions
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL genType glm::ldexp (genType const & x,
genIType const & exp 
)
-
- -

Builds a floating-point number from x and the corresponding integral exponent of two in exp, returning: significand * exp(2, exponent)

-

If this product is too large to be represented in the floating-point type, the result is undefined.

-
Template Parameters
- - -
genTypeFloating-point scalar or vector types.
-
-
-
See Also
GLSL ldexp man page;
-
-GLSL 4.20.8 specification, section 8.3 Common Functions
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL genType glm::max (genType const & x,
genType const & y 
)
-
- -

Returns y if x < y; otherwise, it returns x.

-
Template Parameters
- - -
genTypeFloating-point or integer; scalar or vector types.
-
-
-
See Also
GLSL max man page
-
-GLSL 4.20.8 specification, section 8.3 Common Functions
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL genType glm::min (genType const & x,
genType const & y 
)
-
- -

Returns y if y < x; otherwise, it returns x.

-
Template Parameters
- - -
genTypeFloating-point or integer; scalar or vector types.
-
-
-
See Also
GLSL min man page
-
-GLSL 4.20.8 specification, section 8.3 Common Functions<<<<<<< HEAD
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL genTypeT glm::mix (genTypeT const & x,
genTypeT const & y,
genTypeU const & a 
)
-
- -

If genTypeU is a floating scalar or vector: Returns x * (1.0 - a) + y * a, i.e., the linear blend of x and y using the floating-point value a.

-

The value for a is not restricted to the range [0, 1].

-

If genTypeU is a boolean scalar or vector: Selects which vector each returned component comes from. For a component of that is false, the corresponding component of x is returned. For a component of a that is true, the corresponding component of y is returned. Components of x and y that are not selected are allowed to be invalid floating point values and will have no effect on the results. Thus, this provides different functionality than genType mix(genType x, genType y, genType(a)) where a is a Boolean vector.

-
See Also
GLSL mix man page
-
-GLSL 4.20.8 specification, section 8.3 Common Functions
-
Parameters
- - - - -
[in]xValue to interpolate.
[in]yValue to interpolate.
[in]aInterpolant.
-
-
-
Template Parameters
- - - -
genTypeTFloating point scalar or vector.
genTypeUFloating point or boolean scalar or vector. It can't be a vector if it is the length of genTypeT.
-
-
-
* #include <glm/glm.hpp>
-
* ...
-
* float a;
-
* bool b;
- - - - -
* ...
-
* glm::vec4 r = glm::mix(g, h, a); // Interpolate with a floating-point scalar two vectors.
-
* glm::vec4 s = glm::mix(g, h, b); // Teturns g or h;
-
* glm::dvec3 t = glm::mix(e, f, a); // Types of the third parameter is not required to match with the first and the second.
-
* glm::vec4 u = glm::mix(g, h, r); // Interpolations can be perform per component with a vector for the last parameter.
-
*
-
-

Referenced by glm::lerp(), and glm::slerp().

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL genType glm::mod (genType const & x,
genType const & y 
)
-
- -

Modulus.

-

Returns x - y * floor(x / y) for each component in x using the floating point value y.

-
Template Parameters
- - -
genTypeFloating-point scalar or vector types.
-
-
-
See Also
GLSL mod man page
-
-GLSL 4.20.8 specification, section 8.3 Common Functions
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL genType glm::mod (genType const & x,
typename genType::value_type const & y 
)
-
- -

Modulus.

-

Returns x - y * floor(x / y) for each component in x using the floating point value y.

-
Template Parameters
- - -
genTypeFloating-point scalar or vector types.
-
-
-
See Also
GLSL mod man page
-
-GLSL 4.20.8 specification, section 8.3 Common Functions
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL genType glm::modf (genType const & x,
genType & i 
)
-
- -

Returns the fractional part of x and sets i to the integer part (as a whole number floating point value).

-

Both the return value and the output parameter will have the same sign as x.

-
Template Parameters
- - -
genTypeFloating-point scalar or vector types.
-
-
-
See Also
GLSL modf man page
-
-GLSL 4.20.8 specification, section 8.3 Common Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::round (genType const & x)
-
- -

Returns a value equal to the nearest integer to x.

-

The fraction 0.5 will round in a direction chosen by the implementation, presumably the direction that is fastest. This includes the possibility that round(x) returns the same value as roundEven(x) for all values of x.

-
Template Parameters
- - -
genTypeFloating-point scalar or vector types.
-
-
-
See Also
GLSL round man page
-
-GLSL 4.20.8 specification, section 8.3 Common Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::roundEven (genType const & x)
-
- -

Returns a value equal to the nearest integer to x.

-

A fractional part of 0.5 will round toward the nearest even integer. (Both 3.5 and 4.5 for x will return 4.0.)

-
Template Parameters
- - -
genTypeFloating-point scalar or vector types.
-
-
-
See Also
GLSL roundEven man page
-
-GLSL 4.20.8 specification, section 8.3 Common Functions
-
-New round to even technique
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::sign (genType const & x)
-
- -

Returns 1.0 if x > 0, 0.0 if x == 0, or -1.0 if x < 0.

-
Template Parameters
- - -
genTypeFloating-point or signed integer; scalar or vector types.
-
-
-
See Also
GLSL sign man page
-
-GLSL 4.20.8 specification, section 8.3 Common Functions
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL genType glm::smoothstep (genType const & edge0,
genType const & edge1,
genType const & x 
)
-
- -

Returns 0.0 if x <= edge0 and 1.0 if x >= edge1 and performs smooth Hermite interpolation between 0 and 1 when edge0 < x < edge1.

-

This is useful in cases where you would want a threshold function with a smooth transition. This is equivalent to: genType t; t = clamp ((x - edge0) / (edge1 - edge0), 0, 1); return t * t * (3 - 2 * t); Results are undefined if edge0 >= edge1.

-
Template Parameters
- - -
genTypeFloating-point scalar or vector types.
-
-
-
See Also
GLSL smoothstep man page
-
-GLSL 4.20.8 specification, section 8.3 Common Functions
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL genType glm::step (genType const & edge,
genType const & x 
)
-
- -

Returns 0.0 if x < edge, otherwise it returns 1.0 for each component of a genType.

-
See Also
GLSL step man page
-
-GLSL 4.20.8 specification, section 8.3 Common Functions
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vecType<T, P> glm::step (T const & edge,
vecType< T, P > const & x 
)
-
- -

Returns 0.0 if x < edge, otherwise it returns 1.0.

-
See Also
GLSL step man page
-
-GLSL 4.20.8 specification, section 8.3 Common Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::trunc (genType const & x)
-
- -

Returns a value equal to the nearest integer to x whose absolute value is not larger than the absolute value of x.

-
Template Parameters
- - -
genTypeFloating-point scalar or vector types.
-
-
-
See Also
GLSL trunc man page
-
-GLSL 4.20.8 specification, section 8.3 Common Functions
- -
-
- -
-
- - - + @@ -1092,33 +249,107 @@ Functions
GLM_FUNC_DECL float glm::uintBitsToFloat GLM_FUNC_DECL vec2 glm::unpackHalf2x16 ( uint const &  v)
-

Returns a floating-point value corresponding to a unsigned integer encoding of a floating-point value.

-

If an inf or NaN is passed in, it will not signal, and the resulting floating point value is unspecified. Otherwise, the bit-level representation is preserved.

-
See Also
GLSL uintBitsToFloat man page
+

Returns a two-component floating-point vector with components obtained by unpacking a 32-bit unsigned integer into a pair of 16-bit values, interpreting those values as 16-bit floating-point numbers according to the OpenGL Specification, and converting them to 32-bit floating-point values.

+

The first component of the vector is obtained from the 16 least-significant bits of v; the second component is obtained from the 16 most-significant bits of v.

+
See also
GLSL unpackHalf2x16 man page
-GLSL 4.20.8 specification, section 8.3 Common Functions
+GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
- +
- + - - + +
GLM_FUNC_DECL vecType<float, P> glm::uintBitsToFloat GLM_FUNC_DECL vec2 glm::unpackSnorm2x16 (vecType< uint, P > const & v)uint const & p)
-

Returns a floating-point value corresponding to a unsigned integer encoding of a floating-point value.

-

If an inf or NaN is passed in, it will not signal, and the resulting floating point value is unspecified. Otherwise, the bit-level representation is preserved.

-
See Also
GLSL uintBitsToFloat man page
+

First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers.

+

Then, each component is converted to a normalized floating-point value to generate the returned two- or four-component vector.

+

The conversion for unpacked fixed-point value f to floating point is done as follows: unpackSnorm2x16: clamp(f / 32767.0, -1, +1)

+

The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.

+
See also
GLSL unpackSnorm2x16 man page
-GLSL 4.20.8 specification, section 8.3 Common Functions
+GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec4 glm::unpackSnorm4x8 (uint const & p)
+
+ +

First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers.

+

Then, each component is converted to a normalized floating-point value to generate the returned two- or four-component vector.

+

The conversion for unpacked fixed-point value f to floating point is done as follows: unpackSnorm4x8: clamp(f / 127.0, -1, +1)

+

The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.

+
See also
GLSL unpackSnorm4x8 man page
+
+GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec2 glm::unpackUnorm2x16 (uint const & p)
+
+ +

First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers.

+

Then, each component is converted to a normalized floating-point value to generate the returned two- or four-component vector.

+

The conversion for unpacked fixed-point value f to floating point is done as follows: unpackUnorm2x16: f / 65535.0

+

The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.

+
See also
GLSL unpackUnorm2x16 man page
+
+GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec4 glm::unpackUnorm4x8 (uint const & p)
+
+ +

First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers.

+

Then, each component is converted to a normalized floating-point value to generate the returned two- or four-component vector.

+

The conversion for unpacked fixed-point value f to floating point is done as follows: unpackUnorm4x8: f / 255.0

+

The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.

+
See also
GLSL unpackUnorm4x8 man page
+
+GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
@@ -1127,7 +358,7 @@ Functions diff --git a/doc/api/a00156.html b/doc/api/a00156.html index 6bc3a166..3ac92155 100644 --- a/doc/api/a00156.html +++ b/doc/api/a00156.html @@ -3,8 +3,8 @@ - -GLM: Exponential functions + +0.9.6: Angle and Trigonometry Functions @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -41,219 +39,189 @@
Functions
-
Exponential functions
+
Angle and Trigonometry Functions
GLM Core
- - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Functions

template<typename genType >
GLM_FUNC_DECL genType exp (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType exp2 (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType inversesqrt (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType log (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType log2 (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType pow (genType const &base, genType const &exponent)
 
template<typename genType >
GLM_FUNC_DECL genType sqrt (genType const &x)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > acos (vecType< T, P > const &x)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > acosh (vecType< T, P > const &x)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > asin (vecType< T, P > const &x)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > asinh (vecType< T, P > const &x)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > atan (vecType< T, P > const &y, vecType< T, P > const &x)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > atan (vecType< T, P > const &y_over_x)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > atanh (vecType< T, P > const &x)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > cos (vecType< T, P > const &angle)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > cosh (vecType< T, P > const &angle)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > degrees (vecType< T, P > const &radians)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > radians (vecType< T, P > const &degrees)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > sin (vecType< T, P > const &angle)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > sinh (vecType< T, P > const &angle)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > tan (vecType< T, P > const &angle)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > tanh (vecType< T, P > const &angle)
 

Detailed Description

-

These all operate component-wise.

-

The description is per component.

+

Function parameters specified as angle are assumed to be in units of radians.

+

In no case will any of these functions result in a divide by zero error. If the divisor of a ratio is 0, then results will be undefined.

+

These all operate component-wise. The description is per component.

Function Documentation

- +
- + - +
GLM_FUNC_DECL genType glm::exp GLM_FUNC_DECL vecType<T, P> glm::acos (genType const & vecType< T, P > const &  x)
-

Returns the natural exponentiation of x, i.e., e^x.

-
Parameters
- - -
xexp function is defined for input values of x defined in the range (inf-, inf+) in the limit of the type precision.
-
-
+

Arc cosine.

+

Returns an angle whose sine is x. The range of values returned by this function is [0, PI]. Results are undefined if |x| > 1.

Template Parameters
genTypeFloating-point scalar or vector types.
-
See Also
GLSL exp man page
+
See also
GLSL acos man page
-GLSL 4.20.8 specification, section 8.2 Exponential Functions
+GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
- +
- + - +
GLM_FUNC_DECL genType glm::exp2 GLM_FUNC_DECL vecType<T, P> glm::acosh (genType const & vecType< T, P > const &  x)
-

Returns 2 raised to the x power.

-
Parameters
- - -
xexp2 function is defined for input values of x defined in the range (inf-, inf+) in the limit of the type precision.
-
-
+

Arc hyperbolic cosine; returns the non-negative inverse of cosh.

+

Results are undefined if x < 1.

Template Parameters
genTypeFloating-point scalar or vector types.
-
See Also
GLSL exp2 man page
+
See also
GLSL acosh man page
-GLSL 4.20.8 specification, section 8.2 Exponential Functions
+GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
- +
- + - +
GLM_FUNC_DECL genType glm::inversesqrt GLM_FUNC_DECL vecType<T, P> glm::asin (genType const & vecType< T, P > const &  x)
-

Returns the reciprocal of the positive square root of x.

-
Parameters
- - -
xinversesqrt function is defined for input values of x defined in the range [0, inf+) in the limit of the type precision.
-
-
+

Arc sine.

+

Returns an angle whose sine is x. The range of values returned by this function is [-PI/2, PI/2]. Results are undefined if |x| > 1.

Template Parameters
genTypeFloating-point scalar or vector types.
-
See Also
GLSL inversesqrt man page
+
See also
GLSL asin man page
-GLSL 4.20.8 specification, section 8.2 Exponential Functions
+GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
- +
- + - +
GLM_FUNC_DECL genType glm::log GLM_FUNC_DECL vecType<T, P> glm::asinh (genType const & vecType< T, P > const &  x)
-

Returns the natural logarithm of x, i.e., returns the value y which satisfies the equation x = e^y.

-

Results are undefined if x <= 0.

-
Parameters
- - -
xlog function is defined for input values of x defined in the range (0, inf+) in the limit of the type precision.
-
-
+

Arc hyperbolic sine; returns the inverse of sinh.

Template Parameters
genTypeFloating-point scalar or vector types.
-
See Also
GLSL log man page
+
See also
GLSL asinh man page
-GLSL 4.20.8 specification, section 8.2 Exponential Functions
+GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
- +
- + - - - - -
GLM_FUNC_DECL genType glm::log2 GLM_FUNC_DECL vecType<T, P> glm::atan (genType const & x)
-
- -

Returns the base 2 log of x, i.e., returns the value y, which satisfies the equation x = 2 ^ y.

-
Parameters
- - -
xlog2 function is defined for input values of x defined in the range (0, inf+) in the limit of the type precision.
-
-
-
Template Parameters
- - -
genTypeFloating-point scalar or vector types.
-
-
-
See Also
GLSL log2 man page
-
-GLSL 4.20.8 specification, section 8.2 Exponential Functions
- -
-
- -
-
- - - - - - + + - - + + @@ -263,56 +231,293 @@ Functions
GLM_FUNC_DECL genType glm::pow (genType const & base, vecType< T, P > const & y,
genType const & exponent vecType< T, P > const & x 
-

Returns 'base' raised to the power 'exponent'.

-
Parameters
- - - -
baseFloating point value. pow function is defined for input values of x defined in the range (inf-, inf+) in the limit of the type precision.
exponentFloating point value representing the 'exponent'.
-
-
+

Arc tangent.

+

Returns an angle whose tangent is y/x. The signs of x and y are used to determine what quadrant the angle is in. The range of values returned by this function is [-PI, PI]. Results are undefined if x and y are both 0.

Template Parameters
genTypeFloating-point scalar or vector types.
-
See Also
GLSL pow man page
+
See also
GLSL atan man page
-GLSL 4.20.8 specification, section 8.2 Exponential Functions
+GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
+ +

Referenced by glm::atan2().

- +
- + - + + + + +
GLM_FUNC_DECL genType glm::sqrt GLM_FUNC_DECL vecType<T, P> glm::atan (genType const & vecType< T, P > const & y_over_x)
+
+ +

Arc tangent.

+

Returns an angle whose tangent is y_over_x. The range of values returned by this function is [-PI/2, PI/2].

+
Template Parameters
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also
GLSL atan man page
+
+GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
+ +
+
+ +
+
+ + + + +
GLM_FUNC_DECL vecType<T, P> glm::atanh (vecType< T, P > const &  x)
-

Returns the positive square root of x.

-
Parameters
- - -
xsqrt function is defined for input values of x defined in the range [0, inf+) in the limit of the type precision.
-
-
+

Arc hyperbolic tangent; returns the inverse of tanh.

+

Results are undefined if abs(x) >= 1.

Template Parameters
genTypeFloating-point scalar or vector types.
-
See Also
GLSL sqrt man page
+
See also
GLSL atanh man page
-GLSL 4.20.8 specification, section 8.2 Exponential Functions
+GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vecType<T, P> glm::cos (vecType< T, P > const & angle)
+
+ +

The standard trigonometric cosine function.

+

The values returned by this function will range from [-1, 1].

+
Template Parameters
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also
GLSL cos man page
+
+GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vecType<T, P> glm::cosh (vecType< T, P > const & angle)
+
+ +

Returns the hyperbolic cosine function, (exp(x) + exp(-x)) / 2.

+
Template Parameters
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also
GLSL cosh man page
+
+GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vecType<T, P> glm::degrees (vecType< T, P > const & radians)
+
+ +

Converts radians to degrees and returns the result.

+
Template Parameters
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also
GLSL degrees man page
+
+GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vecType<T, P> glm::radians (vecType< T, P > const & degrees)
+
+ +

Converts degrees to radians and returns the result.

+
Template Parameters
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also
GLSL radians man page
+
+GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vecType<T, P> glm::sin (vecType< T, P > const & angle)
+
+ +

The standard trigonometric sine function.

+

The values returned by this function will range from [-1, 1].

+
Template Parameters
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also
GLSL sin man page
+
+GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vecType<T, P> glm::sinh (vecType< T, P > const & angle)
+
+ +

Returns the hyperbolic sine function, (exp(x) - exp(-x)) / 2.

+
Template Parameters
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also
GLSL sinh man page
+
+GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vecType<T, P> glm::tan (vecType< T, P > const & angle)
+
+ +

The standard trigonometric tangent function.

+
Template Parameters
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also
GLSL tan man page
+
+GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vecType<T, P> glm::tanh (vecType< T, P > const & angle)
+
+ +

Returns the hyperbolic tangent function, sinh(angle) / cosh(angle)

+
Template Parameters
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also
GLSL tanh man page
+
+GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
@@ -321,7 +526,7 @@ Functions diff --git a/doc/api/a00157.html b/doc/api/a00157.html index 65f31ed2..eaa34601 100644 --- a/doc/api/a00157.html +++ b/doc/api/a00157.html @@ -3,8 +3,8 @@ - -GLM: Geometric functions + +0.9.6: Vector Relational Functions @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -41,123 +39,105 @@
Functions
-
Geometric functions
+
Vector Relational Functions
GLM Core
- - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + +

Functions

template<typename T , precision P>
GLM_FUNC_DECL detail::tvec3< T, P > cross (detail::tvec3< T, P > const &x, detail::tvec3< T, P > const &y)
 
template<typename genType >
GLM_FUNC_DECL genType::value_type distance (genType const &p0, genType const &p1)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL T dot (vecType< T, P > const &x, vecType< T, P > const &y)
 
template<typename genType >
GLM_FUNC_DECL genType dot (genType const &x, genType const &y)
 
template<typename genType >
GLM_FUNC_DECL genType faceforward (genType const &N, genType const &I, genType const &Nref)
 
template<typename genType >
GLM_FUNC_DECL genType::value_type length (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType normalize (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType reflect (genType const &I, genType const &N)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > refract (vecType< T, P > const &I, vecType< T, P > const &N, T const &eta)
 
template<precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL bool all (vecType< bool, P > const &v)
 
template<precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL bool any (vecType< bool, P > const &v)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< bool, P > equal (vecType< T, P > const &x, vecType< T, P > const &y)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< bool, P > greaterThan (vecType< T, P > const &x, vecType< T, P > const &y)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< bool, P > greaterThanEqual (vecType< T, P > const &x, vecType< T, P > const &y)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< bool, P > lessThan (vecType< T, P > const &x, vecType< T, P > const &y)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< bool, P > lessThanEqual (vecType< T, P > const &x, vecType< T, P > const &y)
 
template<precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< bool, P > not_ (vecType< bool, P > const &v)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< bool, P > notEqual (vecType< T, P > const &x, vecType< T, P > const &y)
 

Detailed Description

-

These operate on vectors as vectors, not component-wise.

+

Relational and equality operators (<, <=, >, >=, ==, !=) are defined to operate on scalars and produce scalar Boolean results.

+

For vector results, use the following built-in functions.

+

In all cases, the sizes of all the input and return vectors for any particular call must match.

Function Documentation

- +
- + - - - - - + + - - - - - - -
GLM_FUNC_DECL detail::tvec3<T, P> glm::cross GLM_FUNC_DECL bool glm::all (detail::tvec3< T, P > const & x,
vecType< bool, P > const & v) detail::tvec3< T, P > const & y 
)
-

Returns the cross product of x and y.

+

Returns true if all components of x are true.

Template Parameters
- +
valTypeFloating-point scalar types.
vecTypeBoolean vector types.
-
See Also
GLSL cross man page
+
See also
GLSL all man page
-GLSL 4.20.8 specification, section 8.5 Geometric Functions
+GLSL 4.20.8 specification, section 8.7 Vector Relational Functions
- +
- + - - - - - + + - - - - - - -
GLM_FUNC_DECL genType::value_type glm::distance GLM_FUNC_DECL bool glm::any (genType const & p0,
vecType< bool, P > const & v) genType const & p1 
)
-

Returns the distance betwwen p0 and p1, i.e., length(p0 - p1).

+

Returns true if any component of x is true.

Template Parameters
- +
genTypeFloating-point vector types.
vecTypeBoolean vector types.
-
See Also
GLSL distance man page
+
See also
GLSL any man page
-GLSL 4.20.8 specification, section 8.5 Geometric Functions
+GLSL 4.20.8 specification, section 8.7 Vector Relational Functions
- +
- + @@ -176,33 +156,33 @@ Functions
GLM_FUNC_DECL T glm::dot GLM_FUNC_DECL vecType<bool, P> glm::equal ( vecType< T, P > const &  x,
-

Returns the dot product of x and y, i.e., result = x * y.

+

Returns the component-wise comparison of result x == y.

Template Parameters
- +
genTypeFloating-point vector types.
vecTypeFloating-point, integer or boolean vector types.
-
See Also
GLSL dot man page
+
See also
GLSL equal man page
-GLSL 4.20.8 specification, section 8.5 Geometric Functions
+GLSL 4.20.8 specification, section 8.7 Vector Relational Functions
- +
- + - + - + @@ -213,168 +193,34 @@ Functions
GLM_FUNC_DECL genType glm::dot GLM_FUNC_DECL vecType<bool, P> glm::greaterThan (genType const & vecType< T, P > const &  x,
genType const & vecType< T, P > const &  y 
-

Returns the dot product of x and y, i.e., result = x * y.

+

Returns the component-wise comparison of result x > y.

Template Parameters
- +
genTypeFloating-point vector types.
vecTypeFloating-point or integer vector types.
-
See Also
GLSL dot man page
+
See also
GLSL greaterThan man page
-GLSL 4.20.8 specification, section 8.5 Geometric Functions
+GLSL 4.20.8 specification, section 8.7 Vector Relational Functions
- +
- - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL genType glm::faceforward (genType const & N,
genType const & I,
genType const & Nref 
)
-
- -

If dot(Nref, I) < 0.0, return N, otherwise, return -N.

-
Template Parameters
- - -
genTypeFloating-point vector types.
-
-
-
See Also
GLSL faceforward man page
-
-GLSL 4.20.8 specification, section 8.5 Geometric Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType::value_type glm::length (genType const & x)
-
- -

Returns the length of x, i.e., sqrt(x * x).

-
Template Parameters
- - -
genTypeFloating-point vector types.
-
-
-
See Also
GLSL length man page
-
-GLSL 4.20.8 specification, section 8.5 Geometric Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::normalize (genType const & x)
-
- -

Returns a vector in the same direction as x but with length of 1.

-
See Also
GLSL normalize man page
-
-GLSL 4.20.8 specification, section 8.5 Geometric Functions
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL genType glm::reflect (genType const & I,
genType const & N 
)
-
- -

For the incident vector I and surface orientation N, returns the reflection direction : result = I - 2.0 * dot(N, I) * N.

-
Template Parameters
- - -
genTypeFloating-point vector types.
-
-
-
See Also
GLSL reflect man page
-
-GLSL 4.20.8 specification, section 8.5 Geometric Functions
- -
-
- -
-
- - - + - + - - - - - - - + @@ -384,16 +230,155 @@ Functions
GLM_FUNC_DECL vecType<T, P> glm::refract GLM_FUNC_DECL vecType<bool, P> glm::greaterThanEqual ( vecType< T, P > const & I, x,
vecType< T, P > const & N,
T const & eta y 
-

For the incident vector I and surface normal N, and the ratio of indices of refraction eta, return the refraction vector.

+

Returns the component-wise comparison of result x >= y.

Template Parameters
- +
genTypeFloating-point vector types.
vecTypeFloating-point or integer vector types.
-
See Also
GLSL refract man page
+
See also
GLSL greaterThanEqual man page
-GLSL 4.20.8 specification, section 8.5 Geometric Functions
+GLSL 4.20.8 specification, section 8.7 Vector Relational Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vecType<bool, P> glm::lessThan (vecType< T, P > const & x,
vecType< T, P > const & y 
)
+
+ +

Returns the component-wise comparison result of x < y.

+
Template Parameters
+ + +
vecTypeFloating-point or integer vector types.
+
+
+
See also
GLSL lessThan man page
+
+GLSL 4.20.8 specification, section 8.7 Vector Relational Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vecType<bool, P> glm::lessThanEqual (vecType< T, P > const & x,
vecType< T, P > const & y 
)
+
+ +

Returns the component-wise comparison of result x <= y.

+
Template Parameters
+ + +
vecTypeFloating-point or integer vector types.
+
+
+
See also
GLSL lessThanEqual man page
+
+GLSL 4.20.8 specification, section 8.7 Vector Relational Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vecType<bool, P> glm::not_ (vecType< bool, P > const & v)
+
+ +

Returns the component-wise logical complement of x.

+

/!\ Because of language incompatibilities between C++ and GLSL, GLM defines the function not but not_ instead.

+
Template Parameters
+ + +
vecTypeBoolean vector types.
+
+
+
See also
GLSL not man page
+
+GLSL 4.20.8 specification, section 8.7 Vector Relational Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vecType<bool, P> glm::notEqual (vecType< T, P > const & x,
vecType< T, P > const & y 
)
+
+ +

Returns the component-wise comparison of result x != y.

+
Template Parameters
+ + +
vecTypeFloating-point, integer or boolean vector types.
+
+
+
See also
GLSL notEqual man page
+
+GLSL 4.20.8 specification, section 8.7 Vector Relational Functions
@@ -402,7 +387,7 @@ Functions diff --git a/doc/api/a00158.html b/doc/api/a00158.html index 42fbe5c8..0e2ec44d 100644 --- a/doc/api/a00158.html +++ b/doc/api/a00158.html @@ -3,8 +3,8 @@ - -GLM: Integer functions + +0.9.6: GTC Extensions (Stable) @@ -16,9 +16,9 @@ + @@ -26,468 +26,72 @@
-
GLM -  0.9.5 +
0.9.6
- +
-Functions
+Modules
-
Integer functions
+
GTC Extensions (Stable)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

-Functions

template<typename T , template< typename > class genIUType>
GLM_FUNC_DECL genIUType< T >
-::signed_type 
bitCount (genIUType< T > const &Value)
 
template<typename genIUType >
GLM_FUNC_DECL genIUType bitfieldExtract (genIUType const &Value, int const &Offset, int const &Bits)
 
template<typename genIUType >
GLM_FUNC_DECL genIUType bitfieldInsert (genIUType const &Base, genIUType const &Insert, int const &Offset, int const &Bits)
 
template<typename genIUType >
GLM_FUNC_DECL genIUType bitfieldReverse (genIUType const &Value)
 
template<typename T , template< typename > class genIUType>
GLM_FUNC_DECL genIUType< T >
-::signed_type 
findLSB (genIUType< T > const &Value)
 
template<typename T , template< typename > class genIUType>
GLM_FUNC_DECL genIUType< T >
-::signed_type 
findMSB (genIUType< T > const &Value)
 
template<typename genIType >
GLM_FUNC_DECL void imulExtended (genIType const &x, genIType const &y, genIType &msb, genIType &lsb)
 
template<typename genUType >
GLM_FUNC_DECL genUType uaddCarry (genUType const &x, genUType const &y, genUType &carry)
 
template<typename genUType >
GLM_FUNC_DECL void umulExtended (genUType const &x, genUType const &y, genUType &msb, genUType &lsb)
 
template<typename genUType >
GLM_FUNC_DECL genUType usubBorrow (genUType const &x, genUType const &y, genUType &borrow)
 

+Modules

 GLM_GTC_bitfield
 
 GLM_GTC_constants
 
 GLM_GTC_epsilon
 
 GLM_GTC_integer
 
 GLM_GTC_matrix_access
 
 GLM_GTC_matrix_integer
 
 GLM_GTC_matrix_inverse
 
 GLM_GTC_matrix_transform
 
 GLM_GTC_noise
 
 GLM_GTC_packing
 
 GLM_GTC_quaternion
 
 GLM_GTC_random
 
 GLM_GTC_reciprocal
 
 GLM_GTC_round
 
 GLM_GTC_type_precision
 
 GLM_GTC_type_ptr
 
 GLM_GTC_ulp
 
 GLM_GTC_vec1
 

Detailed Description

-

These all operate component-wise.

-

The description is per component. The notation [a, b] means the set of bits from bit-number a through bit-number b, inclusive. The lowest-order bit is bit 0.

-

Function Documentation

- -
-
- - - - - - - - -
GLM_FUNC_DECL genIUType<T>::signed_type glm::bitCount (genIUType< T > const & Value)
-
- -

Returns the number of bits set to 1 in the binary representation of value.

-
Template Parameters
- - -
genIUTypeSigned or unsigned integer scalar or vector types.
-
-
-
See Also
GLSL bitCount man page
-
-GLSL 4.20.8 specification, section 8.8 Integer Functions
-
Todo:
Clarify the declaration to specify that scalars are suported.
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL genIUType glm::bitfieldExtract (genIUType const & Value,
int const & Offset,
int const & Bits 
)
-
- -

Extracts bits [offset, offset + bits - 1] from value, returning them in the least significant bits of the result.

-

For unsigned data types, the most significant bits of the result will be set to zero. For signed data types, the most significant bits will be set to the value of bit offset + base - 1.

-

If bits is zero, the result will be zero. The result will be undefined if offset or bits is negative, or if the sum of offset and bits is greater than the number of bits used to store the operand.

-
Template Parameters
- - -
genIUTypeSigned or unsigned integer scalar or vector types.
-
-
-
See Also
GLSL bitfieldExtract man page
-
-GLSL 4.20.8 specification, section 8.8 Integer Functions
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL genIUType glm::bitfieldInsert (genIUType const & Base,
genIUType const & Insert,
int const & Offset,
int const & Bits 
)
-
- -

Returns the insertion the bits least-significant bits of insert into base.

-

The result will have bits [offset, offset + bits - 1] taken from bits [0, bits - 1] of insert, and all other bits taken directly from the corresponding bits of base. If bits is zero, the result will simply be base. The result will be undefined if offset or bits is negative, or if the sum of offset and bits is greater than the number of bits used to store the operand.

-
Template Parameters
- - -
genIUTypeSigned or unsigned integer scalar or vector types.
-
-
-
See Also
GLSL bitfieldInsert man page
-
-GLSL 4.20.8 specification, section 8.8 Integer Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genIUType glm::bitfieldReverse (genIUType const & Value)
-
- -

Returns the reversal of the bits of value.

-

The bit numbered n of the result will be taken from bit (bits - 1) - n of value, where bits is the total number of bits used to represent value.

-
Template Parameters
- - -
genIUTypeSigned or unsigned integer scalar or vector types.
-
-
-
See Also
GLSL bitfieldReverse man page
-
-GLSL 4.20.8 specification, section 8.8 Integer Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genIUType<T>::signed_type glm::findLSB (genIUType< T > const & Value)
-
- -

Returns the bit number of the least significant bit set to 1 in the binary representation of value.

-

If value is zero, -1 will be returned.

-
Template Parameters
- - -
genIUTypeSigned or unsigned integer scalar or vector types.
-
-
-
See Also
GLSL findLSB man page
-
-GLSL 4.20.8 specification, section 8.8 Integer Functions
-
Todo:
Clarify the declaration to specify that scalars are suported.
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genIUType<T>::signed_type glm::findMSB (genIUType< T > const & Value)
-
- -

Returns the bit number of the most significant bit in the binary representation of value.

-

For positive integers, the result will be the bit number of the most significant bit set to 1. For negative integers, the result will be the bit number of the most significant bit set to 0. For a value of zero or negative one, -1 will be returned.

-
Template Parameters
- - -
genIUTypeSigned or unsigned integer scalar or vector types.
-
-
-
See Also
GLSL findMSB man page
-
-GLSL 4.20.8 specification, section 8.8 Integer Functions
-
Todo:
Clarify the declaration to specify that scalars are suported.
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL void glm::imulExtended (genIType const & x,
genIType const & y,
genIType & msb,
genIType & lsb 
)
-
- -

Multiplies 32-bit integers x and y, producing a 64-bit result.

-

The 32 least-significant bits are returned in lsb. The 32 most-significant bits are returned in msb.

-
Template Parameters
- - -
genITypeSigned integer scalar or vector types.
-
-
-
See Also
GLSL imulExtended man page
-
-GLSL 4.20.8 specification, section 8.8 Integer Functions
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL genUType glm::uaddCarry (genUType const & x,
genUType const & y,
genUType & carry 
)
-
- -

Adds 32-bit unsigned integer x and y, returning the sum modulo pow(2, 32).

-

The value carry is set to 0 if the sum was less than pow(2, 32), or to 1 otherwise.

-
Template Parameters
- - -
genUTypeUnsigned integer scalar or vector types.
-
-
-
See Also
GLSL uaddCarry man page
-
-GLSL 4.20.8 specification, section 8.8 Integer Functions
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL void glm::umulExtended (genUType const & x,
genUType const & y,
genUType & msb,
genUType & lsb 
)
-
- -

Multiplies 32-bit integers x and y, producing a 64-bit result.

-

The 32 least-significant bits are returned in lsb. The 32 most-significant bits are returned in msb.

-
Template Parameters
- - -
genUTypeUnsigned integer scalar or vector types.
-
-
-
See Also
GLSL umulExtended man page
-
-GLSL 4.20.8 specification, section 8.8 Integer Functions
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL genUType glm::usubBorrow (genUType const & x,
genUType const & y,
genUType & borrow 
)
-
- -

Subtracts the 32-bit unsigned integer y from x, returning the difference if non-negative, or pow(2, 32) plus the difference otherwise.

-

The value borrow is set to 0 if x >= y, or to 1 otherwise.

-
Template Parameters
- - -
genUTypeUnsigned integer scalar or vector types.
-
-
-
See Also
GLSL usubBorrow man page
-
-GLSL 4.20.8 specification, section 8.8 Integer Functions
- -
-
+

Functions and types that the GLSL specification doesn't define, but useful to have for a C++ program.

+

GTC extensions aim to be stable.

+

Even if it's highly unrecommended, it's possible to include all the extensions at once by including <glm/ext.hpp>. Otherwise, each extension needs to be included a specific file.

diff --git a/doc/api/a00159.html b/doc/api/a00159.html index 475d61f3..cd4f84aa 100644 --- a/doc/api/a00159.html +++ b/doc/api/a00159.html @@ -3,8 +3,8 @@ - -GLM: Matrix functions + +0.9.6: GTX Extensions (Experimental) @@ -16,9 +16,9 @@ + @@ -26,30 +26,150 @@
-
GLM -  0.9.5 +
0.9.6
- +
+
+Modules
-
Matrix functions
+
GTX Extensions (Experimental)
-

For each of the following built-in matrix functions, there is both a single-precision floating point version, where all arguments and return values are single precision, and a double-precision floating version, where all arguments and return values are double precision.

-

Only the single-precision floating point version is shown.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Modules

 GLM_GTX_associated_min_max
 
 GLM_GTX_bit
 
 GLM_GTX_closest_point
 
 GLM_GTX_color_space
 
 GLM_GTX_color_space_YCoCg
 
 GLM_GTX_common
 
 GLM_GTX_compatibility
 
 GLM_GTX_component_wise
 
 GLM_GTX_dual_quaternion
 
 GLM_GTX_euler_angles
 
 GLM_GTX_extend
 
 GLM_GTX_extented_min_max
 
 GLM_GTX_fast_exponential
 
 GLM_GTX_fast_square_root
 
 GLM_GTX_fast_trigonometry
 
 GLM_GTX_gradient_paint
 
 GLM_GTX_handed_coordinate_space
 
 GLM_GTX_integer
 
 GLM_GTX_intersect
 
 GLM_GTX_io
 
 GLM_GTX_log_base
 
 GLM_GTX_matrix_cross_product
 
 GLM_GTX_matrix_decompose
 
 GLM_GTX_matrix_interpolation
 
 GLM_GTX_matrix_major_storage
 
 GLM_GTX_matrix_operation
 
 GLM_GTX_matrix_query
 
 GLM_GTX_matrix_transform_2d
 
 GLM_GTX_mixed_producte
 
 GLM_GTX_multiple
 
 GLM_GTX_norm
 
 GLM_GTX_normal
 
 GLM_GTX_normalize_dot
 
 GLM_GTX_number_precision
 
 GLM_GTX_optimum_pow
 
 GLM_GTX_orthonormalize
 
 GLM_GTX_perpendicular
 
 GLM_GTX_polar_coordinates
 
 GLM_GTX_projection
 
 GLM_GTX_quaternion
 
 GLM_GTX_range
 
 GLM_GTX_raw_data
 
 GLM_GTX_rotate_normalized_axis
 
 GLM_GTX_rotate_vector
 
 GLM_GTX_scalar_relational
 
 GLM_GTX_simd_mat4
 
 GLM_GTX_simd_quat
 
 GLM_GTX_simd_vec4
 
 GLM_GTX_spline
 
 GLM_GTX_std_based_type
 
 GLM_GTX_string_cast
 
 GLM_GTX_transform
 
 GLM_GTX_transform2
 
 GLM_GTX_type_aligned
 
 GLM_GTX_vector_angle
 
 GLM_GTX_vector_query
 
 GLM_GTX_wrap
 
+

Detailed Description

+

Functions and types that the GLSL specification doesn't define, but useful to have for a C++ program.

+

Experimental extensions are useful functions and types, but the development of their API and functionality is not necessarily stable. They can change substantially between versions. Backwards compatibility is not much of an issue for them.

+

Even if it's highly unrecommended, it's possible to include all the extensions at once by including <glm/ext.hpp>. Otherwise, each extension needs to be included a specific file.

diff --git a/doc/api/a00160.html b/doc/api/a00160.html index 602d4953..e793c6fa 100644 --- a/doc/api/a00160.html +++ b/doc/api/a00160.html @@ -3,8 +3,8 @@ - -GLM: Noise functions + +0.9.6: GLM Core @@ -16,9 +16,9 @@ + @@ -26,164 +26,61 @@
-
GLM -  0.9.5 +
0.9.6
- +
-Functions
+Modules
-
Noise functions
+
GLM Core
- - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + +

-Functions

template<typename genType >
GLM_FUNC_DECL genType::value_type noise1 (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL detail::tvec2
-< typename genType::value_type,
-defaultp > 
noise2 (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL detail::tvec3
-< typename genType::value_type,
-defaultp > 
noise3 (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL detail::tvec4
-< typename genType::value_type,
-defaultp > 
noise4 (genType const &x)
 

+Modules

 Common functions
 
 Exponential functions
 
 Geometric functions
 
 Integer functions
 
 Matrix functions
 
 Noise functions
 
 Floating-Point Pack and Unpack Functions
 
 Angle and Trigonometry Functions
 
 Vector Relational Functions
 
 Types
 
 Precision types
 
 Template types
 

Detailed Description

-

Noise functions are stochastic functions that can be used to increase visual complexity.

-

Values returned by the following noise functions give the appearance of randomness, but are not truly random.

-

Function Documentation

- -
-
- - - - - - - - -
GLM_FUNC_DECL genType::value_type glm::noise1 (genType const & x)
-
- -

Returns a 1D noise value based on the input value x.

-
Template Parameters
- - -
genTypeFloating-point scalar or vector types.
-
-
-
See Also
GLSL noise1 man page
-
-GLSL 4.20.8 specification, section 8.13 Noise Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL detail::tvec2<typename genType::value_type, defaultp> glm::noise2 (genType const & x)
-
- -

Returns a 2D noise value based on the input value x.

-
Template Parameters
- - -
genTypeFloating-point scalar or vector types.
-
-
-
See Also
GLSL noise2 man page
-
-GLSL 4.20.8 specification, section 8.13 Noise Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL detail::tvec3<typename genType::value_type, defaultp> glm::noise3 (genType const & x)
-
- -

Returns a 3D noise value based on the input value x.

-
Template Parameters
- - -
genTypeFloating-point scalar or vector types.
-
-
-
See Also
GLSL noise3 man page
-
-GLSL 4.20.8 specification, section 8.13 Noise Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL detail::tvec4<typename genType::value_type, defaultp> glm::noise4 (genType const & x)
-
- -

Returns a 4D noise value based on the input value x.

-
Template Parameters
- - -
genTypeFloating-point scalar or vector types.
-
-
-
See Also
GLSL noise4 man page
-
-GLSL 4.20.8 specification, section 8.13 Noise Functions
- -
-
+

The core of GLM, which implements exactly and only the GLSL specification to the degree possible.

+

The GLM core consists of C++ types that mirror GLSL types and C++ functions that mirror the GLSL functions. It also includes a set of precision-based types that can be used in the appropriate functions. The C++ types are all based on a basic set of template types.

+

The best documentation for GLM Core is the current GLSL specification, version 4.2 (pdf file).

+

GLM core functionnalities require <glm/glm.hpp> to be included to be used.

diff --git a/doc/api/a00161.html b/doc/api/a00161.html index ea425517..14422e84 100644 --- a/doc/api/a00161.html +++ b/doc/api/a00161.html @@ -3,8 +3,8 @@ - -GLM: Floating-Point Pack and Unpack Functions + +0.9.6: Types @@ -16,9 +16,9 @@ + @@ -26,332 +26,774 @@
-
GLM -  0.9.5 +
0.9.6
- +
-Functions
+Modules | +Typedefs
-
Floating-Point Pack and Unpack Functions
+
Types
GLM Core
- - - - - - - - - - - - - - - - - - - - - - - - - + + + +

-Functions

GLM_FUNC_DECL double packDouble2x32 (uvec2 const &v)
 
GLM_FUNC_DECL uint packHalf2x16 (vec2 const &v)
 
GLM_FUNC_DECL uint packSnorm2x16 (vec2 const &v)
 
GLM_FUNC_DECL uint packSnorm4x8 (vec4 const &v)
 
GLM_FUNC_DECL uint packUnorm2x16 (vec2 const &v)
 
GLM_FUNC_DECL uint packUnorm4x8 (vec4 const &v)
 
GLM_FUNC_DECL uvec2 unpackDouble2x32 (double const &v)
 
GLM_FUNC_DECL vec2 unpackHalf2x16 (uint const &v)
 
GLM_FUNC_DECL vec2 unpackSnorm2x16 (uint const &p)
 
GLM_FUNC_DECL vec4 unpackSnorm4x8 (uint const &p)
 
GLM_FUNC_DECL vec2 unpackUnorm2x16 (uint const &p)
 
GLM_FUNC_DECL vec4 unpackUnorm4x8 (uint const &p)
 

+Modules

 Precision types
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Typedefs

typedef highp_bvec2 bvec2
 
typedef highp_bvec3 bvec3
 
typedef highp_bvec4 bvec4
 
typedef highp_dmat2x2 dmat2
 
typedef highp_dmat2x2 dmat2x2
 
typedef highp_dmat2x3 dmat2x3
 
typedef highp_dmat2x4 dmat2x4
 
typedef highp_dmat3x3 dmat3
 
typedef highp_dmat3x2 dmat3x2
 
typedef highp_dmat3x3 dmat3x3
 
typedef highp_dmat3x4 dmat3x4
 
typedef highp_dmat4x4 dmat4
 
typedef highp_dmat4x2 dmat4x2
 
typedef highp_dmat4x3 dmat4x3
 
typedef highp_dmat4x4 dmat4x4
 
typedef highp_dvec2 dvec2
 
typedef highp_dvec3 dvec3
 
typedef highp_dvec4 dvec4
 
typedef highp_ivec2 ivec2
 
typedef highp_ivec3 ivec3
 
typedef highp_ivec4 ivec4
 
typedef mat2x2 mat2
 
typedef highp_mat2x2 mat2x2
 
typedef highp_mat2x3 mat2x3
 
typedef highp_mat2x4 mat2x4
 
typedef mat3x3 mat3
 
typedef highp_mat3x2 mat3x2
 
typedef highp_mat3x3 mat3x3
 
typedef highp_mat3x4 mat3x4
 
typedef mat4x4 mat4
 
typedef highp_mat4x2 mat4x2
 
typedef highp_mat4x3 mat4x3
 
typedef highp_mat4x4 mat4x4
 
typedef highp_uvec2 uvec2
 
typedef highp_uvec3 uvec3
 
typedef highp_uvec4 uvec4
 
typedef highp_vec2 vec2
 
typedef highp_vec3 vec3
 
typedef highp_vec4 vec4
 

Detailed Description

-

These functions do not operate component-wise, rather as described in each case.

-

Function Documentation

- +

The standard types defined by the specification.

+

These types are all typedefs of more generalized, template types. To see the definiton of these template types, go to Template types.

+

Typedef Documentation

+
- - - - - +
GLM_FUNC_DECL double glm::packDouble2x32 (uvec2 const & v)typedef highp_bvec2 bvec2
-

Returns a double-precision value obtained by packing the components of v into a 64-bit value.

-

If an IEEE 754 Inf or NaN is created, it will not signal, and the resulting floating point value is unspecified. Otherwise, the bit- level representation of v is preserved. The first vector component specifies the 32 least significant bits; the second component specifies the 32 most significant bits.

-
See Also
GLSL packDouble2x32 man page
-
-GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+

2 components vector of boolean.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+ +

Definition at line 504 of file type_vec.hpp.

- +
- - - - - +
GLM_FUNC_DECL uint glm::packHalf2x16 (vec2 const & v)typedef highp_bvec3 bvec3
-

Returns an unsigned integer obtained by converting the components of a two-component floating-point vector to the 16-bit floating-point representation found in the OpenGL Specification, and then packing these two 16- bit integers into a 32-bit unsigned integer.

-

The first vector component specifies the 16 least-significant bits of the result; the second component specifies the 16 most-significant bits.

-
See Also
GLSL packHalf2x16 man page
-
-GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+

3 components vector of boolean.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+ +

Definition at line 509 of file type_vec.hpp.

- +
- - - - - +
GLM_FUNC_DECL uint glm::packSnorm2x16 (vec2 const & v)typedef highp_bvec4 bvec4
-

First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values.

-

Then, the results are packed into the returned 32-bit unsigned integer.

-

The conversion for component c of v to fixed point is done as follows: packSnorm2x16: round(clamp(v, -1, +1) * 32767.0)

-

The first component of the vector will be written to the least significant bits of the output; the last component will be written to the most significant bits.

-
See Also
GLSL packSnorm2x16 man page
-
-GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+

4 components vector of boolean.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+ +

Definition at line 514 of file type_vec.hpp.

- +
- - - - - +
GLM_FUNC_DECL uint glm::packSnorm4x8 (vec4 const & v)typedef highp_dmat2x2 dmat2
-

First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values.

-

Then, the results are packed into the returned 32-bit unsigned integer.

-

The conversion for component c of v to fixed point is done as follows: packSnorm4x8: round(clamp(c, -1, +1) * 127.0)

-

The first component of the vector will be written to the least significant bits of the output; the last component will be written to the most significant bits.

-
See Also
GLSL packSnorm4x8 man page
-
-GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+

2 * 2 matrix of double-precision floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+ +

Definition at line 733 of file type_mat.hpp.

- +
- - - - - +
GLM_FUNC_DECL uint glm::packUnorm2x16 (vec2 const & v)typedef highp_dmat2x2 dmat2x2
-

First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values.

-

Then, the results are packed into the returned 32-bit unsigned integer.

-

The conversion for component c of v to fixed point is done as follows: packUnorm2x16: round(clamp(c, 0, +1) * 65535.0)

-

The first component of the vector will be written to the least significant bits of the output; the last component will be written to the most significant bits.

-
See Also
GLSL packUnorm2x16 man page
-
-GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+

2 * 2 matrix of double-precision floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+ +

Definition at line 748 of file type_mat.hpp.

- +
- - - - - +
GLM_FUNC_DECL uint glm::packUnorm4x8 (vec4 const & v)typedef highp_dmat2x3 dmat2x3
-

First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values.

-

Then, the results are packed into the returned 32-bit unsigned integer.

-

The conversion for component c of v to fixed point is done as follows: packUnorm4x8: round(clamp(c, 0, +1) * 255.0)

-

The first component of the vector will be written to the least significant bits of the output; the last component will be written to the most significant bits.

-
See Also
GLSL packUnorm4x8 man page
-
-GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+

2 * 3 matrix of double-precision floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+ +

Definition at line 753 of file type_mat.hpp.

- +
- - - - - +
GLM_FUNC_DECL uvec2 glm::unpackDouble2x32 (double const & v)typedef highp_dmat2x4 dmat2x4
-

Returns a two-component unsigned integer vector representation of v.

-

The bit-level representation of v is preserved. The first component of the vector contains the 32 least significant bits of the double; the second component consists the 32 most significant bits.

-
See Also
GLSL unpackDouble2x32 man page
-
-GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+

2 * 4 matrix of double-precision floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+ +

Definition at line 758 of file type_mat.hpp.

- +
- - - - - +
GLM_FUNC_DECL vec2 glm::unpackHalf2x16 (uint const & v)typedef highp_dmat3x3 dmat3
-

Returns a two-component floating-point vector with components obtained by unpacking a 32-bit unsigned integer into a pair of 16-bit values, interpreting those values as 16-bit floating-point numbers according to the OpenGL Specification, and converting them to 32-bit floating-point values.

-

The first component of the vector is obtained from the 16 least-significant bits of v; the second component is obtained from the 16 most-significant bits of v.

-
See Also
GLSL unpackHalf2x16 man page
-
-GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+

3 * 3 matrix of double-precision floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+ +

Definition at line 738 of file type_mat.hpp.

- +
- - - - - +
GLM_FUNC_DECL vec2 glm::unpackSnorm2x16 (uint const & p)typedef highp_dmat3x2 dmat3x2
-

First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers.

-

Then, each component is converted to a normalized floating-point value to generate the returned two- or four-component vector.

-

The conversion for unpacked fixed-point value f to floating point is done as follows: unpackSnorm2x16: clamp(f / 32767.0, -1, +1)

-

The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.

-
See Also
GLSL unpackSnorm2x16 man page
-
-GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+

3 * 2 matrix of double-precision floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+ +

Definition at line 763 of file type_mat.hpp.

- +
- - - - - +
GLM_FUNC_DECL vec4 glm::unpackSnorm4x8 (uint const & p)typedef highp_dmat3x3 dmat3x3
-

First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers.

-

Then, each component is converted to a normalized floating-point value to generate the returned two- or four-component vector.

-

The conversion for unpacked fixed-point value f to floating point is done as follows: unpackSnorm4x8: clamp(f / 127.0, -1, +1)

-

The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.

-
See Also
GLSL unpackSnorm4x8 man page
-
-GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+

3 * 3 matrix of double-precision floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+ +

Definition at line 768 of file type_mat.hpp.

- +
- - - - - +
GLM_FUNC_DECL vec2 glm::unpackUnorm2x16 (uint const & p)typedef highp_dmat3x4 dmat3x4
-

First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers.

-

Then, each component is converted to a normalized floating-point value to generate the returned two- or four-component vector.

-

The conversion for unpacked fixed-point value f to floating point is done as follows: unpackUnorm2x16: f / 65535.0

-

The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.

-
See Also
GLSL unpackUnorm2x16 man page
-
-GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+

3 * 4 matrix of double-precision floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+ +

Definition at line 773 of file type_mat.hpp.

- +
- - - - - +
GLM_FUNC_DECL vec4 glm::unpackUnorm4x8 (uint const & p)typedef highp_dmat4x4 dmat4
-

First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers.

-

Then, each component is converted to a normalized floating-point value to generate the returned two- or four-component vector.

-

The conversion for unpacked fixed-point value f to floating point is done as follows: unpackUnorm4x8: f / 255.0

-

The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.

-
See Also
GLSL unpackUnorm4x8 man page
-
-GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+

4 * 4 matrix of double-precision floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+ +

Definition at line 743 of file type_mat.hpp.

+ +
+
+ +
+
+ + + + +
typedef highp_dmat4x2 dmat4x2
+
+ +

4 * 2 matrix of double-precision floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+ +

Definition at line 778 of file type_mat.hpp.

+ +
+
+ +
+
+ + + + +
typedef highp_dmat4x3 dmat4x3
+
+ +

4 * 3 matrix of double-precision floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+ +

Definition at line 783 of file type_mat.hpp.

+ +
+
+ +
+
+ + + + +
typedef highp_dmat4x4 dmat4x4
+
+ +

4 * 4 matrix of double-precision floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+ +

Definition at line 788 of file type_mat.hpp.

+ +
+
+ +
+
+ + + + +
typedef highp_dvec2 dvec2
+
+ +

2 components vector of double-precision floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+ +

Definition at line 420 of file type_vec.hpp.

+ +
+
+ +
+
+ + + + +
typedef highp_dvec3 dvec3
+
+ +

3 components vector of double-precision floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+ +

Definition at line 425 of file type_vec.hpp.

+ +
+
+ +
+
+ + + + +
typedef highp_dvec4 dvec4
+
+ +

4 components vector of double-precision floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+ +

Definition at line 430 of file type_vec.hpp.

+ +
+
+ +
+
+ + + + +
typedef highp_ivec2 ivec2
+
+ +

2 components vector of signed integer numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+ +

Definition at line 448 of file type_vec.hpp.

+ +
+
+ +
+
+ + + + +
typedef highp_ivec3 ivec3
+
+ +

3 components vector of signed integer numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+ +

Definition at line 453 of file type_vec.hpp.

+ +
+
+ +
+
+ + + + +
typedef highp_ivec4 ivec4
+
+ +

4 components vector of signed integer numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+ +

Definition at line 458 of file type_vec.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat2x2 mat2
+
+ +

2 columns of 2 components matrix of floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+ +

Definition at line 432 of file type_mat.hpp.

+ +
+
+ +
+
+ + + + +
typedef highp_mat2x2 mat2x2
+
+ +

2 columns of 2 components matrix of floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+ +

Definition at line 385 of file type_mat.hpp.

+ +
+
+ +
+
+ + + + +
typedef highp_mat2x3 mat2x3
+
+ +

2 columns of 3 components matrix of floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+ +

Definition at line 390 of file type_mat.hpp.

+ +
+
+ +
+
+ + + + +
typedef highp_mat2x4 mat2x4
+
+ +

2 columns of 4 components matrix of floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+ +

Definition at line 395 of file type_mat.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat3x3 mat3
+
+ +

3 columns of 3 components matrix of floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+ +

Definition at line 437 of file type_mat.hpp.

+ +
+
+ +
+
+ + + + +
typedef highp_mat3x2 mat3x2
+
+ +

3 columns of 2 components matrix of floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+ +

Definition at line 400 of file type_mat.hpp.

+ +
+
+ +
+
+ + + + +
typedef highp_mat3x3 mat3x3
+
+ +

3 columns of 3 components matrix of floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+ +

Definition at line 405 of file type_mat.hpp.

+ +
+
+ +
+
+ + + + +
typedef highp_mat3x4 mat3x4
+
+ +

3 columns of 4 components matrix of floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+ +

Definition at line 410 of file type_mat.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat4x4 mat4
+
+ +

4 columns of 4 components matrix of floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+ +

Definition at line 442 of file type_mat.hpp.

+ +
+
+ +
+
+ + + + +
typedef highp_mat4x2 mat4x2
+
+ +

4 columns of 2 components matrix of floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+ +

Definition at line 415 of file type_mat.hpp.

+ +
+
+ +
+
+ + + + +
typedef highp_mat4x3 mat4x3
+
+ +

4 columns of 3 components matrix of floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+ +

Definition at line 420 of file type_mat.hpp.

+ +
+
+ +
+
+ + + + +
typedef highp_mat4x4 mat4x4
+
+ +

4 columns of 4 components matrix of floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+ +

Definition at line 425 of file type_mat.hpp.

+ +
+
+ +
+
+ + + + +
typedef highp_uvec2 uvec2
+
+ +

2 components vector of unsigned integer numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+ +

Definition at line 476 of file type_vec.hpp.

+ +
+
+ +
+
+ + + + +
typedef highp_uvec3 uvec3
+
+ +

3 components vector of unsigned integer numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+ +

Definition at line 481 of file type_vec.hpp.

+ +
+
+ +
+
+ + + + +
typedef highp_uvec4 uvec4
+
+ +

4 components vector of unsigned integer numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+ +

Definition at line 486 of file type_vec.hpp.

+ +
+
+ +
+
+ + + + +
typedef highp_vec2 vec2
+
+ +

2 components vector of floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+ +

Definition at line 392 of file type_vec.hpp.

+ +
+
+ +
+
+ + + + +
typedef highp_vec3 vec3
+
+ +

3 components vector of floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+ +

Definition at line 397 of file type_vec.hpp.

+ +
+
+ +
+
+ + + + +
typedef highp_vec4 vec4
+
+ +

4 components vector of floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+ +

Definition at line 402 of file type_vec.hpp.

@@ -360,7 +802,7 @@ Functions diff --git a/doc/api/a00162.html b/doc/api/a00162.html index e4b7706f..e1fdeb42 100644 --- a/doc/api/a00162.html +++ b/doc/api/a00162.html @@ -3,8 +3,8 @@ - -GLM: Angle and Trigonometry Functions + +0.9.6: Precision types @@ -16,9 +16,9 @@ + @@ -26,500 +26,2793 @@
-
GLM -  0.9.5 +
0.9.6
- +
-Functions
+Typedefs
-
Angle and Trigonometry Functions
+
Precision types
GLM CoreGLM Core » | Types
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

-Functions

template<typename genType >
GLM_FUNC_DECL genType acos (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType acosh (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType asin (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType asinh (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType atan (genType const &y, genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType atan (genType const &y_over_x)
 
template<typename genType >
GLM_FUNC_DECL genType atanh (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType cos (genType const &angle)
 
template<typename genType >
GLM_FUNC_DECL genType cosh (genType const &angle)
 
template<typename genType >
GLM_FUNC_DECL genType degrees (genType const &radians)
 
template<typename genType >
GLM_FUNC_DECL genType radians (genType const &degrees)
 
template<typename genType >
GLM_FUNC_DECL genType sin (genType const &angle)
 
template<typename genType >
GLM_FUNC_DECL genType sinh (genType const &angle)
 
template<typename genType >
GLM_FUNC_DECL genType tan (genType const &angle)
 
template<typename genType >
GLM_FUNC_DECL genType tanh (genType const &angle)
 

+Typedefs

typedef tvec2< bool, highp > highp_bvec2
 
typedef tvec3< bool, highp > highp_bvec3
 
typedef tvec4< bool, highp > highp_bvec4
 
typedef tmat2x2< double, highp > highp_dmat2
 
typedef tmat2x2< double, highp > highp_dmat2x2
 
typedef tmat2x3< double, highp > highp_dmat2x3
 
typedef tmat2x4< double, highp > highp_dmat2x4
 
typedef tmat3x3< double, highp > highp_dmat3
 
typedef tmat3x2< double, highp > highp_dmat3x2
 
typedef tmat3x3< double, highp > highp_dmat3x3
 
typedef tmat3x4< double, highp > highp_dmat3x4
 
typedef tmat4x4< double, highp > highp_dmat4
 
typedef tmat4x2< double, highp > highp_dmat4x2
 
typedef tmat4x3< double, highp > highp_dmat4x3
 
typedef tmat4x4< double, highp > highp_dmat4x4
 
typedef tvec2< double, highp > highp_dvec2
 
typedef tvec3< double, highp > highp_dvec3
 
typedef tvec4< double, highp > highp_dvec4
 
typedef highp_float_t highp_float
 
typedef detail::highp_int_t highp_int
 
typedef tvec2< int, highp > highp_ivec2
 
typedef tvec3< int, highp > highp_ivec3
 
typedef tvec4< int, highp > highp_ivec4
 
typedef tmat2x2< float, highp > highp_mat2
 
typedef tmat2x2< float, highp > highp_mat2x2
 
typedef tmat2x3< float, highp > highp_mat2x3
 
typedef tmat2x4< float, highp > highp_mat2x4
 
typedef tmat3x3< float, highp > highp_mat3
 
typedef tmat3x2< float, highp > highp_mat3x2
 
typedef tmat3x3< float, highp > highp_mat3x3
 
typedef tmat3x4< float, highp > highp_mat3x4
 
typedef tmat4x4< float, highp > highp_mat4
 
typedef tmat4x2< float, highp > highp_mat4x2
 
typedef tmat4x3< float, highp > highp_mat4x3
 
typedef tmat4x4< float, highp > highp_mat4x4
 
typedef detail::highp_uint_t highp_uint
 
typedef tvec2< uint, highp > highp_uvec2
 
typedef tvec3< uint, highp > highp_uvec3
 
typedef tvec4< uint, highp > highp_uvec4
 
typedef tvec2< float, highp > highp_vec2
 
typedef tvec3< float, highp > highp_vec3
 
typedef tvec4< float, highp > highp_vec4
 
typedef tvec2< bool, lowp > lowp_bvec2
 
typedef tvec3< bool, lowp > lowp_bvec3
 
typedef tvec4< bool, lowp > lowp_bvec4
 
typedef tmat2x2< double, lowp > lowp_dmat2
 
typedef tmat2x2< double, lowp > lowp_dmat2x2
 
typedef tmat2x3< double, lowp > lowp_dmat2x3
 
typedef tmat2x4< double, lowp > lowp_dmat2x4
 
typedef tmat3x3< float, lowp > lowp_dmat3
 
typedef tmat3x2< double, lowp > lowp_dmat3x2
 
typedef tmat3x3< double, lowp > lowp_dmat3x3
 
typedef tmat3x4< double, lowp > lowp_dmat3x4
 
typedef tmat4x4< double, lowp > lowp_dmat4
 
typedef tmat4x2< double, lowp > lowp_dmat4x2
 
typedef tmat4x3< double, lowp > lowp_dmat4x3
 
typedef tmat4x4< double, lowp > lowp_dmat4x4
 
typedef tvec2< double, lowp > lowp_dvec2
 
typedef tvec3< double, lowp > lowp_dvec3
 
typedef tvec4< double, lowp > lowp_dvec4
 
typedef lowp_float_t lowp_float
 
typedef detail::lowp_int_t lowp_int
 
typedef tvec2< int, lowp > lowp_ivec2
 
typedef tvec3< int, lowp > lowp_ivec3
 
typedef tvec4< int, lowp > lowp_ivec4
 
typedef tmat2x2< float, lowp > lowp_mat2
 
typedef tmat2x2< float, lowp > lowp_mat2x2
 
typedef tmat2x3< float, lowp > lowp_mat2x3
 
typedef tmat2x4< float, lowp > lowp_mat2x4
 
typedef tmat3x3< float, lowp > lowp_mat3
 
typedef tmat3x2< float, lowp > lowp_mat3x2
 
typedef tmat3x3< float, lowp > lowp_mat3x3
 
typedef tmat3x4< float, lowp > lowp_mat3x4
 
typedef tmat4x4< float, lowp > lowp_mat4
 
typedef tmat4x2< float, lowp > lowp_mat4x2
 
typedef tmat4x3< float, lowp > lowp_mat4x3
 
typedef tmat4x4< float, lowp > lowp_mat4x4
 
typedef detail::lowp_uint_t lowp_uint
 
typedef tvec2< uint, lowp > lowp_uvec2
 
typedef tvec3< uint, lowp > lowp_uvec3
 
typedef tvec4< uint, lowp > lowp_uvec4
 
typedef tvec2< float, lowp > lowp_vec2
 
typedef tvec3< float, lowp > lowp_vec3
 
typedef tvec4< float, lowp > lowp_vec4
 
typedef tvec2< bool, mediump > mediump_bvec2
 
typedef tvec3< bool, mediump > mediump_bvec3
 
typedef tvec4< bool, mediump > mediump_bvec4
 
typedef tmat2x2< double, mediump > mediump_dmat2
 
typedef tmat2x2< double, mediump > mediump_dmat2x2
 
typedef tmat2x3< double, mediump > mediump_dmat2x3
 
typedef tmat2x4< double, mediump > mediump_dmat2x4
 
typedef tmat3x3< double, mediump > mediump_dmat3
 
typedef tmat3x2< double, mediump > mediump_dmat3x2
 
typedef tmat3x3< double, mediump > mediump_dmat3x3
 
typedef tmat3x4< double, mediump > mediump_dmat3x4
 
typedef tmat4x4< double, mediump > mediump_dmat4
 
typedef tmat4x2< double, mediump > mediump_dmat4x2
 
typedef tmat4x3< double, mediump > mediump_dmat4x3
 
typedef tmat4x4< double, mediump > mediump_dmat4x4
 
typedef tvec2< double, mediump > mediump_dvec2
 
typedef tvec3< double, mediump > mediump_dvec3
 
typedef tvec4< double, mediump > mediump_dvec4
 
typedef mediump_float_t mediump_float
 
typedef detail::mediump_int_t mediump_int
 
typedef tvec2< int, mediump > mediump_ivec2
 
typedef tvec3< int, mediump > mediump_ivec3
 
typedef tvec4< int, mediump > mediump_ivec4
 
typedef tmat2x2< float, mediump > mediump_mat2
 
typedef tmat2x2< float, mediump > mediump_mat2x2
 
typedef tmat2x3< float, mediump > mediump_mat2x3
 
typedef tmat2x4< float, mediump > mediump_mat2x4
 
typedef tmat3x3< float, mediump > mediump_mat3
 
typedef tmat3x2< float, mediump > mediump_mat3x2
 
typedef tmat3x3< float, mediump > mediump_mat3x3
 
typedef tmat3x4< float, mediump > mediump_mat3x4
 
typedef tmat4x4< float, mediump > mediump_mat4
 
typedef tmat4x2< float, mediump > mediump_mat4x2
 
typedef tmat4x3< float, mediump > mediump_mat4x3
 
typedef tmat4x4< float, mediump > mediump_mat4x4
 
typedef detail::mediump_uint_t mediump_uint
 
typedef tvec2< uint, mediump > mediump_uvec2
 
typedef tvec3< uint, mediump > mediump_uvec3
 
typedef tvec4< uint, mediump > mediump_uvec4
 
typedef tvec2< float, mediump > mediump_vec2
 
typedef tvec3< float, mediump > mediump_vec3
 
typedef tvec4< float, mediump > mediump_vec4
 
typedef unsigned int uint
 

Detailed Description

-

Function parameters specified as angle are assumed to be in units of radians.

-

In no case will any of these functions result in a divide by zero error. If the divisor of a ratio is 0, then results will be undefined.

-

These all operate component-wise. The description is per component.

-

Function Documentation

- +

Non-GLSL types that are used to define precision-based types.

+

The GLSL language allows the user to define the precision of a particular variable. In OpenGL's GLSL, these precision qualifiers have no effect; they are there for compatibility with OpenGL ES's precision qualifiers, where they do have an effect.

+

C++ has no language equivalent to precision qualifiers. So GLM provides the next-best thing: a number of typedefs of the Template types that use a particular precision.

+

None of these types make any guarantees about the actual precision used.

+

Typedef Documentation

+
- - - - - +
GLM_FUNC_DECL genType glm::acos (genType const & x)typedef tvec2<bool, highp> highp_bvec2
-

Arc cosine.

-

Returns an angle whose sine is x. The range of values returned by this function is [0, PI]. Results are undefined if |x| > 1.

-
Template Parameters
- - -
genTypeFloating-point scalar or vector types.
-
-
-
See Also
GLSL acos man page
+

2 components vector of high precision bool numbers.

+

There is no guarantee on the actual precision.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 153 of file type_vec.hpp.

- +
- - - - - +
GLM_FUNC_DECL genType glm::acosh (genType const & x)typedef tvec3<bool, highp> highp_bvec3
-

Arc hyperbolic cosine; returns the non-negative inverse of cosh.

-

Results are undefined if x < 1.

-
Template Parameters
- - -
genTypeFloating-point scalar or vector types.
-
-
-
See Also
GLSL acosh man page
+

3 components vector of high precision bool numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 263 of file type_vec.hpp.

- +
- - - - - +
GLM_FUNC_DECL genType glm::asin (genType const & x)typedef tvec4<bool, highp> highp_bvec4
-

Arc sine.

-

Returns an angle whose sine is x. The range of values returned by this function is [-PI/2, PI/2]. Results are undefined if |x| > 1.

-
Template Parameters
- - -
genTypeFloating-point scalar or vector types.
-
-
-
See Also
GLSL asin man page
+

4 components vector of high precision bool numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 358 of file type_vec.hpp.

- +
- - - - - +
GLM_FUNC_DECL genType glm::asinh (genType const & x)typedef tmat2x2<double, highp> highp_dmat2
-

Arc hyperbolic sine; returns the inverse of sinh.

-
Template Parameters
- - -
genTypeFloating-point scalar or vector types.
-
-
-
See Also
GLSL asinh man page
+

2 columns of 2 components matrix of high precision floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 466 of file type_mat.hpp.

- +
- - - - - - - - - - - - - - - +
GLM_FUNC_DECL genType glm::atan (genType const & y,
genType const & x 
)typedef tmat2x2<double, highp> highp_dmat2x2
-

Arc tangent.

-

Returns an angle whose tangent is y/x. The signs of x and y are used to determine what quadrant the angle is in. The range of values returned by this function is [-PI, PI]. Results are undefined if x and y are both 0.

-
Template Parameters
- - -
genTypeFloating-point scalar or vector types.
-
-
-
See Also
GLSL atan man page
+

2 columns of 2 components matrix of high precision floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
-

Referenced by glm::atan2().

+

Definition at line 484 of file type_mat.hpp.

- +
- - - - - +
GLM_FUNC_DECL genType glm::atan (genType const & y_over_x)typedef tmat2x3<double, highp> highp_dmat2x3
-

Arc tangent.

-

Returns an angle whose tangent is y_over_x. The range of values returned by this function is [-PI/2, PI/2].

-
Template Parameters
- - -
genTypeFloating-point scalar or vector types.
-
-
-
See Also
GLSL atan man page
+

2 columns of 3 components matrix of high precision floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 507 of file type_mat.hpp.

- +
- - - - - +
GLM_FUNC_DECL genType glm::atanh (genType const & x)typedef tmat2x4<double, highp> highp_dmat2x4
-

Arc hyperbolic tangent; returns the inverse of tanh.

-

Results are undefined if abs(x) >= 1.

-
Template Parameters
- - -
genTypeFloating-point scalar or vector types.
-
-
-
See Also
GLSL atanh man page
+

2 columns of 4 components matrix of high precision floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 530 of file type_mat.hpp.

- +
- - - - - +
GLM_FUNC_DECL genType glm::cos (genType const & angle)typedef tmat3x3<double, highp> highp_dmat3
-

The standard trigonometric cosine function.

-

The values returned by this function will range from [-1, 1].

-
Template Parameters
- - -
genTypeFloating-point scalar or vector types.
-
-
-
See Also
GLSL cos man page
+

3 columns of 3 components matrix of high precision floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 576 of file type_mat.hpp.

- +
- - - - - +
GLM_FUNC_DECL genType glm::cosh (genType const & angle)typedef tmat3x2<double, highp> highp_dmat3x2
-

Returns the hyperbolic cosine function, (exp(x) + exp(-x)) / 2.

-
Template Parameters
- - -
genTypeFloating-point scalar or vector types.
-
-
-
See Also
GLSL cosh man page
+

3 columns of 2 components matrix of high precision floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 553 of file type_mat.hpp.

- +
- - - - - +
GLM_FUNC_DECL genType glm::degrees (genType const & radians)typedef tmat3x3<double, highp> highp_dmat3x3
-

Converts radians to degrees and returns the result.

-
Template Parameters
- - -
genTypeFloating-point scalar or vector types.
-
-
-
See Also
GLSL degrees man page
+

3 columns of 3 components matrix of high precision floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 594 of file type_mat.hpp.

- +
- - - - - +
GLM_FUNC_DECL genType glm::radians (genType const & degrees)typedef tmat3x4<double, highp> highp_dmat3x4
-

Converts degrees to radians and returns the result.

-
Template Parameters
- - -
genTypeFloating-point scalar or vector types.
-
-
-
See Also
GLSL radians man page
+

3 columns of 4 components matrix of high precision floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 617 of file type_mat.hpp.

- +
- - - - - +
GLM_FUNC_DECL genType glm::sin (genType const & angle)typedef tmat4x4<double, highp> highp_dmat4
-

The standard trigonometric sine function.

-

The values returned by this function will range from [-1, 1].

-
Template Parameters
- - -
genTypeFloating-point scalar or vector types.
-
-
-
See Also
GLSL sin man page
+

4 columns of 4 components matrix of high precision floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 686 of file type_mat.hpp.

- +
- - - - - +
GLM_FUNC_DECL genType glm::sinh (genType const & angle)typedef tmat4x2<double, highp> highp_dmat4x2
-

Returns the hyperbolic sine function, (exp(x) - exp(-x)) / 2.

-
Template Parameters
- - -
genTypeFloating-point scalar or vector types.
-
-
-
See Also
GLSL sinh man page
+

4 columns of 2 components matrix of high precision floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 640 of file type_mat.hpp.

- +
- - - - - +
GLM_FUNC_DECL genType glm::tan (genType const & angle)typedef tmat4x3<double, highp> highp_dmat4x3
-

The standard trigonometric tangent function.

-
Template Parameters
- - -
genTypeFloating-point scalar or vector types.
-
-
-
See Also
GLSL tan man page
+

4 columns of 3 components matrix of high precision floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 663 of file type_mat.hpp.

- +
- - - - - +
GLM_FUNC_DECL genType glm::tanh (genType const & angle)typedef tmat4x4<double, highp> highp_dmat4x4
-

Returns the hyperbolic tangent function, sinh(angle) / cosh(angle)

-
Template Parameters
- - -
genTypeFloating-point scalar or vector types.
-
-
-
See Also
GLSL tanh man page
+

4 columns of 4 components matrix of high precision floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 704 of file type_mat.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec2<double, highp> highp_dvec2
+
+ +

2 components vector of high double-precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 90 of file type_vec.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec3<double, highp> highp_dvec3
+
+ +

3 components vector of high double-precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 201 of file type_vec.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec4<double, highp> highp_dvec4
+
+ +

4 components vector of high double-precision floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 304 of file type_vec.hpp.

+ +
+
+ +
+
+ + + + +
typedef highp_float_t highp_float
+
+ +

High precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also
GLSL 4.20.8 specification, section 4.1.4 Floats
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 70 of file type_float.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::highp_int_t highp_int
+
+ +

High precision signed integer.

+

There is no guarantee on the actual precision.

+
See also
GLSL 4.20.8 specification, section 4.1.3 Integers
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 256 of file type_int.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec2<int, highp> highp_ivec2
+
+ +

2 components vector of high precision signed integer numbers.

+

There is no guarantee on the actual precision.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 111 of file type_vec.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec3<int, highp> highp_ivec3
+
+ +

3 components vector of high precision signed integer numbers.

+

There is no guarantee on the actual precision.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 222 of file type_vec.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec4<int, highp> highp_ivec4
+
+ +

4 components vector of high precision signed integer numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 322 of file type_vec.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat2x2< float, highp > highp_mat2
+
+ +

2 columns of 2 components matrix of high precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 79 of file type_mat.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat2x2< float, highp > highp_mat2x2
+
+ +

2 columns of 2 components matrix of high precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 100 of file type_mat.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat2x3< float, highp > highp_mat2x3
+
+ +

2 columns of 3 components matrix of high precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 126 of file type_mat.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat2x4< float, highp > highp_mat2x4
+
+ +

2 columns of 4 components matrix of high precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 152 of file type_mat.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat3x3< float, highp > highp_mat3
+
+ +

3 columns of 3 components matrix of high precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 204 of file type_mat.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat3x2< float, highp > highp_mat3x2
+
+ +

3 columns of 2 components matrix of high precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 178 of file type_mat.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat3x3< float, highp > highp_mat3x3
+
+ +

3 columns of 3 components matrix of high precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 225 of file type_mat.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat3x4< float, highp > highp_mat3x4
+
+ +

3 columns of 4 components matrix of high precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 251 of file type_mat.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat4x4< float, highp > highp_mat4
+
+ +

4 columns of 4 components matrix of high precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 330 of file type_mat.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat4x2< float, highp > highp_mat4x2
+
+ +

4 columns of 2 components matrix of high precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 277 of file type_mat.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat4x3< float, highp > highp_mat4x3
+
+ +

4 columns of 3 components matrix of high precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 303 of file type_mat.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat4x4< float, highp > highp_mat4x4
+
+ +

4 columns of 4 components matrix of high precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 351 of file type_mat.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::highp_uint_t highp_uint
+
+ +

High precision unsigned integer.

+

There is no guarantee on the actual precision.

+
See also
GLSL 4.20.8 specification, section 4.1.3 Integers
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 277 of file type_int.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec2<uint, highp> highp_uvec2
+
+ +

2 components vector of high precision unsigned integer numbers.

+

There is no guarantee on the actual precision.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 132 of file type_vec.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec3<uint, highp> highp_uvec3
+
+ +

3 components vector of high precision unsigned integer numbers.

+

There is no guarantee on the actual precision.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 243 of file type_vec.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec4<uint, highp> highp_uvec4
+
+ +

4 components vector of high precision unsigned integer numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 340 of file type_vec.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec2< float, highp > highp_vec2
+
+ +

2 components vector of high single-precision floating-point numbers.

+

High Single-precision floating-point vector of 2 components.

+

There is no guarantee on the actual precision.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+
+GLM_GTC_type_precision
+ +

Definition at line 69 of file type_vec.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec3< float, highp > highp_vec3
+
+ +

3 components vector of high single-precision floating-point numbers.

+

High Single-precision floating-point vector of 3 components.

+

There is no guarantee on the actual precision.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+
+GLM_GTC_type_precision
+ +

Definition at line 180 of file type_vec.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec4< float, highp > highp_vec4
+
+ +

4 components vector of high single-precision floating-point numbers.

+

High Single-precision floating-point vector of 4 components.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+
+GLM_GTC_type_precision
+ +

Definition at line 286 of file type_vec.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec2<bool, lowp> lowp_bvec2
+
+ +

2 components vector of low precision bool numbers.

+

There is no guarantee on the actual precision.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 167 of file type_vec.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec3<bool, lowp> lowp_bvec3
+
+ +

3 components vector of low precision bool numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 275 of file type_vec.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec4<bool, lowp> lowp_bvec4
+
+ +

4 components vector of low precision bool numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 370 of file type_vec.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat2x2<double, lowp> lowp_dmat2
+
+ +

2 columns of 2 components matrix of low precision floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 454 of file type_mat.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat2x2<double, lowp> lowp_dmat2x2
+
+ +

2 columns of 2 components matrix of low precision floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 472 of file type_mat.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat2x3<double, lowp> lowp_dmat2x3
+
+ +

2 columns of 3 components matrix of low precision floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 495 of file type_mat.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat2x4<double, lowp> lowp_dmat2x4
+
+ +

2 columns of 4 components matrix of low precision floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 518 of file type_mat.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat3x3<float, lowp> lowp_dmat3
+
+ +

3 columns of 3 components matrix of low precision floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 564 of file type_mat.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat3x2<double, lowp> lowp_dmat3x2
+
+ +

3 columns of 2 components matrix of low precision floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 541 of file type_mat.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat3x3<double, lowp> lowp_dmat3x3
+
+ +

3 columns of 3 components matrix of low precision floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 582 of file type_mat.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat3x4<double, lowp> lowp_dmat3x4
+
+ +

3 columns of 4 components matrix of low precision floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 605 of file type_mat.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat4x4<double, lowp> lowp_dmat4
+
+ +

4 columns of 4 components matrix of low precision floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 674 of file type_mat.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat4x2<double, lowp> lowp_dmat4x2
+
+ +

4 columns of 2 components matrix of low precision floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 628 of file type_mat.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat4x3<double, lowp> lowp_dmat4x3
+
+ +

4 columns of 3 components matrix of low precision floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 651 of file type_mat.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat4x4<double, lowp> lowp_dmat4x4
+
+ +

4 columns of 4 components matrix of low precision floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 692 of file type_mat.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec2<double, lowp> lowp_dvec2
+
+ +

2 components vector of low double-precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 104 of file type_vec.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec3<double, lowp> lowp_dvec3
+
+ +

3 components vector of low double-precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 215 of file type_vec.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec4<double, lowp> lowp_dvec4
+
+ +

4 components vector of low double-precision floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 316 of file type_vec.hpp.

+ +
+
+ +
+
+ + + + +
typedef lowp_float_t lowp_float
+
+ +

Low precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also
GLSL 4.20.8 specification, section 4.1.4 Floats
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 56 of file type_float.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::lowp_int_t lowp_int
+
+ +

Low precision signed integer.

+

There is no guarantee on the actual precision.

+
See also
GLSL 4.20.8 specification, section 4.1.3 Integers
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 242 of file type_int.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec2<int, lowp> lowp_ivec2
+
+ +

2 components vector of low precision signed integer numbers.

+

There is no guarantee on the actual precision.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 125 of file type_vec.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec3<int, lowp> lowp_ivec3
+
+ +

3 components vector of low precision signed integer numbers.

+

There is no guarantee on the actual precision.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 236 of file type_vec.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec4<int, lowp> lowp_ivec4
+
+ +

4 components vector of low precision signed integer numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 334 of file type_vec.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat2x2< float, lowp > lowp_mat2
+
+ +

2 columns of 2 components matrix of low precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 65 of file type_mat.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat2x2< float, lowp > lowp_mat2x2
+
+ +

2 columns of 2 components matrix of low precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 86 of file type_mat.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat2x3< float, lowp > lowp_mat2x3
+
+ +

2 columns of 3 components matrix of low precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 112 of file type_mat.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat2x4< float, lowp > lowp_mat2x4
+
+ +

2 columns of 4 components matrix of low precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 138 of file type_mat.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat3x3< float, lowp > lowp_mat3
+
+ +

3 columns of 3 components matrix of low precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 190 of file type_mat.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat3x2< float, lowp > lowp_mat3x2
+
+ +

3 columns of 2 components matrix of low precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 164 of file type_mat.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat3x3< float, lowp > lowp_mat3x3
+
+ +

3 columns of 3 components matrix of low precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 211 of file type_mat.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat3x4< float, lowp > lowp_mat3x4
+
+ +

3 columns of 4 components matrix of low precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 237 of file type_mat.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat4x4< float, lowp > lowp_mat4
+
+ +

4 columns of 4 components matrix of low precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 316 of file type_mat.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat4x2< float, lowp > lowp_mat4x2
+
+ +

4 columns of 2 components matrix of low precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 263 of file type_mat.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat4x3< float, lowp > lowp_mat4x3
+
+ +

4 columns of 3 components matrix of low precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 289 of file type_mat.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat4x4< float, lowp > lowp_mat4x4
+
+ +

4 columns of 4 components matrix of low precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 337 of file type_mat.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::lowp_uint_t lowp_uint
+
+ +

Low precision unsigned integer.

+

There is no guarantee on the actual precision.

+
See also
GLSL 4.20.8 specification, section 4.1.3 Integers
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 263 of file type_int.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec2<uint, lowp> lowp_uvec2
+
+ +

2 components vector of low precision unsigned integer numbers.

+

There is no guarantee on the actual precision.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 146 of file type_vec.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec3<uint, lowp> lowp_uvec3
+
+ +

3 components vector of low precision unsigned integer numbers.

+

There is no guarantee on the actual precision.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 257 of file type_vec.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec4<uint, lowp> lowp_uvec4
+
+ +

4 components vector of low precision unsigned integer numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 352 of file type_vec.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec2< float, lowp > lowp_vec2
+
+ +

2 components vector of low single-precision floating-point numbers.

+

Low single-precision floating-point vector of 2 components.

+

There is no guarantee on the actual precision.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+
+GLM_GTC_type_precision
+ +

Definition at line 83 of file type_vec.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec3< float, lowp > lowp_vec3
+
+ +

3 components vector of low single-precision floating-point numbers.

+

Low single-precision floating-point vector of 3 components.

+

There is no guarantee on the actual precision.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+
+GLM_GTC_type_precision
+ +

Definition at line 194 of file type_vec.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec4< float, lowp > lowp_vec4
+
+ +

4 components vector of low single-precision floating-point numbers.

+

Low single-precision floating-point vector of 4 components.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+
+GLM_GTC_type_precision
+ +

Definition at line 298 of file type_vec.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec2<bool, mediump> mediump_bvec2
+
+ +

2 components vector of medium precision bool numbers.

+

There is no guarantee on the actual precision.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 160 of file type_vec.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec3<bool, mediump> mediump_bvec3
+
+ +

3 components vector of medium precision bool numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 269 of file type_vec.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec4<bool, mediump> mediump_bvec4
+
+ +

4 components vector of medium precision bool numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 364 of file type_vec.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat2x2<double, mediump> mediump_dmat2
+
+ +

2 columns of 2 components matrix of medium precision floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 460 of file type_mat.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat2x2<double, mediump> mediump_dmat2x2
+
+ +

2 columns of 2 components matrix of medium precision floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 478 of file type_mat.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat2x3<double, mediump> mediump_dmat2x3
+
+ +

2 columns of 3 components matrix of medium precision floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 501 of file type_mat.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat2x4<double, mediump> mediump_dmat2x4
+
+ +

2 columns of 4 components matrix of medium precision floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 524 of file type_mat.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat3x3<double, mediump> mediump_dmat3
+
+ +

3 columns of 3 components matrix of medium precision floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 570 of file type_mat.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat3x2<double, mediump> mediump_dmat3x2
+
+ +

3 columns of 2 components matrix of medium precision floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 547 of file type_mat.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat3x3<double, mediump> mediump_dmat3x3
+
+ +

3 columns of 3 components matrix of medium precision floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 588 of file type_mat.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat3x4<double, mediump> mediump_dmat3x4
+
+ +

3 columns of 4 components matrix of medium precision floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 611 of file type_mat.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat4x4<double, mediump> mediump_dmat4
+
+ +

4 columns of 4 components matrix of medium precision floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 680 of file type_mat.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat4x2<double, mediump> mediump_dmat4x2
+
+ +

4 columns of 2 components matrix of medium precision floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 634 of file type_mat.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat4x3<double, mediump> mediump_dmat4x3
+
+ +

4 columns of 3 components matrix of medium precision floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 657 of file type_mat.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat4x4<double, mediump> mediump_dmat4x4
+
+ +

4 columns of 4 components matrix of medium precision floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 698 of file type_mat.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec2<double, mediump> mediump_dvec2
+
+ +

2 components vector of medium double-precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 97 of file type_vec.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec3<double, mediump> mediump_dvec3
+
+ +

3 components vector of medium double-precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 208 of file type_vec.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec4<double, mediump> mediump_dvec4
+
+ +

4 components vector of medium double-precision floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 310 of file type_vec.hpp.

+ +
+
+ +
+
+ + + + +
typedef mediump_float_t mediump_float
+
+ +

Medium precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also
GLSL 4.20.8 specification, section 4.1.4 Floats
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 63 of file type_float.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::mediump_int_t mediump_int
+
+ +

Medium precision signed integer.

+

There is no guarantee on the actual precision.

+
See also
GLSL 4.20.8 specification, section 4.1.3 Integers
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 249 of file type_int.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec2<int, mediump> mediump_ivec2
+
+ +

2 components vector of medium precision signed integer numbers.

+

There is no guarantee on the actual precision.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 118 of file type_vec.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec3<int, mediump> mediump_ivec3
+
+ +

3 components vector of medium precision signed integer numbers.

+

There is no guarantee on the actual precision.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 229 of file type_vec.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec4<int, mediump> mediump_ivec4
+
+ +

4 components vector of medium precision signed integer numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 328 of file type_vec.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat2x2< float, mediump > mediump_mat2
+
+ +

2 columns of 2 components matrix of medium precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 72 of file type_mat.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat2x2< float, mediump > mediump_mat2x2
+
+ +

2 columns of 2 components matrix of medium precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 93 of file type_mat.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat2x3< float, mediump > mediump_mat2x3
+
+ +

2 columns of 3 components matrix of medium precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 119 of file type_mat.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat2x4< float, mediump > mediump_mat2x4
+
+ +

2 columns of 4 components matrix of medium precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 145 of file type_mat.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat3x3< float, mediump > mediump_mat3
+
+ +

3 columns of 3 components matrix of medium precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 197 of file type_mat.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat3x2< float, mediump > mediump_mat3x2
+
+ +

3 columns of 2 components matrix of medium precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 171 of file type_mat.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat3x3< float, mediump > mediump_mat3x3
+
+ +

3 columns of 3 components matrix of medium precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 218 of file type_mat.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat3x4< float, mediump > mediump_mat3x4
+
+ +

3 columns of 4 components matrix of medium precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 244 of file type_mat.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat4x4< float, mediump > mediump_mat4
+
+ +

4 columns of 4 components matrix of medium precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 323 of file type_mat.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat4x2< float, mediump > mediump_mat4x2
+
+ +

4 columns of 2 components matrix of medium precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 270 of file type_mat.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat4x3< float, mediump > mediump_mat4x3
+
+ +

4 columns of 3 components matrix of medium precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 296 of file type_mat.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat4x4< float, mediump > mediump_mat4x4
+
+ +

4 columns of 4 components matrix of medium precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 344 of file type_mat.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::mediump_uint_t mediump_uint
+
+ +

Medium precision unsigned integer.

+

There is no guarantee on the actual precision.

+
See also
GLSL 4.20.8 specification, section 4.1.3 Integers
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 270 of file type_int.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec2<uint, mediump> mediump_uvec2
+
+ +

2 components vector of medium precision unsigned integer numbers.

+

There is no guarantee on the actual precision.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 139 of file type_vec.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec3<uint, mediump> mediump_uvec3
+
+ +

3 components vector of medium precision unsigned integer numbers.

+

There is no guarantee on the actual precision.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 250 of file type_vec.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec4<uint, mediump> mediump_uvec4
+
+ +

4 components vector of medium precision unsigned integer numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 346 of file type_vec.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec2< float, mediump > mediump_vec2
+
+ +

2 components vector of medium single-precision floating-point numbers.

+

Medium Single-precision floating-point vector of 2 components.

+

There is no guarantee on the actual precision.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+
+GLM_GTC_type_precision
+ +

Definition at line 76 of file type_vec.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec3< float, mediump > mediump_vec3
+
+ +

3 components vector of medium single-precision floating-point numbers.

+

Medium Single-precision floating-point vector of 3 components.

+

There is no guarantee on the actual precision.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+
+GLM_GTC_type_precision
+ +

Definition at line 187 of file type_vec.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec4< float, mediump > mediump_vec4
+
+ +

4 components vector of medium single-precision floating-point numbers.

+

Medium Single-precision floating-point vector of 4 components.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+
+GLM_GTC_type_precision
+ +

Definition at line 292 of file type_vec.hpp.

+ +
+
+ +
+
+ + + + +
typedef unsigned int uint
+
+ +

Unsigned integer type.

+
See also
GLSL 4.20.8 specification, section 4.1.3 Integers
+ +

Definition at line 306 of file type_int.hpp.

@@ -528,7 +2821,7 @@ Functions diff --git a/doc/api/a00163.html b/doc/api/a00163.html index 0281d229..0abfa9c5 100644 --- a/doc/api/a00163.html +++ b/doc/api/a00163.html @@ -3,8 +3,8 @@ - -GLM: Vector Relational Functions + +0.9.6: Template types @@ -16,9 +16,9 @@ + @@ -26,312 +26,28 @@
-
GLM -  0.9.5 +
0.9.6
- +
-
-Functions
-
Vector Relational Functions
+
Template types
- - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL bool all (vecType< bool, P > const &v)
 
template<precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL bool any (vecType< bool, P > const &v)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P >
-::bool_type 
greaterThan (vecType< T, P > const &x, vecType< T, P > const &y)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P >
-::bool_type 
greaterThanEqual (vecType< T, P > const &x, vecType< T, P > const &y)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P >
-::bool_type 
lessThanEqual (vecType< T, P > const &x, vecType< T, P > const &y)
 
template<precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< bool, P > not_ (vecType< bool, P > const &v)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P >
-::bool_type 
notEqual (vecType< T, P > const &x, vecType< T, P > const &y)
 
-

Detailed Description

-

Relational and equality operators (<, <=, >, >=, ==, !=) are defined to operate on scalars and produce scalar Boolean results.

-

For vector results, use the following built-in functions.

-

In all cases, the sizes of all the input and return vectors for any particular call must match.

-

Function Documentation

- -
-
- - - - - - - - -
GLM_FUNC_DECL bool glm::all (vecType< bool, P > const & v)
-
- -

Returns true if all components of x are true.

-
Template Parameters
- - -
vecTypeBoolean vector types.
-
-
-
See Also
GLSL all man page
-
-GLSL 4.20.8 specification, section 8.7 Vector Relational Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL bool glm::any (vecType< bool, P > const & v)
-
- -

Returns true if any component of x is true.

-
Template Parameters
- - -
vecTypeBoolean vector types.
-
-
-
See Also
GLSL any man page
-
-GLSL 4.20.8 specification, section 8.7 Vector Relational Functions
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vecType<T, P>::bool_type glm::greaterThan (vecType< T, P > const & x,
vecType< T, P > const & y 
)
-
- -

Returns the component-wise comparison of result x > y.

-
Template Parameters
- - -
vecTypeFloating-point or integer vector types.
-
-
-
See Also
GLSL greaterThan man page
-
-GLSL 4.20.8 specification, section 8.7 Vector Relational Functions
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vecType<T, P>::bool_type glm::greaterThanEqual (vecType< T, P > const & x,
vecType< T, P > const & y 
)
-
- -

Returns the component-wise comparison of result x >= y.

-
Template Parameters
- - -
vecTypeFloating-point or integer vector types.
-
-
-
See Also
GLSL greaterThanEqual man page
-
-GLSL 4.20.8 specification, section 8.7 Vector Relational Functions
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vecType<T, P>::bool_type glm::lessThanEqual (vecType< T, P > const & x,
vecType< T, P > const & y 
)
-
- -

Returns the component-wise comparison result of x < y.

-
Template Parameters
- - -
vecTypeFloating-point or integer vector types.
-
-
-
See Also
GLSL lessThan man page
-
-GLSL 4.20.8 specification, section 8.7 Vector Relational Functions Returns the component-wise comparison of result x <= y.
-
Template Parameters
- - -
vecTypeFloating-point or integer vector types.
-
-
-
See Also
GLSL lessThanEqual man page
-
-GLSL 4.20.8 specification, section 8.7 Vector Relational Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vecType<bool, P> glm::not_ (vecType< bool, P > const & v)
-
- -

Returns the component-wise logical complement of x.

-

/!\ Because of language incompatibilities between C++ and GLSL, GLM defines the function not but not_ instead.

-
Template Parameters
- - -
vecTypeBoolean vector types.
-
-
-
See Also
GLSL not man page
-
-GLSL 4.20.8 specification, section 8.7 Vector Relational Functions
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vecType<T, P>::bool_type glm::notEqual (vecType< T, P > const & x,
vecType< T, P > const & y 
)
-
- -

Returns the component-wise comparison of result x == y.

-
Template Parameters
- - -
vecTypeFloating-point, integer or boolean vector types.
-
-
-
See Also
GLSL equal man page
-
-GLSL 4.20.8 specification, section 8.7 Vector Relational Functions Returns the component-wise comparison of result x != y.
-
Template Parameters
- - -
vecTypeFloating-point, integer or boolean vector types.
-
-
-
See Also
GLSL notEqual man page
-
-GLSL 4.20.8 specification, section 8.7 Vector Relational Functions
- -
-
+

The generic template types used as the basis for the core types.

+

These types are all templates used to define the actual Types. These templetes are implementation details of GLM types and should not be used explicitly.

diff --git a/doc/api/a00164.html b/doc/api/a00164.html index f980d10d..bf0fa052 100644 --- a/doc/api/a00164.html +++ b/doc/api/a00164.html @@ -3,8 +3,8 @@ - -GLM: GTC Extensions (Stable) + +0.9.6: GLM_GTC_bitfield @@ -16,9 +16,9 @@ + @@ -26,70 +26,960 @@
-
GLM -  0.9.5 +
0.9.6
- +
-Modules
+Functions
-
GTC Extensions (Stable)
+
GLM_GTC_bitfield
GTC Extensions (Stable)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

-Modules

 GLM_GTC_constants
 
 GLM_GTC_epsilon
 
 GLM_GTC_matrix_access
 
 GLM_GTC_matrix_integer
 
 GLM_GTC_matrix_inverse
 
 GLM_GTC_matrix_transform
 
 GLM_GTC_noise
 
 GLM_GTC_packing
 
 GLM_GTC_quaternion
 
 GLM_GTC_random
 
 GLM_GTC_reciprocal
 
 GLM_GTC_type_precision
 
 GLM_GTC_type_ptr
 
 GLM_GTC_ulp
 
 GLM_GTX_dual_quaternion
 
 GLM_GTX_rotate_normalized_axis
 

+Functions

template<typename genIUType >
GLM_FUNC_DECL genIUType bitfieldFillOne (genIUType Value, int FirstBit, int BitCount)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > bitfieldFillOne (vecType< T, P > const &Value, int FirstBit, int BitCount)
 
template<typename genIUType >
GLM_FUNC_DECL genIUType bitfieldFillZero (genIUType Value, int FirstBit, int BitCount)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > bitfieldFillZero (vecType< T, P > const &Value, int FirstBit, int BitCount)
 
GLM_FUNC_DECL int16 bitfieldInterleave (int8 x, int8 y)
 
GLM_FUNC_DECL uint16 bitfieldInterleave (uint8 x, uint8 y)
 
GLM_FUNC_DECL int32 bitfieldInterleave (int16 x, int16 y)
 
GLM_FUNC_DECL uint32 bitfieldInterleave (uint16 x, uint16 y)
 
GLM_FUNC_DECL int64 bitfieldInterleave (int32 x, int32 y)
 
GLM_FUNC_DECL uint64 bitfieldInterleave (uint32 x, uint32 y)
 
GLM_FUNC_DECL int32 bitfieldInterleave (int8 x, int8 y, int8 z)
 
GLM_FUNC_DECL uint32 bitfieldInterleave (uint8 x, uint8 y, uint8 z)
 
GLM_FUNC_DECL int64 bitfieldInterleave (int16 x, int16 y, int16 z)
 
GLM_FUNC_DECL uint64 bitfieldInterleave (uint16 x, uint16 y, uint16 z)
 
GLM_FUNC_DECL int64 bitfieldInterleave (int32 x, int32 y, int32 z)
 
GLM_FUNC_DECL uint64 bitfieldInterleave (uint32 x, uint32 y, uint32 z)
 
GLM_FUNC_DECL int32 bitfieldInterleave (int8 x, int8 y, int8 z, int8 w)
 
GLM_FUNC_DECL uint32 bitfieldInterleave (uint8 x, uint8 y, uint8 z, uint8 w)
 
GLM_FUNC_DECL int64 bitfieldInterleave (int16 x, int16 y, int16 z, int16 w)
 
GLM_FUNC_DECL uint64 bitfieldInterleave (uint16 x, uint16 y, uint16 z, uint16 w)
 
template<typename genIUType >
GLM_FUNC_DECL genIUType bitfieldRotateLeft (genIUType In, int Shift)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > bitfieldRotateLeft (vecType< T, P > const &In, int Shift)
 
template<typename genIUType >
GLM_FUNC_DECL genIUType bitfieldRotateRight (genIUType In, int Shift)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > bitfieldRotateRight (vecType< T, P > const &In, int Shift)
 
template<typename genIUType >
GLM_FUNC_DECL genIUType mask (genIUType Bits)
 
template<typename T , precision P, template< typename, precision > class vecIUType>
GLM_FUNC_DECL vecIUType< T, P > mask (vecIUType< T, P > const &v)
 

Detailed Description

-

Functions and types that the GLSL specification doesn't define, but useful to have for a C++ program.

-

GTC extensions aim to be stable.

-

Even if it's highly unrecommended, it's possible to include all the extensions at once by including <glm/ext.hpp>. Otherwise, each extension needs to be included a specific file.

+

Allow to perform bit operations on integer values.

+

<glm/gtc/bitfield.hpp> need to be included to use these functionalities.

+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL genIUType glm::bitfieldFillOne (genIUType Value,
int FirstBit,
int BitCount 
)
+
+ +

Set to 1 a range of bits.

+
See also
GLM_GTC_bitfield
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vecType<T, P> glm::bitfieldFillOne (vecType< T, P > const & Value,
int FirstBit,
int BitCount 
)
+
+ +

Set to 1 a range of bits.

+
See also
GLM_GTC_bitfield
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL genIUType glm::bitfieldFillZero (genIUType Value,
int FirstBit,
int BitCount 
)
+
+ +

Set to 0 a range of bits.

+
See also
GLM_GTC_bitfield
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vecType<T, P> glm::bitfieldFillZero (vecType< T, P > const & Value,
int FirstBit,
int BitCount 
)
+
+ +

Set to 0 a range of bits.

+
See also
GLM_GTC_bitfield
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL int16 glm::bitfieldInterleave (int8 x,
int8 y 
)
+
+ +

Interleaves the bits of x and y.

+

The first bit is the first bit of x followed by the first bit of y. The other bits are interleaved following the previous sequence.

+
See also
GLM_GTC_bitfield
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL uint16 glm::bitfieldInterleave (uint8 x,
uint8 y 
)
+
+ +

Interleaves the bits of x and y.

+

The first bit is the first bit of x followed by the first bit of y. The other bits are interleaved following the previous sequence.

+
See also
GLM_GTC_bitfield
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL int32 glm::bitfieldInterleave (int16 x,
int16 y 
)
+
+ +

Interleaves the bits of x and y.

+

The first bit is the first bit of x followed by the first bit of y. The other bits are interleaved following the previous sequence.

+
See also
GLM_GTC_bitfield
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL uint32 glm::bitfieldInterleave (uint16 x,
uint16 y 
)
+
+ +

Interleaves the bits of x and y.

+

The first bit is the first bit of x followed by the first bit of y. The other bits are interleaved following the previous sequence.

+
See also
GLM_GTC_bitfield
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL int64 glm::bitfieldInterleave (int32 x,
int32 y 
)
+
+ +

Interleaves the bits of x and y.

+

The first bit is the first bit of x followed by the first bit of y. The other bits are interleaved following the previous sequence.

+
See also
GLM_GTC_bitfield
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL uint64 glm::bitfieldInterleave (uint32 x,
uint32 y 
)
+
+ +

Interleaves the bits of x and y.

+

The first bit is the first bit of x followed by the first bit of y. The other bits are interleaved following the previous sequence.

+
See also
GLM_GTC_bitfield
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL int32 glm::bitfieldInterleave (int8 x,
int8 y,
int8 z 
)
+
+ +

Interleaves the bits of x, y and z.

+

The first bit is the first bit of x followed by the first bit of y and the first bit of z. The other bits are interleaved following the previous sequence.

+
See also
GLM_GTC_bitfield
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL uint32 glm::bitfieldInterleave (uint8 x,
uint8 y,
uint8 z 
)
+
+ +

Interleaves the bits of x, y and z.

+

The first bit is the first bit of x followed by the first bit of y and the first bit of z. The other bits are interleaved following the previous sequence.

+
See also
GLM_GTC_bitfield
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL int64 glm::bitfieldInterleave (int16 x,
int16 y,
int16 z 
)
+
+ +

Interleaves the bits of x, y and z.

+

The first bit is the first bit of x followed by the first bit of y and the first bit of z. The other bits are interleaved following the previous sequence.

+
See also
GLM_GTC_bitfield
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL uint64 glm::bitfieldInterleave (uint16 x,
uint16 y,
uint16 z 
)
+
+ +

Interleaves the bits of x, y and z.

+

The first bit is the first bit of x followed by the first bit of y and the first bit of z. The other bits are interleaved following the previous sequence.

+
See also
GLM_GTC_bitfield
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL int64 glm::bitfieldInterleave (int32 x,
int32 y,
int32 z 
)
+
+ +

Interleaves the bits of x, y and z.

+

The first bit is the first bit of x followed by the first bit of y and the first bit of z. The other bits are interleaved following the previous sequence.

+
See also
GLM_GTC_bitfield
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL uint64 glm::bitfieldInterleave (uint32 x,
uint32 y,
uint32 z 
)
+
+ +

Interleaves the bits of x, y and z.

+

The first bit is the first bit of x followed by the first bit of y and the first bit of z. The other bits are interleaved following the previous sequence.

+
See also
GLM_GTC_bitfield
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL int32 glm::bitfieldInterleave (int8 x,
int8 y,
int8 z,
int8 w 
)
+
+ +

Interleaves the bits of x, y, z and w.

+

The first bit is the first bit of x followed by the first bit of y, the first bit of z and finally the first bit of w. The other bits are interleaved following the previous sequence.

+
See also
GLM_GTC_bitfield
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL uint32 glm::bitfieldInterleave (uint8 x,
uint8 y,
uint8 z,
uint8 w 
)
+
+ +

Interleaves the bits of x, y, z and w.

+

The first bit is the first bit of x followed by the first bit of y, the first bit of z and finally the first bit of w. The other bits are interleaved following the previous sequence.

+
See also
GLM_GTC_bitfield
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL int64 glm::bitfieldInterleave (int16 x,
int16 y,
int16 z,
int16 w 
)
+
+ +

Interleaves the bits of x, y, z and w.

+

The first bit is the first bit of x followed by the first bit of y, the first bit of z and finally the first bit of w. The other bits are interleaved following the previous sequence.

+
See also
GLM_GTC_bitfield
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL uint64 glm::bitfieldInterleave (uint16 x,
uint16 y,
uint16 z,
uint16 w 
)
+
+ +

Interleaves the bits of x, y, z and w.

+

The first bit is the first bit of x followed by the first bit of y, the first bit of z and finally the first bit of w. The other bits are interleaved following the previous sequence.

+
See also
GLM_GTC_bitfield
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL genIUType glm::bitfieldRotateLeft (genIUType In,
int Shift 
)
+
+ +

Rotate all bits to the left.

+

All the bits dropped in the left side are inserted back on the right side.

+
See also
GLM_GTC_bitfield
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vecType<T, P> glm::bitfieldRotateLeft (vecType< T, P > const & In,
int Shift 
)
+
+ +

Rotate all bits to the left.

+

All the bits dropped in the left side are inserted back on the right side.

+
See also
GLM_GTC_bitfield
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL genIUType glm::bitfieldRotateRight (genIUType In,
int Shift 
)
+
+ +

Rotate all bits to the right.

+

All the bits dropped in the right side are inserted back on the left side.

+
See also
GLM_GTC_bitfield
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vecType<T, P> glm::bitfieldRotateRight (vecType< T, P > const & In,
int Shift 
)
+
+ +

Rotate all bits to the right.

+

All the bits dropped in the right side are inserted back on the left side.

+
See also
GLM_GTC_bitfield
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL genIUType glm::mask (genIUType Bits)
+
+ +

Build a mask of 'count' bits.

+
See also
GLM_GTC_bitfield
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vecIUType<T, P> glm::mask (vecIUType< T, P > const & v)
+
+ +

Build a mask of 'count' bits.

+
See also
GLM_GTC_bitfield
+ +
+
diff --git a/doc/api/a00165.html b/doc/api/a00165.html index bfe1a6ef..b4a56f36 100644 --- a/doc/api/a00165.html +++ b/doc/api/a00165.html @@ -3,8 +3,8 @@ - -GLM: GTX Extensions (Experimental) + +0.9.6: GLM_GTC_constants @@ -16,9 +16,9 @@ + @@ -26,138 +26,645 @@
-
GLM -  0.9.5 +
0.9.6
- +
-Modules
+Functions
-
GTX Extensions (Experimental)
+
GLM_GTC_constants
GTC Extensions (Stable)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

-Modules

 GLM_GTX_associated_min_max
 
 GLM_GTX_bit
 
 GLM_GTX_closest_point
 
 GLM_GTX_color_space
 
 GLM_GTX_color_space_YCoCg
 
 GLM_GTX_compatibility
 
 GLM_GTX_component_wise
 
 GLM_GTX_euler_angles
 
 GLM_GTX_extend
 
 GLM_GTX_extented_min_max
 
 GLM_GTX_fast_exponential
 
 GLM_GTX_fast_square_root
 
 GLM_GTX_fast_trigonometry
 
 GLM_GTX_gradient_paint
 
 GLM_GTX_handed_coordinate_space
 
 GLM_GTX_inertia
 
 GLM_GTX_integer
 
 GLM_GTX_intersect
 
 GLM_GTX_io
 
 GLM_GTX_log_base
 
 GLM_GTX_matrix_cross_product
 
 GLM_GTX_matrix_interpolation
 
 GLM_GTX_matrix_major_storage
 
 GLM_GTX_matrix_operation
 
 GLM_GTX_matrix_query
 
 GLM_GTX_mixed_producte
 
 GLM_GTX_multiple
 
 GLM_GTX_norm
 
 GLM_GTX_normal
 
 GLM_GTX_normalize_dot
 
 GLM_GTX_number_precision
 
 GLM_GTX_optimum_pow
 
 GLM_GTX_orthonormalize
 
 GLM_GTX_perpendicular
 
 GLM_GTX_polar_coordinates
 
 GLM_GTX_projection
 
 GLM_GTX_quaternion
 
 GLM_GTX_raw_data
 
 GLM_GTX_rotate_vector
 
 GLM_GTX_simd_mat4
 
 GLM_GTX_simd_quat
 
 GLM_GTX_spline
 
 GLM_GTX_std_based_type
 
 GLM_GTX_string_cast
 
 GLM_GTX_transform
 
 GLM_GTX_transform2
 
 GLM_GTX_vec1
 
 GLM_GTX_vector_angle
 
 GLM_GTX_vector_query
 
 GLM_GTX_wrap
 

+Functions

template<typename genType >
GLM_FUNC_DECL genType e ()
 
template<typename genType >
GLM_FUNC_DECL genType epsilon ()
 
template<typename genType >
GLM_FUNC_DECL genType euler ()
 
template<typename genType >
GLM_FUNC_DECL genType four_over_pi ()
 
template<typename genType >
GLM_FUNC_DECL genType golden_ratio ()
 
template<typename genType >
GLM_FUNC_DECL genType half_pi ()
 
template<typename genType >
GLM_FUNC_DECL genType ln_ln_two ()
 
template<typename genType >
GLM_FUNC_DECL genType ln_ten ()
 
template<typename genType >
GLM_FUNC_DECL genType ln_two ()
 
template<typename genType >
GLM_FUNC_DECL genType one ()
 
template<typename genType >
GLM_FUNC_DECL genType one_over_pi ()
 
template<typename genType >
GLM_FUNC_DECL genType one_over_root_two ()
 
template<typename genType >
GLM_FUNC_DECL genType one_over_two_pi ()
 
template<typename genType >
GLM_FUNC_DECL genType pi ()
 
template<typename genType >
GLM_FUNC_DECL genType quarter_pi ()
 
template<typename genType >
GLM_FUNC_DECL genType root_five ()
 
template<typename genType >
GLM_FUNC_DECL genType root_half_pi ()
 
template<typename genType >
GLM_FUNC_DECL genType root_ln_four ()
 
template<typename genType >
GLM_FUNC_DECL genType root_pi ()
 
template<typename genType >
GLM_FUNC_DECL genType root_three ()
 
template<typename genType >
GLM_FUNC_DECL genType root_two ()
 
template<typename genType >
GLM_FUNC_DECL genType root_two_pi ()
 
template<typename genType >
GLM_FUNC_DECL genType third ()
 
template<typename genType >
GLM_FUNC_DECL genType three_over_two_pi ()
 
template<typename genType >
GLM_FUNC_DECL genType two_over_pi ()
 
template<typename genType >
GLM_FUNC_DECL genType two_over_root_pi ()
 
template<typename genType >
GLM_FUNC_DECL genType two_pi ()
 
template<typename genType >
GLM_FUNC_DECL genType two_thirds ()
 
template<typename genType >
GLM_FUNC_DECL genType zero ()
 

Detailed Description

-

Functions and types that the GLSL specification doesn't define, but useful to have for a C++ program.

-

Experimental extensions are useful functions and types, but the development of their API and functionality is not necessarily stable. They can change substantially between versions. Backwards compatibility is not much of an issue for them.

-

Even if it's highly unrecommended, it's possible to include all the extensions at once by including <glm/ext.hpp>. Otherwise, each extension needs to be included a specific file.

+

Provide a list of constants and precomputed useful values.

+

<glm/gtc/constants.hpp> need to be included to use these features.

+

Function Documentation

+ +
+
+ + + + + + + +
GLM_FUNC_DECL genType glm::e ()
+
+ +

Return e constant.

+
See also
GLM_GTC_constants
+ +
+
+ +
+
+ + + + + + + +
GLM_FUNC_DECL genType glm::epsilon ()
+
+ +

Return the epsilon constant for floating point types.

+
See also
GLM_GTC_constants
+ +
+
+ +
+
+ + + + + + + +
GLM_FUNC_DECL genType glm::euler ()
+
+ +

Return Euler's constant.

+
See also
GLM_GTC_constants
+ +
+
+ +
+
+ + + + + + + +
GLM_FUNC_DECL genType glm::four_over_pi ()
+
+ +

Return 4 / pi.

+
See also
GLM_GTC_constants
+ +
+
+ +
+
+ + + + + + + +
GLM_FUNC_DECL genType glm::golden_ratio ()
+
+ +

Return the golden ratio constant.

+
See also
GLM_GTC_constants
+ +
+
+ +
+
+ + + + + + + +
GLM_FUNC_DECL genType glm::half_pi ()
+
+ +

Return pi / 2.

+
See also
GLM_GTC_constants
+ +
+
+ +
+
+ + + + + + + +
GLM_FUNC_DECL genType glm::ln_ln_two ()
+
+ +

Return ln(ln(2)).

+
See also
GLM_GTC_constants
+ +
+
+ +
+
+ + + + + + + +
GLM_FUNC_DECL genType glm::ln_ten ()
+
+ +

Return ln(10).

+
See also
GLM_GTC_constants
+ +
+
+ +
+
+ + + + + + + +
GLM_FUNC_DECL genType glm::ln_two ()
+
+ +

Return ln(2).

+
See also
GLM_GTC_constants
+ +
+
+ +
+
+ + + + + + + +
GLM_FUNC_DECL genType glm::one ()
+
+ +

Return 1.

+
See also
GLM_GTC_constants
+ +
+
+ +
+
+ + + + + + + +
GLM_FUNC_DECL genType glm::one_over_pi ()
+
+ +

Return 1 / pi.

+
See also
GLM_GTC_constants
+ +
+
+ +
+
+ + + + + + + +
GLM_FUNC_DECL genType glm::one_over_root_two ()
+
+ +

Return 1 / sqrt(2).

+
See also
GLM_GTC_constants
+ +
+
+ +
+
+ + + + + + + +
GLM_FUNC_DECL genType glm::one_over_two_pi ()
+
+ +

Return 1 / (pi * 2).

+
See also
GLM_GTC_constants
+ +
+
+ +
+
+ + + + + + + +
GLM_FUNC_DECL genType glm::pi ()
+
+ +

Return the pi constant.

+
See also
GLM_GTC_constants
+ +
+
+ +
+
+ + + + + + + +
GLM_FUNC_DECL genType glm::quarter_pi ()
+
+ +

Return pi / 4.

+
See also
GLM_GTC_constants
+ +
+
+ +
+
+ + + + + + + +
GLM_FUNC_DECL genType glm::root_five ()
+
+ +

Return sqrt(5).

+
See also
GLM_GTC_constants
+ +
+
+ +
+
+ + + + + + + +
GLM_FUNC_DECL genType glm::root_half_pi ()
+
+ +

Return sqrt(pi / 2).

+
See also
GLM_GTC_constants
+ +
+
+ +
+
+ + + + + + + +
GLM_FUNC_DECL genType glm::root_ln_four ()
+
+ +

Return sqrt(ln(4)).

+
See also
GLM_GTC_constants
+ +
+
+ +
+
+ + + + + + + +
GLM_FUNC_DECL genType glm::root_pi ()
+
+ +

Return square root of pi.

+
See also
GLM_GTC_constants
+ +
+
+ +
+
+ + + + + + + +
GLM_FUNC_DECL genType glm::root_three ()
+
+ +

Return sqrt(3).

+
See also
GLM_GTC_constants
+ +
+
+ +
+
+ + + + + + + +
GLM_FUNC_DECL genType glm::root_two ()
+
+ +

Return sqrt(2).

+
See also
GLM_GTC_constants
+ +
+
+ +
+
+ + + + + + + +
GLM_FUNC_DECL genType glm::root_two_pi ()
+
+ +

Return sqrt(2 * pi).

+
See also
GLM_GTC_constants
+ +
+
+ +
+
+ + + + + + + +
GLM_FUNC_DECL genType glm::third ()
+
+ +

Return 1 / 3.

+
See also
GLM_GTC_constants
+ +
+
+ +
+
+ + + + + + + +
GLM_FUNC_DECL genType glm::three_over_two_pi ()
+
+ +

Return pi / 2 * 3.

+
See also
GLM_GTC_constants
+ +
+
+ +
+
+ + + + + + + +
GLM_FUNC_DECL genType glm::two_over_pi ()
+
+ +

Return 2 / pi.

+
See also
GLM_GTC_constants
+ +
+
+ +
+
+ + + + + + + +
GLM_FUNC_DECL genType glm::two_over_root_pi ()
+
+ +

Return 2 / sqrt(pi).

+
See also
GLM_GTC_constants
+ +
+
+ +
+
+ + + + + + + +
GLM_FUNC_DECL genType glm::two_pi ()
+
+ +

Return pi * 2.

+
See also
GLM_GTC_constants
+ +
+
+ +
+
+ + + + + + + +
GLM_FUNC_DECL genType glm::two_thirds ()
+
+ +

Return 2 / 3.

+
See also
GLM_GTC_constants
+ +
+
+ +
+
+ + + + + + + +
GLM_FUNC_DECL genType glm::zero ()
+
+ +

Return 0.

+
See also
GLM_GTC_constants
+ +
+
diff --git a/doc/api/a00166.html b/doc/api/a00166.html index 106aae89..da57e2a4 100644 --- a/doc/api/a00166.html +++ b/doc/api/a00166.html @@ -3,8 +3,8 @@ - -GLM: VIRTREV Extensions + +0.9.6: GLM_GTC_epsilon @@ -16,9 +16,9 @@ + @@ -26,38 +26,192 @@
-
GLM -  0.9.5 +
0.9.6
- +
-Modules
+Functions
-
VIRTREV Extensions
+
GLM_GTC_epsilon
GTC Extensions (Stable)
- - - + + + + + + + + + + + + +

-Modules

 GLM_VIRTREV_xstream: xml like output
 

+Functions

template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< bool, P > epsilonEqual (vecType< T, P > const &x, vecType< T, P > const &y, T const &epsilon)
 
template<typename genType >
GLM_FUNC_DECL bool epsilonEqual (genType const &x, genType const &y, genType const &epsilon)
 
template<typename genType >
GLM_FUNC_DECL genType::boolType epsilonNotEqual (genType const &x, genType const &y, typename genType::value_type const &epsilon)
 
template<typename genType >
GLM_FUNC_DECL bool epsilonNotEqual (genType const &x, genType const &y, genType const &epsilon)
 

Detailed Description

-

Extensions develop and maintain by Mathieu [matrem] Roumillac (http://www.opengl.org/discussion_boards/ubbthreads.php?ubb=showprofile&User=22660).

+

Comparison functions for a user defined epsilon values.

+

<glm/gtc/epsilon.hpp> need to be included to use these functionalities.

+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vecType<bool, P> glm::epsilonEqual (vecType< T, P > const & x,
vecType< T, P > const & y,
T const & epsilon 
)
+
+ +

Returns the component-wise comparison of |x - y| < epsilon.

+

True if this expression is satisfied.

+
See also
GLM_GTC_epsilon
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL bool glm::epsilonEqual (genType const & x,
genType const & y,
genType const & epsilon 
)
+
+ +

Returns the component-wise comparison of |x - y| < epsilon.

+

True if this expression is satisfied.

+
See also
GLM_GTC_epsilon
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL genType::boolType glm::epsilonNotEqual (genType const & x,
genType const & y,
typename genType::value_type const & epsilon 
)
+
+ +

Returns the component-wise comparison of |x - y| < epsilon.

+

True if this expression is not satisfied.

+
See also
GLM_GTC_epsilon
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL bool glm::epsilonNotEqual (genType const & x,
genType const & y,
genType const & epsilon 
)
+
+ +

Returns the component-wise comparison of |x - y| >= epsilon.

+

True if this expression is not satisfied.

+
See also
GLM_GTC_epsilon
+ +
+
diff --git a/doc/api/a00167.html b/doc/api/a00167.html index b0ba2d4d..a860087a 100644 --- a/doc/api/a00167.html +++ b/doc/api/a00167.html @@ -3,8 +3,8 @@ - -GLM: GLM Core + +0.9.6: GLM_GTC_integer @@ -16,9 +16,9 @@ + @@ -26,63 +26,189 @@
-
GLM -  0.9.5 +
0.9.6
- +
-Modules
+Functions
-
GLM Core
+
GLM_GTC_integer
GTC Extensions (Stable)
- - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + +

-Modules

 Common functions
 
 Exponential functions
 
 Geometric functions
 
 Integer functions
 
 Matrix functions
 
 Noise functions
 
 Floating-Point Pack and Unpack Functions
 
 Angle and Trigonometry Functions
 
 Vector Relational Functions
 
 Types
 
 Precision types
 
 Template types
 

+Functions

template<typename genIUType >
GLM_FUNC_DECL genIUType log2 (genIUType x)
 
template<typename genIUType >
GLM_FUNC_DECL genIUType mod (genIUType x, genIUType y)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > mod (vecType< T, P > const &x, T y)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > mod (vecType< T, P > const &x, vecType< T, P > const &y)
 

Detailed Description

-

The core of GLM, which implements exactly and only the GLSL specification to the degree possible.

-

The GLM core consists of C++ types that mirror GLSL types and C++ functions that mirror the GLSL functions. It also includes a set of precision-based types that can be used in the appropriate functions. The C++ types are all based on a basic set of template types.

-

The best documentation for GLM Core is the current GLSL specification, version 4.2 (pdf file). There are a few differences between GLM core and GLSL.

-

GLM core functionnalities require <glm/glm.hpp> to be included to be used.

+

Allow to perform bit operations on integer values.

+

<glm/gtc/integer.hpp> need to be included to use these functionalities.

+

Function Documentation

+ +
+
+ + + + + + + + +
GLM_FUNC_DECL genIUType glm::log2 (genIUType x)
+
+ +

Returns the log2 of x for integer values.

+

Can be reliably using to compute mipmap count from the texture size.

See also
GLM_GTC_integer
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL genIUType glm::mod (genIUType x,
genIUType y 
)
+
+ +

Modulus.

+

Returns x % y for each component in x using the floating point value y.

+
Template Parameters
+ + +
genIUTypeInteger-point scalar or vector types.
+
+
+
See also
GLM_GTC_integer
+
+GLSL mod man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vecType< T, P > mod (vecType< T, P > const & x,
y 
)
+
+ +

Modulus.

+

Returns x % y for each component in x using the floating point value y.

+
Template Parameters
+ + + +
TInteger scalar types.
vecTypevector types.
+
+
+
See also
GLM_GTC_integer
+
+GLSL mod man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vecType< T, P > mod (vecType< T, P > const & x,
vecType< T, P > const & y 
)
+
+ +

Modulus.

+

Returns x % y for each component in x using the floating point value y.

+
Template Parameters
+ + + +
TInteger scalar types.
vecTypevector types.
+
+
+
See also
GLM_GTC_integer
+
+GLSL mod man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +
+
diff --git a/doc/api/a00168.html b/doc/api/a00168.html index e372b8af..820ceb8c 100644 --- a/doc/api/a00168.html +++ b/doc/api/a00168.html @@ -3,8 +3,8 @@ - -GLM: Types + +0.9.6: GLM_GTC_matrix_access @@ -16,9 +16,9 @@ + @@ -26,776 +26,167 @@
-
GLM -  0.9.5 +
0.9.6
- +
-Modules | -Typedefs
+Functions
-
Types
+
GLM_GTC_matrix_access
GTC Extensions (Stable)
- - - -

-Modules

 Precision types
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + +

-Typedefs

typedef highp_bvec2 bvec2
 
typedef highp_bvec3 bvec3
 
typedef highp_bvec4 bvec4
 
typedef highp_dmat2x2 dmat2
 
typedef highp_dmat2x2 dmat2x2
 
typedef highp_dmat2x3 dmat2x3
 
typedef highp_dmat2x4 dmat2x4
 
typedef highp_dmat3x3 dmat3
 
typedef highp_dmat3x2 dmat3x2
 
typedef highp_dmat3x3 dmat3x3
 
typedef highp_dmat3x4 dmat3x4
 
typedef highp_dmat4x4 dmat4
 
typedef highp_dmat4x2 dmat4x2
 
typedef highp_dmat4x3 dmat4x3
 
typedef highp_dmat4x4 dmat4x4
 
typedef highp_dvec2 dvec2
 
typedef highp_dvec3 dvec3
 
typedef highp_dvec4 dvec4
 
typedef highp_ivec2 ivec2
 
typedef highp_ivec3 ivec3
 
typedef highp_ivec4 ivec4
 
typedef mat2x2 mat2
 
typedef highp_mat2x2 mat2x2
 
typedef highp_mat2x3 mat2x3
 
typedef highp_mat2x4 mat2x4
 
typedef mat3x3 mat3
 
typedef highp_mat3x2 mat3x2
 
typedef highp_mat3x3 mat3x3
 
typedef highp_mat3x4 mat3x4
 
typedef mat4x4 mat4
 
typedef highp_mat4x2 mat4x2
 
typedef highp_mat4x3 mat4x3
 
typedef highp_mat4x4 mat4x4
 
typedef highp_uvec2 uvec2
 
typedef highp_uvec3 uvec3
 
typedef highp_uvec4 uvec4
 
typedef highp_vec2 vec2
 
typedef highp_vec3 vec3
 
typedef highp_vec4 vec4
 

+Functions

template<typename genType >
GLM_FUNC_DECL genType::col_type column (genType const &m, length_t index)
 
template<typename genType >
GLM_FUNC_DECL genType column (genType const &m, length_t index, typename genType::col_type const &x)
 
template<typename genType >
GLM_FUNC_DECL genType::row_type row (genType const &m, length_t index)
 
template<typename genType >
GLM_FUNC_DECL genType row (genType const &m, length_t index, typename genType::row_type const &x)
 

Detailed Description

-

The standard types defined by the specification.

-

These types are all typedefs of more generalized, template types. To see the definiton of these template types, go to Template types.

-

Typedef Documentation

- +

Defines functions to access rows or columns of a matrix easily.

+

<glm/gtc/matrix_access.hpp> need to be included to use these functionalities.

+

Function Documentation

+
- + + + + + + + + + + + + + + +
typedef highp_bvec2 bvec2GLM_FUNC_DECL genType::col_type glm::column (genType const & m,
length_t index 
)
-

2 components vector of boolean.

-
See Also
GLSL 4.20.8 specification, section 4.1.5 Vectors
- -

Definition at line 500 of file type_vec.hpp.

+

Get a specific column of a matrix.

+
See also
GLM_GTC_matrix_access
- +
- + + + + + + + + + + + + + + + + + + + + +
typedef highp_bvec3 bvec3GLM_FUNC_DECL genType glm::column (genType const & m,
length_t index,
typename genType::col_type const & x 
)
-

3 components vector of boolean.

-
See Also
GLSL 4.20.8 specification, section 4.1.5 Vectors
- -

Definition at line 505 of file type_vec.hpp.

+

Set a specific column to a matrix.

+
See also
GLM_GTC_matrix_access
- +
- + + + + + + + + + + + + + + +
typedef highp_bvec4 bvec4GLM_FUNC_DECL genType::row_type glm::row (genType const & m,
length_t index 
)
-

4 components vector of boolean.

-
See Also
GLSL 4.20.8 specification, section 4.1.5 Vectors
- -

Definition at line 510 of file type_vec.hpp.

+

Get a specific row of a matrix.

+
See also
GLM_GTC_matrix_access
- +
- + + + + -
typedef highp_dmat2x2 dmat2GLM_FUNC_DECL genType glm::row (genType const & m,
-
- -

2 * 2 matrix of double-precision floating-point numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
- -

Definition at line 733 of file type_mat.hpp.

- -
-
- -
-
- - + + + + -
typedef highp_dmat2x2 dmat2x2length_t index,
-
- -

2 * 2 matrix of double-precision floating-point numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
- -

Definition at line 748 of file type_mat.hpp.

- -
-
- -
-
- - + + + + -
typedef highp_dmat2x3 dmat2x3typename genType::row_type const & x 
-
- -

2 * 3 matrix of double-precision floating-point numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
- -

Definition at line 753 of file type_mat.hpp.

- -
-
- -
-
- - + + +
typedef highp_dmat2x4 dmat2x4)
-

2 * 4 matrix of double-precision floating-point numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
- -

Definition at line 758 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef highp_dmat3x3 dmat3
-
- -

3 * 3 matrix of double-precision floating-point numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
- -

Definition at line 738 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef highp_dmat3x2 dmat3x2
-
- -

3 * 2 matrix of double-precision floating-point numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
- -

Definition at line 763 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef highp_dmat3x3 dmat3x3
-
- -

3 * 3 matrix of double-precision floating-point numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
- -

Definition at line 768 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef highp_dmat3x4 dmat3x4
-
- -

3 * 4 matrix of double-precision floating-point numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
- -

Definition at line 773 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef highp_dmat4x4 dmat4
-
- -

4 * 4 matrix of double-precision floating-point numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
- -

Definition at line 743 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef highp_dmat4x2 dmat4x2
-
- -

4 * 2 matrix of double-precision floating-point numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
- -

Definition at line 778 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef highp_dmat4x3 dmat4x3
-
- -

4 * 3 matrix of double-precision floating-point numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
- -

Definition at line 783 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef highp_dmat4x4 dmat4x4
-
- -

4 * 4 matrix of double-precision floating-point numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
- -

Definition at line 788 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef highp_dvec2 dvec2
-
- -

2 components vector of double-precision floating-point numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.5 Vectors
- -

Definition at line 416 of file type_vec.hpp.

- -
-
- -
-
- - - - -
typedef highp_dvec3 dvec3
-
- -

3 components vector of double-precision floating-point numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.5 Vectors
- -

Definition at line 421 of file type_vec.hpp.

- -
-
- -
-
- - - - -
typedef highp_dvec4 dvec4
-
- -

4 components vector of double-precision floating-point numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.5 Vectors
- -

Definition at line 426 of file type_vec.hpp.

- -
-
- -
-
- - - - -
typedef highp_ivec2 ivec2
-
- -

2 components vector of signed integer numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.5 Vectors
- -

Definition at line 444 of file type_vec.hpp.

- -
-
- -
-
- - - - -
typedef highp_ivec3 ivec3
-
- -

3 components vector of signed integer numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.5 Vectors
- -

Definition at line 449 of file type_vec.hpp.

- -
-
- -
-
- - - - -
typedef highp_ivec4 ivec4
-
- -

4 components vector of signed integer numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.5 Vectors
- -

Definition at line 454 of file type_vec.hpp.

- -
-
- -
-
- - - - -
typedef mat2x2 mat2
-
- -

2 columns of 2 components matrix of floating-point numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
- -

Definition at line 432 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef highp_mat2x2 mat2x2
-
- -

2 columns of 2 components matrix of floating-point numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
- -

Definition at line 385 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef highp_mat2x3 mat2x3
-
- -

2 columns of 3 components matrix of floating-point numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
- -

Definition at line 390 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef highp_mat2x4 mat2x4
-
- -

2 columns of 4 components matrix of floating-point numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
- -

Definition at line 395 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef mat3x3 mat3
-
- -

3 columns of 3 components matrix of floating-point numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
- -

Definition at line 437 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef highp_mat3x2 mat3x2
-
- -

3 columns of 2 components matrix of floating-point numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
- -

Definition at line 400 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef highp_mat3x3 mat3x3
-
- -

3 columns of 3 components matrix of floating-point numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
- -

Definition at line 405 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef highp_mat3x4 mat3x4
-
- -

3 columns of 4 components matrix of floating-point numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
- -

Definition at line 410 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef mat4x4 mat4
-
- -

4 columns of 4 components matrix of floating-point numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
- -

Definition at line 442 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef highp_mat4x2 mat4x2
-
- -

4 columns of 2 components matrix of floating-point numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
- -

Definition at line 415 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef highp_mat4x3 mat4x3
-
- -

4 columns of 3 components matrix of floating-point numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
- -

Definition at line 420 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef highp_mat4x4 mat4x4
-
- -

4 columns of 4 components matrix of floating-point numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
- -

Definition at line 425 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef highp_uvec2 uvec2
-
- -

2 components vector of unsigned integer numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.5 Vectors
- -

Definition at line 472 of file type_vec.hpp.

- -
-
- -
-
- - - - -
typedef highp_uvec3 uvec3
-
- -

3 components vector of unsigned integer numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.5 Vectors
- -

Definition at line 477 of file type_vec.hpp.

- -
-
- -
-
- - - - -
typedef highp_uvec4 uvec4
-
- -

4 components vector of unsigned integer numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.5 Vectors
- -

Definition at line 482 of file type_vec.hpp.

- -
-
- -
-
- - - - -
typedef highp_vec2 vec2
-
- -

2 components vector of floating-point numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.5 Vectors
- -

Definition at line 388 of file type_vec.hpp.

- -
-
- -
-
- - - - -
typedef highp_vec3 vec3
-
- -

3 components vector of floating-point numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.5 Vectors
- -

Definition at line 393 of file type_vec.hpp.

- -
-
- -
-
- - - - -
typedef highp_vec4 vec4
-
- -

4 components vector of floating-point numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.5 Vectors
- -

Definition at line 398 of file type_vec.hpp.

+

Set a specific row to a matrix.

+
See also
GLM_GTC_matrix_access
@@ -804,7 +195,7 @@ Typedefs diff --git a/doc/api/a00169.html b/doc/api/a00169.html index 5b59808e..69dfee89 100644 --- a/doc/api/a00169.html +++ b/doc/api/a00169.html @@ -3,8 +3,8 @@ - -GLM: Precision types + +0.9.6: GLM_GTC_matrix_integer @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -41,2885 +39,1838 @@
Typedefs
-
Precision types
+
GLM_GTC_matrix_integer
GTC Extensions (Stable)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Typedefs

typedef detail::tvec2< bool,
-highp > 
highp_bvec2
 
typedef detail::tvec3< bool,
-highp > 
highp_bvec3
 
typedef detail::tvec4< bool,
-highp > 
highp_bvec4
 
typedef detail::tmat2x2
-< double, highp > 
highp_dmat2
 
typedef detail::tmat2x2
-< double, highp > 
highp_dmat2x2
 
typedef detail::tmat2x3
-< double, highp > 
highp_dmat2x3
 
typedef detail::tmat2x4
-< double, highp > 
highp_dmat2x4
 
typedef detail::tmat3x3
-< double, highp > 
highp_dmat3
 
typedef detail::tmat3x2
-< double, highp > 
highp_dmat3x2
 
typedef detail::tmat3x3
-< double, highp > 
highp_dmat3x3
 
typedef detail::tmat3x4
-< double, highp > 
highp_dmat3x4
 
typedef detail::tmat4x4
-< double, highp > 
highp_dmat4
 
typedef detail::tmat4x2
-< double, highp > 
highp_dmat4x2
 
typedef detail::tmat4x3
-< double, highp > 
highp_dmat4x3
 
typedef detail::tmat4x4
-< double, highp > 
highp_dmat4x4
 
typedef detail::tvec2< double,
-highp > 
highp_dvec2
 
typedef detail::tvec3< double,
-highp > 
highp_dvec3
 
typedef detail::tvec4< double,
-highp > 
highp_dvec4
 
typedef highp_float_t highp_float
 
typedef detail::highp_int_t highp_int
 
typedef detail::tvec2< int, highp > highp_ivec2
 
typedef detail::tvec3< int, highp > highp_ivec3
 
typedef detail::tvec4< int, highp > highp_ivec4
 
typedef detail::tmat2x2< float,
-highp > 
highp_mat2
 
typedef detail::tmat2x2< float,
-highp > 
highp_mat2x2
 
typedef detail::tmat2x3< float,
-highp > 
highp_mat2x3
 
typedef detail::tmat2x4< float,
-highp > 
highp_mat2x4
 
typedef detail::tmat3x3< float,
-highp > 
highp_mat3
 
typedef detail::tmat3x2< float,
-highp > 
highp_mat3x2
 
typedef detail::tmat3x3< float,
-highp > 
highp_mat3x3
 
typedef detail::tmat3x4< float,
-highp > 
highp_mat3x4
 
typedef detail::tmat4x4< float,
-highp > 
highp_mat4
 
typedef detail::tmat4x2< float,
-highp > 
highp_mat4x2
 
typedef detail::tmat4x3< float,
-highp > 
highp_mat4x3
 
typedef detail::tmat4x4< float,
-highp > 
highp_mat4x4
 
typedef detail::highp_uint_t highp_uint
 
typedef detail::tvec2< uint,
-highp > 
highp_uvec2
 
typedef detail::tvec3< uint,
-highp > 
highp_uvec3
 
typedef detail::tvec4< uint,
-highp > 
highp_uvec4
 
typedef detail::tvec2< float,
-highp > 
highp_vec2
 
typedef detail::tvec3< float,
-highp > 
highp_vec3
 
typedef detail::tvec4< float,
-highp > 
highp_vec4
 
typedef detail::tvec2< bool, lowp > lowp_bvec2
 
typedef detail::tvec3< bool, lowp > lowp_bvec3
 
typedef detail::tvec4< bool, lowp > lowp_bvec4
 
typedef detail::tmat2x2
-< double, lowp > 
lowp_dmat2
 
typedef detail::tmat2x2
-< double, lowp > 
lowp_dmat2x2
 
typedef detail::tmat2x3
-< double, lowp > 
lowp_dmat2x3
 
typedef detail::tmat2x4
-< double, lowp > 
lowp_dmat2x4
 
typedef detail::tmat3x3< float,
-lowp > 
lowp_dmat3
 
typedef detail::tmat3x2
-< double, lowp > 
lowp_dmat3x2
 
typedef detail::tmat3x3
-< double, lowp > 
lowp_dmat3x3
 
typedef detail::tmat3x4
-< double, lowp > 
lowp_dmat3x4
 
typedef detail::tmat4x4
-< double, lowp > 
lowp_dmat4
 
typedef detail::tmat4x2
-< double, lowp > 
lowp_dmat4x2
 
typedef detail::tmat4x3
-< double, lowp > 
lowp_dmat4x3
 
typedef detail::tmat4x4
-< double, lowp > 
lowp_dmat4x4
 
typedef detail::tvec2< double,
-lowp > 
lowp_dvec2
 
typedef detail::tvec3< double,
-lowp > 
lowp_dvec3
 
typedef detail::tvec4< double,
-lowp > 
lowp_dvec4
 
typedef lowp_float_t lowp_float
 
typedef detail::lowp_int_t lowp_int
 
typedef detail::tvec2< int, lowp > lowp_ivec2
 
typedef detail::tvec3< int, lowp > lowp_ivec3
 
typedef detail::tvec4< int, lowp > lowp_ivec4
 
typedef detail::tmat2x2< float,
-lowp > 
lowp_mat2
 
typedef detail::tmat2x2< float,
-lowp > 
lowp_mat2x2
 
typedef detail::tmat2x3< float,
-lowp > 
lowp_mat2x3
 
typedef detail::tmat2x4< float,
-lowp > 
lowp_mat2x4
 
typedef detail::tmat3x3< float,
-lowp > 
lowp_mat3
 
typedef detail::tmat3x2< float,
-lowp > 
lowp_mat3x2
 
typedef detail::tmat3x3< float,
-lowp > 
lowp_mat3x3
 
typedef detail::tmat3x4< float,
-lowp > 
lowp_mat3x4
 
typedef detail::tmat4x4< float,
-lowp > 
lowp_mat4
 
typedef detail::tmat4x2< float,
-lowp > 
lowp_mat4x2
 
typedef detail::tmat4x3< float,
-lowp > 
lowp_mat4x3
 
typedef detail::tmat4x4< float,
-lowp > 
lowp_mat4x4
 
typedef detail::lowp_uint_t lowp_uint
 
typedef detail::tvec2< uint, lowp > lowp_uvec2
 
typedef detail::tvec3< uint, lowp > lowp_uvec3
 
typedef detail::tvec4< uint, lowp > lowp_uvec4
 
typedef detail::tvec2< float,
-lowp > 
lowp_vec2
 
typedef detail::tvec3< float,
-lowp > 
lowp_vec3
 
typedef detail::tvec4< float,
-lowp > 
lowp_vec4
 
typedef detail::tvec2< bool,
-mediump > 
mediump_bvec2
 
typedef detail::tvec3< bool,
-mediump > 
mediump_bvec3
 
typedef detail::tvec4< bool,
-mediump > 
mediump_bvec4
 
typedef detail::tmat2x2
-< double, mediump > 
mediump_dmat2
 
typedef detail::tmat2x2
-< double, mediump > 
mediump_dmat2x2
 
typedef detail::tmat2x3
-< double, mediump > 
mediump_dmat2x3
 
typedef detail::tmat2x4
-< double, mediump > 
mediump_dmat2x4
 
typedef detail::tmat3x3
-< double, mediump > 
mediump_dmat3
 
typedef detail::tmat3x2
-< double, mediump > 
mediump_dmat3x2
 
typedef detail::tmat3x3
-< double, mediump > 
mediump_dmat3x3
 
typedef detail::tmat3x4
-< double, mediump > 
mediump_dmat3x4
 
typedef detail::tmat4x4
-< double, mediump > 
mediump_dmat4
 
typedef detail::tmat4x2
-< double, mediump > 
mediump_dmat4x2
 
typedef detail::tmat4x3
-< double, mediump > 
mediump_dmat4x3
 
typedef detail::tmat4x4
-< double, mediump > 
mediump_dmat4x4
 
typedef detail::tvec2< double,
-mediump > 
mediump_dvec2
 
typedef detail::tvec3< double,
-mediump > 
mediump_dvec3
 
typedef detail::tvec4< double,
-mediump > 
mediump_dvec4
 
typedef mediump_float_t mediump_float
 
typedef detail::mediump_int_t mediump_int
 
typedef detail::tvec2< int,
-mediump > 
mediump_ivec2
 
typedef detail::tvec3< int,
-mediump > 
mediump_ivec3
 
typedef detail::tvec4< int,
-mediump > 
mediump_ivec4
 
typedef detail::tmat2x2< float,
-mediump > 
mediump_mat2
 
typedef detail::tmat2x2< float,
-mediump > 
mediump_mat2x2
 
typedef detail::tmat2x3< float,
-mediump > 
mediump_mat2x3
 
typedef detail::tmat2x4< float,
-mediump > 
mediump_mat2x4
 
typedef detail::tmat3x3< float,
-mediump > 
mediump_mat3
 
typedef detail::tmat3x2< float,
-mediump > 
mediump_mat3x2
 
typedef detail::tmat3x3< float,
-mediump > 
mediump_mat3x3
 
typedef detail::tmat3x4< float,
-mediump > 
mediump_mat3x4
 
typedef detail::tmat4x4< float,
-mediump > 
mediump_mat4
 
typedef detail::tmat4x2< float,
-mediump > 
mediump_mat4x2
 
typedef detail::tmat4x3< float,
-mediump > 
mediump_mat4x3
 
typedef detail::tmat4x4< float,
-mediump > 
mediump_mat4x4
 
typedef detail::mediump_uint_t mediump_uint
 
typedef detail::tvec2< uint,
-mediump > 
mediump_uvec2
 
typedef detail::tvec3< uint,
-mediump > 
mediump_uvec3
 
typedef detail::tvec4< uint,
-mediump > 
mediump_uvec4
 
typedef detail::tvec2< float,
-mediump > 
mediump_vec2
 
typedef detail::tvec3< float,
-mediump > 
mediump_vec3
 
typedef detail::tvec4< float,
-mediump > 
mediump_vec4
 
typedef unsigned int uint
 
typedef tmat2x2< int, highp > highp_imat2
 
typedef tmat2x2< int, highp > highp_imat2x2
 
typedef tmat2x3< int, highp > highp_imat2x3
 
typedef tmat2x4< int, highp > highp_imat2x4
 
typedef tmat3x3< int, highp > highp_imat3
 
typedef tmat3x2< int, highp > highp_imat3x2
 
typedef tmat3x3< int, highp > highp_imat3x3
 
typedef tmat3x4< int, highp > highp_imat3x4
 
typedef tmat4x4< int, highp > highp_imat4
 
typedef tmat4x2< int, highp > highp_imat4x2
 
typedef tmat4x3< int, highp > highp_imat4x3
 
typedef tmat4x4< int, highp > highp_imat4x4
 
typedef tmat2x2< uint, highp > highp_umat2
 
typedef tmat2x2< uint, highp > highp_umat2x2
 
typedef tmat2x3< uint, highp > highp_umat2x3
 
typedef tmat2x4< uint, highp > highp_umat2x4
 
typedef tmat3x3< uint, highp > highp_umat3
 
typedef tmat3x2< uint, highp > highp_umat3x2
 
typedef tmat3x3< uint, highp > highp_umat3x3
 
typedef tmat3x4< uint, highp > highp_umat3x4
 
typedef tmat4x4< uint, highp > highp_umat4
 
typedef tmat4x2< uint, highp > highp_umat4x2
 
typedef tmat4x3< uint, highp > highp_umat4x3
 
typedef tmat4x4< uint, highp > highp_umat4x4
 
typedef mediump_imat2 imat2
 
typedef mediump_imat2x2 imat2x2
 
typedef mediump_imat2x3 imat2x3
 
typedef mediump_imat2x4 imat2x4
 
typedef mediump_imat3 imat3
 
typedef mediump_imat3x2 imat3x2
 
typedef mediump_imat3x3 imat3x3
 
typedef mediump_imat3x4 imat3x4
 
typedef mediump_imat4 imat4
 
typedef mediump_imat4x2 imat4x2
 
typedef mediump_imat4x3 imat4x3
 
typedef mediump_imat4x4 imat4x4
 
typedef tmat2x2< int, lowp > lowp_imat2
 
typedef tmat2x2< int, lowp > lowp_imat2x2
 
typedef tmat2x3< int, lowp > lowp_imat2x3
 
typedef tmat2x4< int, lowp > lowp_imat2x4
 
typedef tmat3x3< int, lowp > lowp_imat3
 
typedef tmat3x2< int, lowp > lowp_imat3x2
 
typedef tmat3x3< int, lowp > lowp_imat3x3
 
typedef tmat3x4< int, lowp > lowp_imat3x4
 
typedef tmat4x4< int, lowp > lowp_imat4
 
typedef tmat4x2< int, lowp > lowp_imat4x2
 
typedef tmat4x3< int, lowp > lowp_imat4x3
 
typedef tmat4x4< int, lowp > lowp_imat4x4
 
typedef tmat2x2< uint, lowp > lowp_umat2
 
typedef tmat2x2< uint, lowp > lowp_umat2x2
 
typedef tmat2x3< uint, lowp > lowp_umat2x3
 
typedef tmat2x4< uint, lowp > lowp_umat2x4
 
typedef tmat3x3< uint, lowp > lowp_umat3
 
typedef tmat3x2< uint, lowp > lowp_umat3x2
 
typedef tmat3x3< uint, lowp > lowp_umat3x3
 
typedef tmat3x4< uint, lowp > lowp_umat3x4
 
typedef tmat4x4< uint, lowp > lowp_umat4
 
typedef tmat4x2< uint, lowp > lowp_umat4x2
 
typedef tmat4x3< uint, lowp > lowp_umat4x3
 
typedef tmat4x4< uint, lowp > lowp_umat4x4
 
typedef tmat2x2< int, mediump > mediump_imat2
 
typedef tmat2x2< int, mediump > mediump_imat2x2
 
typedef tmat2x3< int, mediump > mediump_imat2x3
 
typedef tmat2x4< int, mediump > mediump_imat2x4
 
typedef tmat3x3< int, mediump > mediump_imat3
 
typedef tmat3x2< int, mediump > mediump_imat3x2
 
typedef tmat3x3< int, mediump > mediump_imat3x3
 
typedef tmat3x4< int, mediump > mediump_imat3x4
 
typedef tmat4x4< int, mediump > mediump_imat4
 
typedef tmat4x2< int, mediump > mediump_imat4x2
 
typedef tmat4x3< int, mediump > mediump_imat4x3
 
typedef tmat4x4< int, mediump > mediump_imat4x4
 
typedef tmat2x2< uint, mediump > mediump_umat2
 
typedef tmat2x2< uint, mediump > mediump_umat2x2
 
typedef tmat2x3< uint, mediump > mediump_umat2x3
 
typedef tmat2x4< uint, mediump > mediump_umat2x4
 
typedef tmat3x3< uint, mediump > mediump_umat3
 
typedef tmat3x2< uint, mediump > mediump_umat3x2
 
typedef tmat3x3< uint, mediump > mediump_umat3x3
 
typedef tmat3x4< uint, mediump > mediump_umat3x4
 
typedef tmat4x4< uint, mediump > mediump_umat4
 
typedef tmat4x2< uint, mediump > mediump_umat4x2
 
typedef tmat4x3< uint, mediump > mediump_umat4x3
 
typedef tmat4x4< uint, mediump > mediump_umat4x4
 
typedef mediump_umat2 umat2
 
typedef mediump_umat2x2 umat2x2
 
typedef mediump_umat2x3 umat2x3
 
typedef mediump_umat2x4 umat2x4
 
typedef mediump_umat3 umat3
 
typedef mediump_umat3x2 umat3x2
 
typedef mediump_umat3x3 umat3x3
 
typedef mediump_umat3x4 umat3x4
 
typedef mediump_umat4 umat4
 
typedef mediump_umat4x2 umat4x2
 
typedef mediump_umat4x3 umat4x3
 
typedef mediump_umat4x4 umat4x4
 

Detailed Description

-

Non-GLSL types that are used to define precision-based types.

-

The GLSL language allows the user to define the precision of a particular variable. In OpenGL's GLSL, these precision qualifiers have no effect; they are there for compatibility with OpenGL ES's precision qualifiers, where they do have an effect.

-

C++ has no language equivalent to precision qualifiers. So GLM provides the next-best thing: a number of typedefs of the Template types that use a particular precision.

-

None of these types make any guarantees about the actual precision used.

+

Defines a number of matrices with integer types.

+

<glm/gtc/matrix_integer.hpp> need to be included to use these functionalities.

Typedef Documentation

- +
- +
typedef detail::tvec2<bool, highp> highp_bvec2typedef tmat2x2<int, highp> highp_imat2
-

2 components vector of high precision bool numbers.

-

There is no guarantee on the actual precision.

-
See Also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+

High-precision signed integer 2x2 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 149 of file type_vec.hpp.

+

Definition at line 65 of file matrix_integer.hpp.

- +
- +
typedef detail::tvec3<bool, highp> highp_bvec3typedef tmat2x2<int, highp> highp_imat2x2
-

3 components vector of high precision bool numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+

High-precision signed integer 2x2 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 259 of file type_vec.hpp.

+

Definition at line 77 of file matrix_integer.hpp.

- +
- +
typedef detail::tvec4<bool, highp> highp_bvec4typedef tmat2x3<int, highp> highp_imat2x3
-

4 components vector of high precision bool numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+

High-precision signed integer 2x3 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 354 of file type_vec.hpp.

+

Definition at line 81 of file matrix_integer.hpp.

- +
- +
typedef detail::tmat2x2<double, highp> highp_dmat2typedef tmat2x4<int, highp> highp_imat2x4
-

2 columns of 2 components matrix of high precision floating-point numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+

High-precision signed integer 2x4 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 466 of file type_mat.hpp.

+

Definition at line 85 of file matrix_integer.hpp.

- +
- +
typedef detail::tmat2x2<double, highp> highp_dmat2x2typedef tmat3x3<int, highp> highp_imat3
-

2 columns of 2 components matrix of high precision floating-point numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+

High-precision signed integer 3x3 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 484 of file type_mat.hpp.

+

Definition at line 69 of file matrix_integer.hpp.

- +
- +
typedef detail::tmat2x3<double, highp> highp_dmat2x3typedef tmat3x2<int, highp> highp_imat3x2
-

2 columns of 3 components matrix of high precision floating-point numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+

High-precision signed integer 3x2 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 507 of file type_mat.hpp.

+

Definition at line 89 of file matrix_integer.hpp.

- +
- +
typedef detail::tmat2x4<double, highp> highp_dmat2x4typedef tmat3x3<int, highp> highp_imat3x3
-

2 columns of 4 components matrix of high precision floating-point numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+

High-precision signed integer 3x3 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 530 of file type_mat.hpp.

+

Definition at line 93 of file matrix_integer.hpp.

- +
- +
typedef detail::tmat3x3<double, highp> highp_dmat3typedef tmat3x4<int, highp> highp_imat3x4
-

3 columns of 3 components matrix of high precision floating-point numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+

High-precision signed integer 3x4 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 576 of file type_mat.hpp.

+

Definition at line 97 of file matrix_integer.hpp.

- +
- +
typedef detail::tmat3x2<double, highp> highp_dmat3x2typedef tmat4x4<int, highp> highp_imat4
-

3 columns of 2 components matrix of high precision floating-point numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+

High-precision signed integer 4x4 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 553 of file type_mat.hpp.

+

Definition at line 73 of file matrix_integer.hpp.

- +
- +
typedef detail::tmat3x3<double, highp> highp_dmat3x3typedef tmat4x2<int, highp> highp_imat4x2
-

3 columns of 3 components matrix of high precision floating-point numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+

High-precision signed integer 4x2 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 594 of file type_mat.hpp.

+

Definition at line 101 of file matrix_integer.hpp.

- +
- +
typedef detail::tmat3x4<double, highp> highp_dmat3x4typedef tmat4x3<int, highp> highp_imat4x3
-

3 columns of 4 components matrix of high precision floating-point numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+

High-precision signed integer 4x3 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 617 of file type_mat.hpp.

+

Definition at line 105 of file matrix_integer.hpp.

- +
- +
typedef detail::tmat4x4<double, highp> highp_dmat4typedef tmat4x4<int, highp> highp_imat4x4
-

4 columns of 4 components matrix of high precision floating-point numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+

High-precision signed integer 4x4 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 686 of file type_mat.hpp.

+

Definition at line 109 of file matrix_integer.hpp.

- +
- +
typedef detail::tmat4x2<double, highp> highp_dmat4x2typedef tmat2x2<uint, highp> highp_umat2
-

4 columns of 2 components matrix of high precision floating-point numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+

High-precision unsigned integer 2x2 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 640 of file type_mat.hpp.

+

Definition at line 214 of file matrix_integer.hpp.

- +
- +
typedef detail::tmat4x3<double, highp> highp_dmat4x3typedef tmat2x2<uint, highp> highp_umat2x2
-

4 columns of 3 components matrix of high precision floating-point numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+

High-precision unsigned integer 2x2 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 663 of file type_mat.hpp.

+

Definition at line 226 of file matrix_integer.hpp.

- +
- +
typedef detail::tmat4x4<double, highp> highp_dmat4x4typedef tmat2x3<uint, highp> highp_umat2x3
-

4 columns of 4 components matrix of high precision floating-point numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+

High-precision unsigned integer 2x3 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 704 of file type_mat.hpp.

+

Definition at line 230 of file matrix_integer.hpp.

- +
- +
typedef detail::tvec2<double, highp> highp_dvec2typedef tmat2x4<uint, highp> highp_umat2x4
-

2 components vector of high double-precision floating-point numbers.

-

There is no guarantee on the actual precision.

-
See Also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+

High-precision unsigned integer 2x4 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 86 of file type_vec.hpp.

+

Definition at line 234 of file matrix_integer.hpp.

- +
- +
typedef detail::tvec3<double, highp> highp_dvec3typedef tmat3x3<uint, highp> highp_umat3
-

3 components vector of high double-precision floating-point numbers.

-

There is no guarantee on the actual precision.

-
See Also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+

High-precision unsigned integer 3x3 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 197 of file type_vec.hpp.

+

Definition at line 218 of file matrix_integer.hpp.

- +
- +
typedef detail::tvec4<double, highp> highp_dvec4typedef tmat3x2<uint, highp> highp_umat3x2
-

4 components vector of high double-precision floating-point numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+

High-precision unsigned integer 3x2 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 300 of file type_vec.hpp.

+

Definition at line 238 of file matrix_integer.hpp.

- +
- +
typedef highp_float_t highp_floattypedef tmat3x3<uint, highp> highp_umat3x3
-

High precision floating-point numbers.

-

There is no guarantee on the actual precision.

-
See Also
GLSL 4.20.8 specification, section 4.1.4 Floats
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+

High-precision unsigned integer 3x3 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 67 of file type_float.hpp.

+

Definition at line 242 of file matrix_integer.hpp.

- +
- +
typedef detail::highp_int_t highp_inttypedef tmat3x4<uint, highp> highp_umat3x4
-

High precision signed integer.

-

There is no guarantee on the actual precision.

-
See Also
GLSL 4.20.8 specification, section 4.1.3 Integers
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+

High-precision unsigned integer 3x4 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 121 of file type_int.hpp.

+

Definition at line 246 of file matrix_integer.hpp.

- +
- +
typedef detail::tvec2<int, highp> highp_ivec2typedef tmat4x4<uint, highp> highp_umat4
-

2 components vector of high precision signed integer numbers.

-

There is no guarantee on the actual precision.

-
See Also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+

High-precision unsigned integer 4x4 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 107 of file type_vec.hpp.

+

Definition at line 222 of file matrix_integer.hpp.

- +
- +
typedef detail::tvec3<int, highp> highp_ivec3typedef tmat4x2<uint, highp> highp_umat4x2
-

3 components vector of high precision signed integer numbers.

-

There is no guarantee on the actual precision.

-
See Also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+

High-precision unsigned integer 4x2 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 218 of file type_vec.hpp.

+

Definition at line 250 of file matrix_integer.hpp.

- +
- +
typedef detail::tvec4<int, highp> highp_ivec4typedef tmat4x3<uint, highp> highp_umat4x3
-

4 components vector of high precision signed integer numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+

High-precision unsigned integer 4x3 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 318 of file type_vec.hpp.

+

Definition at line 254 of file matrix_integer.hpp.

- +
- +
typedef detail::tmat2x2< float, highp > highp_mat2typedef tmat4x4<uint, highp> highp_umat4x4
-

2 columns of 2 components matrix of high precision floating-point numbers.

-

There is no guarantee on the actual precision.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+

High-precision unsigned integer 4x4 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 79 of file type_mat.hpp.

+

Definition at line 258 of file matrix_integer.hpp.

- +
- +
typedef detail::tmat2x2< float, highp > highp_mat2x2typedef mediump_imat2 imat2
-

2 columns of 2 components matrix of high precision floating-point numbers.

-

There is no guarantee on the actual precision.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+

Signed integer 2x2 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 100 of file type_mat.hpp.

+

Definition at line 390 of file matrix_integer.hpp.

- +
- +
typedef detail::tmat2x3< float, highp > highp_mat2x3typedef mediump_imat2x2 imat2x2
-

2 columns of 3 components matrix of high precision floating-point numbers.

-

There is no guarantee on the actual precision.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+

Signed integer 2x2 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 126 of file type_mat.hpp.

+

Definition at line 402 of file matrix_integer.hpp.

- +
- +
typedef detail::tmat2x4< float, highp > highp_mat2x4typedef mediump_imat2x3 imat2x3
-

2 columns of 4 components matrix of high precision floating-point numbers.

-

There is no guarantee on the actual precision.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+

Signed integer 2x3 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 152 of file type_mat.hpp.

+

Definition at line 406 of file matrix_integer.hpp.

- +
- +
typedef detail::tmat3x3< float, highp > highp_mat3typedef mediump_imat2x4 imat2x4
-

3 columns of 3 components matrix of high precision floating-point numbers.

-

There is no guarantee on the actual precision.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+

Signed integer 2x4 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 204 of file type_mat.hpp.

+

Definition at line 410 of file matrix_integer.hpp.

- +
- +
typedef detail::tmat3x2< float, highp > highp_mat3x2typedef mediump_imat3 imat3
-

3 columns of 2 components matrix of high precision floating-point numbers.

-

There is no guarantee on the actual precision.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+

Signed integer 3x3 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 178 of file type_mat.hpp.

+

Definition at line 394 of file matrix_integer.hpp.

- +
- +
typedef detail::tmat3x3< float, highp > highp_mat3x3typedef mediump_imat3x2 imat3x2
-

3 columns of 3 components matrix of high precision floating-point numbers.

-

There is no guarantee on the actual precision.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+

Signed integer 3x2 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 225 of file type_mat.hpp.

+

Definition at line 414 of file matrix_integer.hpp.

- +
- +
typedef detail::tmat3x4< float, highp > highp_mat3x4typedef mediump_imat3x3 imat3x3
-

3 columns of 4 components matrix of high precision floating-point numbers.

-

There is no guarantee on the actual precision.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+

Signed integer 3x3 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 251 of file type_mat.hpp.

+

Definition at line 418 of file matrix_integer.hpp.

- +
- +
typedef detail::tmat4x4< float, highp > highp_mat4typedef mediump_imat3x4 imat3x4
-

4 columns of 4 components matrix of high precision floating-point numbers.

-

There is no guarantee on the actual precision.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+

Signed integer 3x4 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 330 of file type_mat.hpp.

+

Definition at line 422 of file matrix_integer.hpp.

- +
- +
typedef detail::tmat4x2< float, highp > highp_mat4x2typedef mediump_imat4 imat4
-

4 columns of 2 components matrix of high precision floating-point numbers.

-

There is no guarantee on the actual precision.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+

Signed integer 4x4 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 277 of file type_mat.hpp.

+

Definition at line 398 of file matrix_integer.hpp.

- +
- +
typedef detail::tmat4x3< float, highp > highp_mat4x3typedef mediump_imat4x2 imat4x2
-

4 columns of 3 components matrix of high precision floating-point numbers.

-

There is no guarantee on the actual precision.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+

Signed integer 4x2 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 303 of file type_mat.hpp.

+

Definition at line 426 of file matrix_integer.hpp.

- +
- +
typedef detail::tmat4x4< float, highp > highp_mat4x4typedef mediump_imat4x3 imat4x3
-

4 columns of 4 components matrix of high precision floating-point numbers.

-

There is no guarantee on the actual precision.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+

Signed integer 4x3 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 351 of file type_mat.hpp.

+

Definition at line 430 of file matrix_integer.hpp.

- +
- +
typedef detail::highp_uint_t highp_uinttypedef mediump_imat4x4 imat4x4
-

High precision unsigned integer.

-

There is no guarantee on the actual precision.

-
See Also
GLSL 4.20.8 specification, section 4.1.3 Integers
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+

Signed integer 4x4 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 142 of file type_int.hpp.

+

Definition at line 434 of file matrix_integer.hpp.

- +
- +
typedef detail::tvec2<uint, highp> highp_uvec2typedef tmat2x2<int, lowp> lowp_imat2
-

2 components vector of high precision unsigned integer numbers.

-

There is no guarantee on the actual precision.

-
See Also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+

Low-precision signed integer 2x2 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 128 of file type_vec.hpp.

+

Definition at line 164 of file matrix_integer.hpp.

- +
- +
typedef detail::tvec3<uint, highp> highp_uvec3typedef tmat2x2<int, lowp> lowp_imat2x2
-

3 components vector of high precision unsigned integer numbers.

-

There is no guarantee on the actual precision.

-
See Also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+

Low-precision signed integer 2x2 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 239 of file type_vec.hpp.

+

Definition at line 177 of file matrix_integer.hpp.

- +
- +
typedef detail::tvec4<uint, highp> highp_uvec4typedef tmat2x3<int, lowp> lowp_imat2x3
-

4 components vector of high precision unsigned integer numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+

Low-precision signed integer 2x3 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 336 of file type_vec.hpp.

+

Definition at line 181 of file matrix_integer.hpp.

- +
- +
typedef detail::tvec2< float, highp > highp_vec2typedef tmat2x4<int, lowp> lowp_imat2x4
-

2 components vector of high single-precision floating-point numbers.

-

High Single-precision floating-point vector of 2 components.

-

There is no guarantee on the actual precision.

-
See Also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
-
-GLM_GTC_type_precision
+

Low-precision signed integer 2x4 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 65 of file type_vec.hpp.

+

Definition at line 185 of file matrix_integer.hpp.

- +
- +
typedef detail::tvec3< float, highp > highp_vec3typedef tmat3x3<int, lowp> lowp_imat3
-

3 components vector of high single-precision floating-point numbers.

-

High Single-precision floating-point vector of 3 components.

-

There is no guarantee on the actual precision.

-
See Also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
-
-GLM_GTC_type_precision
+

Low-precision signed integer 3x3 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 176 of file type_vec.hpp.

+

Definition at line 168 of file matrix_integer.hpp.

- +
- +
typedef detail::tvec4< float, highp > highp_vec4typedef tmat3x2<int, lowp> lowp_imat3x2
-

4 components vector of high single-precision floating-point numbers.

-

High Single-precision floating-point vector of 4 components.

-
See Also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
-
-GLM_GTC_type_precision
+

Low-precision signed integer 3x2 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 282 of file type_vec.hpp.

+

Definition at line 189 of file matrix_integer.hpp.

- +
- +
typedef detail::tvec2<bool, lowp> lowp_bvec2typedef tmat3x3<int, lowp> lowp_imat3x3
-

2 components vector of low precision bool numbers.

-

There is no guarantee on the actual precision.

-
See Also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+

Low-precision signed integer 3x3 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 163 of file type_vec.hpp.

+

Definition at line 193 of file matrix_integer.hpp.

- +
- +
typedef detail::tvec3<bool, lowp> lowp_bvec3typedef tmat3x4<int, lowp> lowp_imat3x4
-

3 components vector of low precision bool numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+

Low-precision signed integer 3x4 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 271 of file type_vec.hpp.

+

Definition at line 197 of file matrix_integer.hpp.

- +
- +
typedef detail::tvec4<bool, lowp> lowp_bvec4typedef tmat4x4<int, lowp> lowp_imat4
-

4 components vector of low precision bool numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+

Low-precision signed integer 4x4 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 366 of file type_vec.hpp.

+

Definition at line 172 of file matrix_integer.hpp.

- +
- +
typedef detail::tmat2x2<double, lowp> lowp_dmat2typedef tmat4x2<int, lowp> lowp_imat4x2
-

2 columns of 2 components matrix of low precision floating-point numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+

Low-precision signed integer 4x2 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 454 of file type_mat.hpp.

+

Definition at line 201 of file matrix_integer.hpp.

- +
- +
typedef detail::tmat2x2<double, lowp> lowp_dmat2x2typedef tmat4x3<int, lowp> lowp_imat4x3
-

2 columns of 2 components matrix of low precision floating-point numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+

Low-precision signed integer 4x3 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 472 of file type_mat.hpp.

+

Definition at line 205 of file matrix_integer.hpp.

- +
- +
typedef detail::tmat2x3<double, lowp> lowp_dmat2x3typedef tmat4x4<int, lowp> lowp_imat4x4
-

2 columns of 3 components matrix of low precision floating-point numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+

Low-precision signed integer 4x4 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 495 of file type_mat.hpp.

+

Definition at line 209 of file matrix_integer.hpp.

- +
- +
typedef detail::tmat2x4<double, lowp> lowp_dmat2x4typedef tmat2x2<uint, lowp> lowp_umat2
-

2 columns of 4 components matrix of low precision floating-point numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+

Low-precision unsigned integer 2x2 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 518 of file type_mat.hpp.

+

Definition at line 313 of file matrix_integer.hpp.

- +
- +
typedef detail::tmat3x3<float, lowp> lowp_dmat3typedef tmat2x2<uint, lowp> lowp_umat2x2
-

3 columns of 3 components matrix of low precision floating-point numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+

Low-precision unsigned integer 2x2 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 564 of file type_mat.hpp.

+

Definition at line 326 of file matrix_integer.hpp.

- +
- +
typedef detail::tmat3x2<double, lowp> lowp_dmat3x2typedef tmat2x3<uint, lowp> lowp_umat2x3
-

3 columns of 2 components matrix of low precision floating-point numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+

Low-precision unsigned integer 2x3 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 541 of file type_mat.hpp.

+

Definition at line 330 of file matrix_integer.hpp.

- +
- +
typedef detail::tmat3x3<double, lowp> lowp_dmat3x3typedef tmat2x4<uint, lowp> lowp_umat2x4
-

3 columns of 3 components matrix of low precision floating-point numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+

Low-precision unsigned integer 2x4 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 582 of file type_mat.hpp.

+

Definition at line 334 of file matrix_integer.hpp.

- +
- +
typedef detail::tmat3x4<double, lowp> lowp_dmat3x4typedef tmat3x3<uint, lowp> lowp_umat3
-

3 columns of 4 components matrix of low precision floating-point numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+

Low-precision unsigned integer 3x3 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 605 of file type_mat.hpp.

+

Definition at line 317 of file matrix_integer.hpp.

- +
- +
typedef detail::tmat4x4<double, lowp> lowp_dmat4typedef tmat3x2<uint, lowp> lowp_umat3x2
-

4 columns of 4 components matrix of low precision floating-point numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+

Low-precision unsigned integer 3x2 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 674 of file type_mat.hpp.

+

Definition at line 338 of file matrix_integer.hpp.

- +
- +
typedef detail::tmat4x2<double, lowp> lowp_dmat4x2typedef tmat3x3<uint, lowp> lowp_umat3x3
-

4 columns of 2 components matrix of low precision floating-point numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+

Low-precision unsigned integer 3x3 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 628 of file type_mat.hpp.

+

Definition at line 342 of file matrix_integer.hpp.

- +
- +
typedef detail::tmat4x3<double, lowp> lowp_dmat4x3typedef tmat3x4<uint, lowp> lowp_umat3x4
-

4 columns of 3 components matrix of low precision floating-point numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+

Low-precision unsigned integer 3x4 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 651 of file type_mat.hpp.

+

Definition at line 346 of file matrix_integer.hpp.

- +
- +
typedef detail::tmat4x4<double, lowp> lowp_dmat4x4typedef tmat4x4<uint, lowp> lowp_umat4
-

4 columns of 4 components matrix of low precision floating-point numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+

Low-precision unsigned integer 4x4 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 692 of file type_mat.hpp.

+

Definition at line 321 of file matrix_integer.hpp.

- +
- +
typedef detail::tvec2<double, lowp> lowp_dvec2typedef tmat4x2<uint, lowp> lowp_umat4x2
-

2 components vector of low double-precision floating-point numbers.

-

There is no guarantee on the actual precision.

-
See Also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+

Low-precision unsigned integer 4x2 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 100 of file type_vec.hpp.

+

Definition at line 350 of file matrix_integer.hpp.

- +
- +
typedef detail::tvec3<double, lowp> lowp_dvec3typedef tmat4x3<uint, lowp> lowp_umat4x3
-

3 components vector of low double-precision floating-point numbers.

-

There is no guarantee on the actual precision.

-
See Also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+

Low-precision unsigned integer 4x3 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 211 of file type_vec.hpp.

+

Definition at line 354 of file matrix_integer.hpp.

- +
- +
typedef detail::tvec4<double, lowp> lowp_dvec4typedef tmat4x4<uint, lowp> lowp_umat4x4
-

4 components vector of low double-precision floating-point numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+

Low-precision unsigned integer 4x4 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 312 of file type_vec.hpp.

+

Definition at line 358 of file matrix_integer.hpp.

- +
- +
typedef lowp_float_t lowp_floattypedef tmat2x2<int, mediump> mediump_imat2
-

Low precision floating-point numbers.

-

There is no guarantee on the actual precision.

-
See Also
GLSL 4.20.8 specification, section 4.1.4 Floats
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+

Medium-precision signed integer 2x2 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 53 of file type_float.hpp.

+

Definition at line 114 of file matrix_integer.hpp.

- +
- +
typedef detail::lowp_int_t lowp_inttypedef tmat2x2<int, mediump> mediump_imat2x2
-

Low precision signed integer.

-

There is no guarantee on the actual precision.

-
See Also
GLSL 4.20.8 specification, section 4.1.3 Integers
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+

Medium-precision signed integer 2x2 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 107 of file type_int.hpp.

+

Definition at line 127 of file matrix_integer.hpp.

- +
- +
typedef detail::tvec2<int, lowp> lowp_ivec2typedef tmat2x3<int, mediump> mediump_imat2x3
-

2 components vector of low precision signed integer numbers.

-

There is no guarantee on the actual precision.

-
See Also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+

Medium-precision signed integer 2x3 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 121 of file type_vec.hpp.

+

Definition at line 131 of file matrix_integer.hpp.

- +
- +
typedef detail::tvec3<int, lowp> lowp_ivec3typedef tmat2x4<int, mediump> mediump_imat2x4
-

3 components vector of low precision signed integer numbers.

-

There is no guarantee on the actual precision.

-
See Also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+

Medium-precision signed integer 2x4 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 232 of file type_vec.hpp.

+

Definition at line 135 of file matrix_integer.hpp.

- +
- +
typedef detail::tvec4<int, lowp> lowp_ivec4typedef tmat3x3<int, mediump> mediump_imat3
-

4 components vector of low precision signed integer numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+

Medium-precision signed integer 3x3 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 330 of file type_vec.hpp.

+

Definition at line 118 of file matrix_integer.hpp.

- +
- +
typedef detail::tmat2x2< float, lowp > lowp_mat2typedef tmat3x2<int, mediump> mediump_imat3x2
-

2 columns of 2 components matrix of low precision floating-point numbers.

-

There is no guarantee on the actual precision.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+

Medium-precision signed integer 3x2 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 65 of file type_mat.hpp.

+

Definition at line 139 of file matrix_integer.hpp.

- +
- +
typedef detail::tmat2x2< float, lowp > lowp_mat2x2typedef tmat3x3<int, mediump> mediump_imat3x3
-

2 columns of 2 components matrix of low precision floating-point numbers.

-

There is no guarantee on the actual precision.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+

Medium-precision signed integer 3x3 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 86 of file type_mat.hpp.

+

Definition at line 143 of file matrix_integer.hpp.

- +
- +
typedef detail::tmat2x3< float, lowp > lowp_mat2x3typedef tmat3x4<int, mediump> mediump_imat3x4
-

2 columns of 3 components matrix of low precision floating-point numbers.

-

There is no guarantee on the actual precision.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+

Medium-precision signed integer 3x4 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 112 of file type_mat.hpp.

+

Definition at line 147 of file matrix_integer.hpp.

- +
- +
typedef detail::tmat2x4< float, lowp > lowp_mat2x4typedef tmat4x4<int, mediump> mediump_imat4
-

2 columns of 4 components matrix of low precision floating-point numbers.

-

There is no guarantee on the actual precision.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+

Medium-precision signed integer 4x4 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 138 of file type_mat.hpp.

+

Definition at line 122 of file matrix_integer.hpp.

- +
- +
typedef detail::tmat3x3< float, lowp > lowp_mat3typedef tmat4x2<int, mediump> mediump_imat4x2
-

3 columns of 3 components matrix of low precision floating-point numbers.

-

There is no guarantee on the actual precision.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+

Medium-precision signed integer 4x2 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 190 of file type_mat.hpp.

+

Definition at line 151 of file matrix_integer.hpp.

- +
- +
typedef detail::tmat3x2< float, lowp > lowp_mat3x2typedef tmat4x3<int, mediump> mediump_imat4x3
-

3 columns of 2 components matrix of low precision floating-point numbers.

-

There is no guarantee on the actual precision.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+

Medium-precision signed integer 4x3 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 164 of file type_mat.hpp.

+

Definition at line 155 of file matrix_integer.hpp.

- +
- +
typedef detail::tmat3x3< float, lowp > lowp_mat3x3typedef tmat4x4<int, mediump> mediump_imat4x4
-

3 columns of 3 components matrix of low precision floating-point numbers.

-

There is no guarantee on the actual precision.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+

Medium-precision signed integer 4x4 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 211 of file type_mat.hpp.

+

Definition at line 159 of file matrix_integer.hpp.

- +
- +
typedef detail::tmat3x4< float, lowp > lowp_mat3x4typedef tmat2x2<uint, mediump> mediump_umat2
-

3 columns of 4 components matrix of low precision floating-point numbers.

-

There is no guarantee on the actual precision.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+

Medium-precision unsigned integer 2x2 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 237 of file type_mat.hpp.

+

Definition at line 263 of file matrix_integer.hpp.

- +
- +
typedef detail::tmat4x4< float, lowp > lowp_mat4typedef tmat2x2<uint, mediump> mediump_umat2x2
-

4 columns of 4 components matrix of low precision floating-point numbers.

-

There is no guarantee on the actual precision.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+

Medium-precision unsigned integer 2x2 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 316 of file type_mat.hpp.

+

Definition at line 276 of file matrix_integer.hpp.

- +
- +
typedef detail::tmat4x2< float, lowp > lowp_mat4x2typedef tmat2x3<uint, mediump> mediump_umat2x3
-

4 columns of 2 components matrix of low precision floating-point numbers.

-

There is no guarantee on the actual precision.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+

Medium-precision unsigned integer 2x3 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 263 of file type_mat.hpp.

+

Definition at line 280 of file matrix_integer.hpp.

- +
- +
typedef detail::tmat4x3< float, lowp > lowp_mat4x3typedef tmat2x4<uint, mediump> mediump_umat2x4
-

4 columns of 3 components matrix of low precision floating-point numbers.

-

There is no guarantee on the actual precision.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+

Medium-precision unsigned integer 2x4 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 289 of file type_mat.hpp.

+

Definition at line 284 of file matrix_integer.hpp.

- +
- +
typedef detail::tmat4x4< float, lowp > lowp_mat4x4typedef tmat3x3<uint, mediump> mediump_umat3
-

4 columns of 4 components matrix of low precision floating-point numbers.

-

There is no guarantee on the actual precision.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+

Medium-precision unsigned integer 3x3 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 337 of file type_mat.hpp.

+

Definition at line 267 of file matrix_integer.hpp.

- +
- +
typedef detail::lowp_uint_t lowp_uinttypedef tmat3x2<uint, mediump> mediump_umat3x2
-

Low precision unsigned integer.

-

There is no guarantee on the actual precision.

-
See Also
GLSL 4.20.8 specification, section 4.1.3 Integers
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+

Medium-precision unsigned integer 3x2 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 128 of file type_int.hpp.

+

Definition at line 288 of file matrix_integer.hpp.

- +
- +
typedef detail::tvec2<uint, lowp> lowp_uvec2typedef tmat3x3<uint, mediump> mediump_umat3x3
-

2 components vector of low precision unsigned integer numbers.

-

There is no guarantee on the actual precision.

-
See Also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+

Medium-precision unsigned integer 3x3 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 142 of file type_vec.hpp.

+

Definition at line 292 of file matrix_integer.hpp.

- +
- +
typedef detail::tvec3<uint, lowp> lowp_uvec3typedef tmat3x4<uint, mediump> mediump_umat3x4
-

3 components vector of low precision unsigned integer numbers.

-

There is no guarantee on the actual precision.

-
See Also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+

Medium-precision unsigned integer 3x4 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 253 of file type_vec.hpp.

+

Definition at line 296 of file matrix_integer.hpp.

- +
- +
typedef detail::tvec4<uint, lowp> lowp_uvec4typedef tmat4x4<uint, mediump> mediump_umat4
-

4 components vector of low precision unsigned integer numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+

Medium-precision unsigned integer 4x4 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 348 of file type_vec.hpp.

+

Definition at line 271 of file matrix_integer.hpp.

- +
- +
typedef detail::tvec2< float, lowp > lowp_vec2typedef tmat4x2<uint, mediump> mediump_umat4x2
-

2 components vector of low single-precision floating-point numbers.

-

Low single-precision floating-point vector of 2 components.

-

There is no guarantee on the actual precision.

-
See Also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
-
-GLM_GTC_type_precision
+

Medium-precision unsigned integer 4x2 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 79 of file type_vec.hpp.

+

Definition at line 300 of file matrix_integer.hpp.

- +
- +
typedef detail::tvec3< float, lowp > lowp_vec3typedef tmat4x3<uint, mediump> mediump_umat4x3
-

3 components vector of low single-precision floating-point numbers.

-

Low single-precision floating-point vector of 3 components.

-

There is no guarantee on the actual precision.

-
See Also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
-
-GLM_GTC_type_precision
+

Medium-precision unsigned integer 4x3 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 190 of file type_vec.hpp.

+

Definition at line 304 of file matrix_integer.hpp.

- +
- +
typedef detail::tvec4< float, lowp > lowp_vec4typedef tmat4x4<uint, mediump> mediump_umat4x4
-

4 components vector of low single-precision floating-point numbers.

-

Low single-precision floating-point vector of 4 components.

-
See Also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
-
-GLM_GTC_type_precision
+

Medium-precision unsigned integer 4x4 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 294 of file type_vec.hpp.

+

Definition at line 308 of file matrix_integer.hpp.

- +
- +
typedef detail::tvec2<bool, mediump> mediump_bvec2typedef mediump_umat2 umat2
-

2 components vector of medium precision bool numbers.

-

There is no guarantee on the actual precision.

-
See Also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+

Unsigned integer 2x2 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 156 of file type_vec.hpp.

+

Definition at line 467 of file matrix_integer.hpp.

- +
- +
typedef detail::tvec3<bool, mediump> mediump_bvec3typedef mediump_umat2x2 umat2x2
-

3 components vector of medium precision bool numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+

Unsigned integer 2x2 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 265 of file type_vec.hpp.

+

Definition at line 479 of file matrix_integer.hpp.

- +
- +
typedef detail::tvec4<bool, mediump> mediump_bvec4typedef mediump_umat2x3 umat2x3
-

4 components vector of medium precision bool numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+

Unsigned integer 2x3 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 360 of file type_vec.hpp.

+

Definition at line 483 of file matrix_integer.hpp.

- +
- +
typedef detail::tmat2x2<double, mediump> mediump_dmat2typedef mediump_umat2x4 umat2x4
-

2 columns of 2 components matrix of medium precision floating-point numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+

Unsigned integer 2x4 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 460 of file type_mat.hpp.

+

Definition at line 487 of file matrix_integer.hpp.

- +
- +
typedef detail::tmat2x2<double, mediump> mediump_dmat2x2typedef mediump_umat3 umat3
-

2 columns of 2 components matrix of medium precision floating-point numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+

Unsigned integer 3x3 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 478 of file type_mat.hpp.

+

Definition at line 471 of file matrix_integer.hpp.

- +
- +
typedef detail::tmat2x3<double, mediump> mediump_dmat2x3typedef mediump_umat3x2 umat3x2
-

2 columns of 3 components matrix of medium precision floating-point numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+

Unsigned integer 3x2 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 501 of file type_mat.hpp.

+

Definition at line 491 of file matrix_integer.hpp.

- +
- +
typedef detail::tmat2x4<double, mediump> mediump_dmat2x4typedef mediump_umat3x3 umat3x3
-

2 columns of 4 components matrix of medium precision floating-point numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+

Unsigned integer 3x3 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 524 of file type_mat.hpp.

+

Definition at line 495 of file matrix_integer.hpp.

- +
- +
typedef detail::tmat3x3<double, mediump> mediump_dmat3typedef mediump_umat3x4 umat3x4
-

3 columns of 3 components matrix of medium precision floating-point numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+

Unsigned integer 3x4 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 570 of file type_mat.hpp.

+

Definition at line 499 of file matrix_integer.hpp.

- +
- +
typedef detail::tmat3x2<double, mediump> mediump_dmat3x2typedef mediump_umat4 umat4
-

3 columns of 2 components matrix of medium precision floating-point numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+

Unsigned integer 4x4 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 547 of file type_mat.hpp.

+

Definition at line 475 of file matrix_integer.hpp.

- +
- +
typedef detail::tmat3x3<double, mediump> mediump_dmat3x3typedef mediump_umat4x2 umat4x2
-

3 columns of 3 components matrix of medium precision floating-point numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+

Unsigned integer 4x2 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 588 of file type_mat.hpp.

+

Definition at line 503 of file matrix_integer.hpp.

- +
- +
typedef detail::tmat3x4<double, mediump> mediump_dmat3x4typedef mediump_umat4x3 umat4x3
-

3 columns of 4 components matrix of medium precision floating-point numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+

Unsigned integer 4x3 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 611 of file type_mat.hpp.

+

Definition at line 507 of file matrix_integer.hpp.

- +
- +
typedef detail::tmat4x4<double, mediump> mediump_dmat4typedef mediump_umat4x4 umat4x4
-

4 columns of 4 components matrix of medium precision floating-point numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+

Unsigned integer 4x4 matrix.

+
See also
GLM_GTC_matrix_integer
-

Definition at line 680 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x2<double, mediump> mediump_dmat4x2
-
- -

4 columns of 2 components matrix of medium precision floating-point numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 634 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x3<double, mediump> mediump_dmat4x3
-
- -

4 columns of 3 components matrix of medium precision floating-point numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 657 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x4<double, mediump> mediump_dmat4x4
-
- -

4 columns of 4 components matrix of medium precision floating-point numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 698 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2<double, mediump> mediump_dvec2
-
- -

2 components vector of medium double-precision floating-point numbers.

-

There is no guarantee on the actual precision.

-
See Also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 93 of file type_vec.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3<double, mediump> mediump_dvec3
-
- -

3 components vector of medium double-precision floating-point numbers.

-

There is no guarantee on the actual precision.

-
See Also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 204 of file type_vec.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4<double, mediump> mediump_dvec4
-
- -

4 components vector of medium double-precision floating-point numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 306 of file type_vec.hpp.

- -
-
- -
-
- - - - -
typedef mediump_float_t mediump_float
-
- -

Medium precision floating-point numbers.

-

There is no guarantee on the actual precision.

-
See Also
GLSL 4.20.8 specification, section 4.1.4 Floats
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 60 of file type_float.hpp.

- -
-
- -
-
- - - - -
typedef detail::mediump_int_t mediump_int
-
- -

Medium precision signed integer.

-

There is no guarantee on the actual precision.

-
See Also
GLSL 4.20.8 specification, section 4.1.3 Integers
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 114 of file type_int.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2<int, mediump> mediump_ivec2
-
- -

2 components vector of medium precision signed integer numbers.

-

There is no guarantee on the actual precision.

-
See Also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 114 of file type_vec.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3<int, mediump> mediump_ivec3
-
- -

3 components vector of medium precision signed integer numbers.

-

There is no guarantee on the actual precision.

-
See Also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 225 of file type_vec.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4<int, mediump> mediump_ivec4
-
- -

4 components vector of medium precision signed integer numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 324 of file type_vec.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x2< float, mediump > mediump_mat2
-
- -

2 columns of 2 components matrix of medium precision floating-point numbers.

-

There is no guarantee on the actual precision.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 72 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x2< float, mediump > mediump_mat2x2
-
- -

2 columns of 2 components matrix of medium precision floating-point numbers.

-

There is no guarantee on the actual precision.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 93 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x3< float, mediump > mediump_mat2x3
-
- -

2 columns of 3 components matrix of medium precision floating-point numbers.

-

There is no guarantee on the actual precision.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 119 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x4< float, mediump > mediump_mat2x4
-
- -

2 columns of 4 components matrix of medium precision floating-point numbers.

-

There is no guarantee on the actual precision.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 145 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x3< float, mediump > mediump_mat3
-
- -

3 columns of 3 components matrix of medium precision floating-point numbers.

-

There is no guarantee on the actual precision.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 197 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x2< float, mediump > mediump_mat3x2
-
- -

3 columns of 2 components matrix of medium precision floating-point numbers.

-

There is no guarantee on the actual precision.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 171 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x3< float, mediump > mediump_mat3x3
-
- -

3 columns of 3 components matrix of medium precision floating-point numbers.

-

There is no guarantee on the actual precision.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 218 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x4< float, mediump > mediump_mat3x4
-
- -

3 columns of 4 components matrix of medium precision floating-point numbers.

-

There is no guarantee on the actual precision.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 244 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x4< float, mediump > mediump_mat4
-
- -

4 columns of 4 components matrix of medium precision floating-point numbers.

-

There is no guarantee on the actual precision.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 323 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x2< float, mediump > mediump_mat4x2
-
- -

4 columns of 2 components matrix of medium precision floating-point numbers.

-

There is no guarantee on the actual precision.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 270 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x3< float, mediump > mediump_mat4x3
-
- -

4 columns of 3 components matrix of medium precision floating-point numbers.

-

There is no guarantee on the actual precision.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 296 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x4< float, mediump > mediump_mat4x4
-
- -

4 columns of 4 components matrix of medium precision floating-point numbers.

-

There is no guarantee on the actual precision.

-
See Also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 344 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef detail::mediump_uint_t mediump_uint
-
- -

Medium precision unsigned integer.

-

There is no guarantee on the actual precision.

-
See Also
GLSL 4.20.8 specification, section 4.1.3 Integers
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 135 of file type_int.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2<uint, mediump> mediump_uvec2
-
- -

2 components vector of medium precision unsigned integer numbers.

-

There is no guarantee on the actual precision.

-
See Also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 135 of file type_vec.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3<uint, mediump> mediump_uvec3
-
- -

3 components vector of medium precision unsigned integer numbers.

-

There is no guarantee on the actual precision.

-
See Also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 246 of file type_vec.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4<uint, mediump> mediump_uvec4
-
- -

4 components vector of medium precision unsigned integer numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 342 of file type_vec.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2< float, mediump > mediump_vec2
-
- -

2 components vector of medium single-precision floating-point numbers.

-

Medium Single-precision floating-point vector of 2 components.

-

There is no guarantee on the actual precision.

-
See Also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
-
-GLM_GTC_type_precision
- -

Definition at line 72 of file type_vec.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3< float, mediump > mediump_vec3
-
- -

3 components vector of medium single-precision floating-point numbers.

-

Medium Single-precision floating-point vector of 3 components.

-

There is no guarantee on the actual precision.

-
See Also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
-
-GLM_GTC_type_precision
- -

Definition at line 183 of file type_vec.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4< float, mediump > mediump_vec4
-
- -

4 components vector of medium single-precision floating-point numbers.

-

Medium Single-precision floating-point vector of 4 components.

-
See Also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
-
-GLM_GTC_type_precision
- -

Definition at line 288 of file type_vec.hpp.

- -
-
- -
-
- - - - -
typedef unsigned int uint
-
- -

Unsigned integer type.

-
See Also
GLSL 4.20.8 specification, section 4.1.3 Integers
- -

Definition at line 171 of file type_int.hpp.

+

Definition at line 511 of file matrix_integer.hpp.

@@ -2928,7 +1879,7 @@ mediump >  diff --git a/doc/api/a00170.html b/doc/api/a00170.html index a384db95..a6b24e9b 100644 --- a/doc/api/a00170.html +++ b/doc/api/a00170.html @@ -3,8 +3,8 @@ - -GLM: Template types + +0.9.6: GLM_GTC_matrix_inverse @@ -16,9 +16,9 @@ + @@ -26,30 +26,104 @@
-
GLM -  0.9.5 +
0.9.6
- +
+
+Functions
-
Template types
+
GLM_GTC_matrix_inverse
-

The generic template types used as the basis for the core types.

-

These types are all templates used to define the actual Types. These templetes are implementation details of GLM types and should not be used explicitly.

+ + + + + + + + +

+Functions

template<typename genType >
GLM_FUNC_DECL genType affineInverse (genType const &m)
 
template<typename genType >
GLM_FUNC_DECL genType inverseTranspose (genType const &m)
 
+

Detailed Description

+

Defines additional matrix inverting functions.

+

<glm/gtc/matrix_inverse.hpp> need to be included to use these functionalities.

+

Function Documentation

+ +
+
+ + + + + + + + +
GLM_FUNC_DECL genType glm::affineInverse (genType const & m)
+
+ +

Fast matrix inverse for affine matrix.

+
Parameters
+ + +
mInput matrix to invert.
+
+
+
Template Parameters
+ + +
genTypeSquared floating-point matrix: half, float or double. Inverse of matrix based of half-precision floating point value is highly innacurate.
+
+
+
See also
GLM_GTC_matrix_inverse
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL genType glm::inverseTranspose (genType const & m)
+
+ +

Compute the inverse transpose of a matrix.

+
Parameters
+ + +
mInput matrix to invert transpose.
+
+
+
Template Parameters
+ + +
genTypeSquared floating-point matrix: half, float or double. Inverse of matrix based of half-precision floating point value is highly innacurate.
+
+
+
See also
GLM_GTC_matrix_inverse
+ +
+
diff --git a/doc/api/a00171.html b/doc/api/a00171.html index 9249494e..cda96d80 100644 --- a/doc/api/a00171.html +++ b/doc/api/a00171.html @@ -3,8 +3,8 @@ - -GLM: GLM_GTC_constants + +0.9.6: GLM_GTC_matrix_transform @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -41,540 +39,905 @@
Functions
-
GLM_GTC_constants
+
GLM_GTC_matrix_transform
GTC Extensions (Stable)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Functions

template<typename genType >
GLM_FUNC_DECL genType e ()
 
template<typename genType >
GLM_FUNC_DECL genType epsilon ()
 
template<typename genType >
GLM_FUNC_DECL genType euler ()
 
template<typename genType >
GLM_FUNC_DECL genType golden_ratio ()
 
template<typename genType >
GLM_FUNC_DECL genType half_pi ()
 
template<typename genType >
GLM_FUNC_DECL genType ln_ln_two ()
 
template<typename genType >
GLM_FUNC_DECL genType ln_ten ()
 
template<typename genType >
GLM_FUNC_DECL genType ln_two ()
 
template<typename genType >
GLM_FUNC_DECL genType one ()
 
template<typename genType >
GLM_FUNC_DECL genType one_over_pi ()
 
template<typename genType >
GLM_FUNC_DECL genType one_over_root_two ()
 
template<typename genType >
GLM_FUNC_DECL genType pi ()
 
template<typename genType >
GLM_FUNC_DECL genType quarter_pi ()
 
template<typename genType >
GLM_FUNC_DECL genType root_five ()
 
template<typename genType >
GLM_FUNC_DECL genType root_half_pi ()
 
template<typename genType >
GLM_FUNC_DECL genType root_ln_four ()
 
template<typename genType >
GLM_FUNC_DECL genType root_pi ()
 
template<typename genType >
GLM_FUNC_DECL genType root_three ()
 
template<typename genType >
GLM_FUNC_DECL genType root_two ()
 
template<typename genType >
GLM_FUNC_DECL genType root_two_pi ()
 
template<typename genType >
GLM_FUNC_DECL genType third ()
 
template<typename genType >
GLM_FUNC_DECL genType two_over_pi ()
 
template<typename genType >
GLM_FUNC_DECL genType two_over_root_pi ()
 
template<typename genType >
GLM_FUNC_DECL genType two_thirds ()
 
template<typename genType >
GLM_FUNC_DECL genType zero ()
 
template<typename T >
GLM_FUNC_DECL tmat4x4< T,
+defaultp > 
frustum (T left, T right, T bottom, T top, T near, T far)
 
template<typename T >
GLM_FUNC_DECL tmat4x4< T,
+defaultp > 
infinitePerspective (T fovy, T aspect, T near)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat4x4< T, P > lookAt (tvec3< T, P > const &eye, tvec3< T, P > const &center, tvec3< T, P > const &up)
 
template<typename T >
GLM_FUNC_DECL tmat4x4< T,
+defaultp > 
ortho (T left, T right, T bottom, T top, T zNear, T zFar)
 
template<typename T >
GLM_FUNC_DECL tmat4x4< T,
+defaultp > 
ortho (T left, T right, T bottom, T top)
 
template<typename T >
GLM_FUNC_DECL tmat4x4< T,
+defaultp > 
perspective (T fovy, T aspect, T near, T far)
 
template<typename T >
GLM_FUNC_DECL tmat4x4< T,
+defaultp > 
perspectiveFov (T fov, T width, T height, T near, T far)
 
template<typename T , precision P, typename U >
GLM_FUNC_DECL tmat4x4< T, P > pickMatrix (tvec2< T, P > const &center, tvec2< T, P > const &delta, tvec4< U, P > const &viewport)
 
template<typename T , typename U , precision P>
GLM_FUNC_DECL tvec3< T, P > project (tvec3< T, P > const &obj, tmat4x4< T, P > const &model, tmat4x4< T, P > const &proj, tvec4< U, P > const &viewport)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat4x4< T, P > rotate (tmat4x4< T, P > const &m, T angle, tvec3< T, P > const &axis)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat4x4< T, P > scale (tmat4x4< T, P > const &m, tvec3< T, P > const &v)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat4x4< T, P > translate (tmat4x4< T, P > const &m, tvec3< T, P > const &v)
 
template<typename T >
GLM_FUNC_DECL tmat4x4< T,
+defaultp > 
tweakedInfinitePerspective (T fovy, T aspect, T near)
 
template<typename T >
GLM_FUNC_DECL tmat4x4< T,
+defaultp > 
tweakedInfinitePerspective (T fovy, T aspect, T near, T ep)
 
template<typename T , typename U , precision P>
GLM_FUNC_DECL tvec3< T, P > unProject (tvec3< T, P > const &win, tmat4x4< T, P > const &model, tmat4x4< T, P > const &proj, tvec4< U, P > const &viewport)
 

Detailed Description

-

Allow to perform bit operations on integer values.

-

<glm/gtc/constants.hpp> need to be included to use these features.

+

Defines functions that generate common transformation matrices.

+

The matrices generated by this extension use standard OpenGL fixed-function conventions. For example, the lookAt function generates a transform from world space into the specific eye space that the projective matrix functions (perspective, ortho, etc) are designed to expect. The OpenGL compatibility specifications defines the particular layout of this eye space.

+

<glm/gtc/matrix_transform.hpp> need to be included to use these functionalities.

Function Documentation

- +
- + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL genType glm::e GLM_FUNC_DECL tmat4x4<T, defaultp> glm::frustum ()left,
right,
bottom,
top,
near,
far 
)
-

Return e constant.

-
See Also
GLM_GTC_constants
+

Creates a frustum matrix.

+
Parameters
+ + + + + + + +
left
right
bottom
top
near
far
+
+
+
Template Parameters
+ + +
TValue type used to build the matrix. Currently supported: half (not recommanded), float or double.
+
+
+
See also
GLM_GTC_matrix_transform
- +
- + - + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL genType glm::epsilon GLM_FUNC_DECL tmat4x4<T, defaultp> glm::infinitePerspective ()fovy,
aspect,
near 
)
-

Return the epsilon constant for floating point types.

-
Todo:
Implement epsilon for half-precision floating point type.
-
See Also
GLM_GTC_constants
+

Creates a matrix for a symmetric perspective-view frustum with far plane at infinite.

+
Parameters
+ + + + +
fovySpecifies the field of view angle, in degrees, in the y direction. Expressed in radians.
aspectSpecifies the aspect ratio that determines the field of view in the x direction. The aspect ratio is the ratio of x (width) to y (height).
nearSpecifies the distance from the viewer to the near clipping plane (always positive).
+
+
+
Template Parameters
+ + +
TValue type used to build the matrix. Currently supported: half (not recommanded), float or double.
+
+
+
See also
GLM_GTC_matrix_transform
- +
- + - + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL genType glm::euler GLM_FUNC_DECL tmat4x4<T, P> glm::lookAt ()tvec3< T, P > const & eye,
tvec3< T, P > const & center,
tvec3< T, P > const & up 
)
-

Return Euler's constant.

-
See Also
GLM_GTC_constants
+

Build a look at view matrix.

+
Parameters
+ + + + +
eyePosition of the camera
centerPosition where the camera is looking at
upNormalized up vector, how the camera is oriented. Typically (0, 0, 1)
+
+
+
See also
GLM_GTC_matrix_transform
+
+- frustum(T const & left, T const & right, T const & bottom, T const & top, T const & nearVal, T const & farVal) frustum(T const & left, T const & right, T const & bottom, T const & top, T const & nearVal, T const & farVal)
- +
- + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL genType glm::golden_ratio GLM_FUNC_DECL tmat4x4<T, defaultp> glm::ortho ()left,
right,
bottom,
top,
zNear,
zFar 
)
-

Return the golden ratio constant.

-
See Also
GLM_GTC_constants
+

Creates a matrix for an orthographic parallel viewing volume.

+
Parameters
+ + + + + + + +
left
right
bottom
top
zNear
zFar
+
+
+
Template Parameters
+ + +
TValue type used to build the matrix. Currently supported: half (not recommanded), float or double.
+
+
+
See also
GLM_GTC_matrix_transform
+
+- glm::ortho(T const & left, T const & right, T const & bottom, T const & top)
- +
- + - + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL genType glm::half_pi GLM_FUNC_DECL tmat4x4<T, defaultp> glm::ortho ()left,
right,
bottom,
top 
)
-

Return pi / 2.

-
See Also
GLM_GTC_constants
+

Creates a matrix for projecting two-dimensional coordinates onto the screen.

+
Parameters
+ + + + + +
left
right
bottom
top
+
+
+
Template Parameters
+ + +
TValue type used to build the matrix. Currently supported: half (not recommanded), float or double.
+
+
+
See also
GLM_GTC_matrix_transform
+
+- glm::ortho(T const & left, T const & right, T const & bottom, T const & top, T const & zNear, T const & zFar)
- +
- + - + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL genType glm::ln_ln_two GLM_FUNC_DECL tmat4x4<T, defaultp> glm::perspective ()fovy,
aspect,
near,
far 
)
-

Return ln(ln(2)).

-
See Also
GLM_GTC_constants
+

Creates a matrix for a symetric perspective-view frustum.

+
Parameters
+ + + + + +
fovySpecifies the field of view angle, in degrees, in the y direction. Expressed in radians.
aspectSpecifies the aspect ratio that determines the field of view in the x direction. The aspect ratio is the ratio of x (width) to y (height).
nearSpecifies the distance from the viewer to the near clipping plane (always positive).
farSpecifies the distance from the viewer to the far clipping plane (always positive).
+
+
+
Template Parameters
+ + +
TValue type used to build the matrix. Currently supported: half (not recommanded), float or double.
+
+
+
See also
GLM_GTC_matrix_transform
- +
- + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL genType glm::ln_ten GLM_FUNC_DECL tmat4x4<T, defaultp> glm::perspectiveFov ()fov,
width,
height,
near,
far 
)
-

Return ln(10).

-
See Also
GLM_GTC_constants
+

Builds a perspective projection matrix based on a field of view.

+
Parameters
+ + + + + + +
fovExpressed in radians.
width
height
nearSpecifies the distance from the viewer to the near clipping plane (always positive).
farSpecifies the distance from the viewer to the far clipping plane (always positive).
+
+
+
Template Parameters
+ + +
TValue type used to build the matrix. Currently supported: half (not recommanded), float or double.
+
+
+
See also
GLM_GTC_matrix_transform
- +
- + - + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL genType glm::ln_two GLM_FUNC_DECL tmat4x4<T, P> glm::pickMatrix ()tvec2< T, P > const & center,
tvec2< T, P > const & delta,
tvec4< U, P > const & viewport 
)
-

Return ln(2).

-
See Also
GLM_GTC_constants
+

Define a picking region.

+
Parameters
+ + + + +
center
delta
viewport
+
+
+
Template Parameters
+ + + +
TNative type used for the computation. Currently supported: half (not recommanded), float or double.
UCurrently supported: Floating-point types and integer types.
+
+
+
See also
GLM_GTC_matrix_transform
- +
- + - + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL genType glm::one GLM_FUNC_DECL tvec3<T, P> glm::project ()tvec3< T, P > const & obj,
tmat4x4< T, P > const & model,
tmat4x4< T, P > const & proj,
tvec4< U, P > const & viewport 
)
-

Return 1.

-
See Also
GLM_GTC_constants
+

Map the specified object coordinates (obj.x, obj.y, obj.z) into window coordinates.

+
Parameters
+ + + + + +
objSpecify the object coordinates.
modelSpecifies the current modelview matrix
projSpecifies the current projection matrix
viewportSpecifies the current viewport
+
+
+
Returns
Return the computed window coordinates.
+
Template Parameters
+ + + +
TNative type used for the computation. Currently supported: half (not recommanded), float or double.
UCurrently supported: Floating-point types and integer types.
+
+
+
See also
GLM_GTC_matrix_transform
- +
- + - + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL genType glm::one_over_pi GLM_FUNC_DECL tmat4x4<T, P> glm::rotate ()tmat4x4< T, P > const & m,
angle,
tvec3< T, P > const & axis 
)
-

Return 1 / pi.

-
See Also
GLM_GTC_constants
+

Builds a rotation 4 * 4 matrix created from an axis vector and an angle.

+
Parameters
+ + + + +
mInput matrix multiplied by this rotation matrix.
angleRotation angle expressed in radians.
axisRotation axis, recommanded to be normalized.
+
+
+
Template Parameters
+ + +
TValue type used to build the matrix. Supported: half, float or double.
+
+
+
See also
GLM_GTC_matrix_transform
+
+- rotate(tmat4x4<T, P> const & m, T angle, T x, T y, T z)
+
+- rotate(T angle, tvec3<T, P> const & v)
- +
- + - + + + + + + + + + + + +
GLM_FUNC_DECL genType glm::one_over_root_two GLM_FUNC_DECL tmat4x4<T, P> glm::scale ()tmat4x4< T, P > const & m,
tvec3< T, P > const & v 
)
-

Return 1 / sqrt(2).

-
See Also
GLM_GTC_constants
+

Builds a scale 4 * 4 matrix created from 3 scalars.

+
Parameters
+ + + +
mInput matrix multiplied by this scale matrix.
vRatio of scaling for each axis.
+
+
+
Template Parameters
+ + +
TValue type used to build the matrix. Currently supported: half (not recommanded), float or double.
+
+
+
See also
GLM_GTC_matrix_transform
+
+- scale(tmat4x4<T, P> const & m, T x, T y, T z)
+
+- scale(tvec3<T, P> const & v)
- +
- + - + + + + + + + + + + + +
GLM_FUNC_DECL genType glm::pi GLM_FUNC_DECL tmat4x4<T, P> glm::translate ()tmat4x4< T, P > const & m,
tvec3< T, P > const & v 
)
-

Return the pi constant.

-
See Also
GLM_GTC_constants
+

Builds a translation 4 * 4 matrix created from a vector of 3 components.

+
Parameters
+ + + +
mInput matrix multiplied by this translation matrix.
vCoordinates of a translation vector.
+
+
+
Template Parameters
+ + +
TValue type used to build the matrix. Currently supported: half (not recommanded), float or double.
#include <glm/glm.hpp>
+ +
...
+
glm::mat4 m = glm::translate(glm::mat4(1.0f), glm::vec3(1.0f));
+
// m[0][0] == 1.0f, m[0][1] == 0.0f, m[0][2] == 0.0f, m[0][3] == 0.0f
+
// m[1][0] == 0.0f, m[1][1] == 1.0f, m[1][2] == 0.0f, m[1][3] == 0.0f
+
// m[2][0] == 0.0f, m[2][1] == 0.0f, m[2][2] == 1.0f, m[2][3] == 0.0f
+
// m[3][0] == 1.0f, m[3][1] == 1.0f, m[3][2] == 1.0f, m[3][3] == 1.0f
+
+
+
+
See also
GLM_GTC_matrix_transform
+
+- translate(tmat4x4<T, P> const & m, T x, T y, T z)
+
+- translate(tvec3<T, P> const & v)
- +
- + - + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL genType glm::quarter_pi GLM_FUNC_DECL tmat4x4<T, defaultp> glm::tweakedInfinitePerspective ()fovy,
aspect,
near 
)
-

Return pi / 4.

-
See Also
GLM_GTC_constants
+

Creates a matrix for a symmetric perspective-view frustum with far plane at infinite for graphics hardware that doesn't support depth clamping.

+
Parameters
+ + + + +
fovySpecifies the field of view angle, in degrees, in the y direction. Expressed in radians.
aspectSpecifies the aspect ratio that determines the field of view in the x direction. The aspect ratio is the ratio of x (width) to y (height).
nearSpecifies the distance from the viewer to the near clipping plane (always positive).
+
+
+
Template Parameters
+ + +
TValue type used to build the matrix. Currently supported: half (not recommanded), float or double.
+
+
+
See also
GLM_GTC_matrix_transform
- +
- + - + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL genType glm::root_five GLM_FUNC_DECL tmat4x4<T, defaultp> glm::tweakedInfinitePerspective ()fovy,
aspect,
near,
ep 
)
-

Return sqrt(5).

-
See Also
GLM_GTC_constants
+

Creates a matrix for a symmetric perspective-view frustum with far plane at infinite for graphics hardware that doesn't support depth clamping.

+
Parameters
+ + + + + +
fovySpecifies the field of view angle, in degrees, in the y direction. Expressed in radians.
aspectSpecifies the aspect ratio that determines the field of view in the x direction. The aspect ratio is the ratio of x (width) to y (height).
nearSpecifies the distance from the viewer to the near clipping plane (always positive).
ep
+
+
+
Template Parameters
+ + +
TValue type used to build the matrix. Currently supported: half (not recommanded), float or double.
+
+
+
See also
GLM_GTC_matrix_transform
- +
- + - - + + -
GLM_FUNC_DECL genType glm::root_half_pi GLM_FUNC_DECL tvec3<T, P> glm::unProject ()tvec3< T, P > const & win,
-
- -

Return sqrt(pi / 2).

-
See Also
GLM_GTC_constants
- -
-
- -
-
- - - - + + + -
GLM_FUNC_DECL genType glm::root_ln_four () tmat4x4< T, P > const & model,
-
- -

Return sqrt(ln(4)).

-
See Also
GLM_GTC_constants
- -
-
- -
-
- - - - + + + -
GLM_FUNC_DECL genType glm::root_pi () tmat4x4< T, P > const & proj,
-
- -

Return square root of pi.

-
See Also
GLM_GTC_constants
- -
-
- -
-
- - - - + + + -
GLM_FUNC_DECL genType glm::root_three () tvec4< U, P > const & viewport 
-
- -

Return sqrt(3).

-
See Also
GLM_GTC_constants
- -
-
- -
-
- - - - + +
GLM_FUNC_DECL genType glm::root_two () )
-

Return sqrt(2).

-
See Also
GLM_GTC_constants
- -
-
- -
-
- - - - - - - -
GLM_FUNC_DECL genType glm::root_two_pi ()
-
- -

Return sqrt(2 * pi).

-
See Also
GLM_GTC_constants
- -
-
- -
-
- - - - - - - -
GLM_FUNC_DECL genType glm::third ()
-
- -

Return 1 / 3.

-
See Also
GLM_GTC_constants
- -
-
- -
-
- - - - - - - -
GLM_FUNC_DECL genType glm::two_over_pi ()
-
- -

Return 2 / pi.

-
See Also
GLM_GTC_constants
- -
-
- -
-
- - - - - - - -
GLM_FUNC_DECL genType glm::two_over_root_pi ()
-
- -

Return 2 / sqrt(pi).

-
See Also
GLM_GTC_constants
- -
-
- -
-
- - - - - - - -
GLM_FUNC_DECL genType glm::two_thirds ()
-
- -

Return 2 / 3.

-
See Also
GLM_GTC_constants
- -
-
- -
-
- - - - - - - -
GLM_FUNC_DECL genType glm::zero ()
-
- -

Return 0.

-
See Also
GLM_GTC_constants
+

Map the specified window coordinates (win.x, win.y, win.z) into object coordinates.

+
Parameters
+ + + + + +
winSpecify the window coordinates to be mapped.
modelSpecifies the modelview matrix
projSpecifies the projection matrix
viewportSpecifies the viewport
+
+
+
Returns
Returns the computed object coordinates.
+
Template Parameters
+ + + +
TNative type used for the computation. Currently supported: half (not recommanded), float or double.
UCurrently supported: Floating-point types and integer types.
+
+
+
See also
GLM_GTC_matrix_transform
@@ -583,7 +946,7 @@ Functions diff --git a/doc/api/a00172.html b/doc/api/a00172.html index 725d0c22..5f57712c 100644 --- a/doc/api/a00172.html +++ b/doc/api/a00172.html @@ -3,8 +3,8 @@ - -GLM: GLM_GTC_epsilon + +0.9.6: GLM_GTC_noise @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -41,50 +39,59 @@
Functions
-
GLM_GTC_epsilon
+
GLM_GTC_noise
GTC Extensions (Stable)
- - - - - - - - - - - - + + + + + + + + +

Functions

template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< bool, P > epsilonEqual (vecType< T, P > const &x, vecType< T, P > const &y, T const &epsilon)
 
template<typename genType >
GLM_FUNC_DECL bool epsilonEqual (genType const &x, genType const &y, genType const &epsilon)
 
template<typename genType >
GLM_FUNC_DECL genType::boolType epsilonNotEqual (genType const &x, genType const &y, typename genType::value_type const &epsilon)
 
template<typename genType >
GLM_FUNC_DECL bool epsilonNotEqual (genType const &x, genType const &y, genType const &epsilon)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL T perlin (vecType< T, P > const &p)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL T perlin (vecType< T, P > const &p, vecType< T, P > const &rep)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL T simplex (vecType< T, P > const &p)
 

Detailed Description

-

Comparison functions for a user defined epsilon values.

-

<glm/gtc/epsilon.hpp> need to be included to use these functionalities.

+

Defines 2D, 3D and 4D procedural noise functions Based on the work of Stefan Gustavson and Ashima Arts on "webgl-noise": https://github.com/ashima/webgl-noise Following Stefan Gustavson's paper "Simplex noise demystified": http://www.itn.liu.se/~stegu/simplexnoise/simplexnoise.pdf <glm/gtc/noise.hpp> need to be included to use these functionalities.

Function Documentation

- +
- + - + + + +
GLM_FUNC_DECL vecType<bool, P> glm::epsilonEqual GLM_FUNC_DECL T glm::perlin ( vecType< T, P > const & x, p)
+
+ +

Classic perlin noise.

+
See also
GLM_GTC_noise
+ +
+
+ +
+
+ + + + + + - - - - - - - + @@ -94,117 +101,27 @@ Functions
GLM_FUNC_DECL T glm::perlin (vecType< T, P > const & p,
vecType< T, P > const & y,
T const & epsilon rep 
-

Returns the component-wise comparison of |x - y| < epsilon.

-

True if this expression is satisfied.

-
See Also
GLM_GTC_epsilon
+

Periodic perlin noise.

+
See also
GLM_GTC_noise
- +
- + - - - - - + + - - - - - - - - - - - - -
GLM_FUNC_DECL bool glm::epsilonEqual GLM_FUNC_DECL T glm::simplex (genType const & x,
vecType< T, P > const & p) genType const & y,
genType const & epsilon 
)
-

Returns the component-wise comparison of |x - y| < epsilon.

-

True if this expression is satisfied.

-
See Also
GLM_GTC_epsilon
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL genType::boolType glm::epsilonNotEqual (genType const & x,
genType const & y,
typename genType::value_type const & epsilon 
)
-
- -

Returns the component-wise comparison of |x - y| < epsilon.

-

True if this expression is not satisfied.

-
See Also
GLM_GTC_epsilon
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL bool glm::epsilonNotEqual (genType const & x,
genType const & y,
genType const & epsilon 
)
-
- -

Returns the component-wise comparison of |x - y| >= epsilon.

-

True if this expression is not satisfied.

-
See Also
GLM_GTC_epsilon
+

Simplex noise.

+
See also
GLM_GTC_noise
@@ -213,7 +130,7 @@ Functions diff --git a/doc/api/a00173.html b/doc/api/a00173.html index dd58cb59..a902a066 100644 --- a/doc/api/a00173.html +++ b/doc/api/a00173.html @@ -3,8 +3,8 @@ - -GLM: GLM_GTC_matrix_access + +0.9.6: GLM_GTC_packing @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -41,154 +39,929 @@
Functions
-
GLM_GTC_matrix_access
+
GLM_GTC_packing
GTC Extensions (Stable)
- - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Functions

template<typename genType >
genType::col_type column (genType const &m, length_t const &index)
 
template<typename genType >
genType column (genType const &m, length_t const &index, typename genType::col_type const &x)
 
template<typename genType >
genType::row_type row (genType const &m, length_t const &index)
 
template<typename genType >
genType row (genType const &m, length_t const &index, typename genType::row_type const &x)
 
GLM_FUNC_DECL uint32 packF2x11_1x10 (vec3 const &v)
 
GLM_FUNC_DECL uint16 packHalf1x16 (float v)
 
GLM_FUNC_DECL uint64 packHalf4x16 (vec4 const &v)
 
GLM_FUNC_DECL uint32 packI3x10_1x2 (ivec4 const &v)
 
GLM_FUNC_DECL uint16 packSnorm1x16 (float v)
 
GLM_FUNC_DECL uint8 packSnorm1x8 (float s)
 
GLM_FUNC_DECL uint16 packSnorm2x8 (vec2 const &v)
 
GLM_FUNC_DECL uint32 packSnorm3x10_1x2 (vec4 const &v)
 
GLM_FUNC_DECL uint64 packSnorm4x16 (vec4 const &v)
 
GLM_FUNC_DECL uint32 packU3x10_1x2 (uvec4 const &v)
 
GLM_FUNC_DECL uint16 packUnorm1x16 (float v)
 
GLM_FUNC_DECL uint8 packUnorm1x8 (float v)
 
GLM_FUNC_DECL uint16 packUnorm2x8 (vec2 const &v)
 
GLM_FUNC_DECL uint32 packUnorm3x10_1x2 (vec4 const &v)
 
GLM_FUNC_DECL uint64 packUnorm4x16 (vec4 const &v)
 
GLM_FUNC_DECL vec3 unpackF2x11_1x10 (uint32 p)
 
GLM_FUNC_DECL float unpackHalf1x16 (uint16 v)
 
GLM_FUNC_DECL vec4 unpackHalf4x16 (uint64 p)
 
GLM_FUNC_DECL ivec4 unpackI3x10_1x2 (uint32 p)
 
GLM_FUNC_DECL float unpackSnorm1x16 (uint16 p)
 
GLM_FUNC_DECL float unpackSnorm1x8 (uint8 p)
 
GLM_FUNC_DECL vec2 unpackSnorm2x8 (uint16 p)
 
GLM_FUNC_DECL vec4 unpackSnorm3x10_1x2 (uint32 p)
 
GLM_FUNC_DECL vec4 unpackSnorm4x16 (uint64 const &p)
 
GLM_FUNC_DECL uvec4 unpackU3x10_1x2 (uint32 p)
 
GLM_FUNC_DECL float unpackUnorm1x16 (uint16 p)
 
GLM_FUNC_DECL float unpackUnorm1x8 (uint8 p)
 
GLM_FUNC_DECL vec2 unpackUnorm2x8 (uint16 p)
 
GLM_FUNC_DECL vec4 unpackUnorm3x10_1x2 (uint32 p)
 
GLM_FUNC_DECL vec4 unpackUnorm4x16 (uint64 p)
 

Detailed Description

-

Defines functions to access rows or columns of a matrix easily.

-

<glm/gtc/matrix_access.hpp> need to be included to use these functionalities.

+

This extension provides a set of function to convert vertors to packed formats.

+

<glm/gtc/packing.hpp> need to be included to use these features.

Function Documentation

- +
- + - - - - - + + - - - - - - -
genType::col_type glm::column GLM_FUNC_DECL uint32 glm::packF2x11_1x10 (genType const & m,
vec3 const & v) length_t const & index 
)
-

Get a specific column of a matrix.

-
See Also
GLM_GTC_matrix_access
+

First, converts the first two components of the normalized floating-point value v into 11-bit signless floating-point values.

+

Then, converts the third component of the normalized floating-point value v into a 10-bit signless floating-point value. Then, the results are packed into the returned 32-bit unsigned integer.

+

The first vector component specifies the 11 least-significant bits of the result; the last component specifies the 10 most-significant bits.

+
See also
GLM_GTC_packing
+
+vec3 unpackF2x11_1x10(uint32 const & p)
- +
- + - - - - - + + - - - - - - - - - - - - -
genType glm::column GLM_FUNC_DECL uint16 glm::packHalf1x16 (genType const & m,
float v) length_t const & index,
typename genType::col_type const & x 
)
-

Set a specific column to a matrix.

-
See Also
GLM_GTC_matrix_access
+

Returns an unsigned integer obtained by converting the components of a floating-point scalar to the 16-bit floating-point representation found in the OpenGL Specification, and then packing this 16-bit value into a 16-bit unsigned integer.

+
See also
GLM_GTC_packing
+
+uint32 packHalf2x16(vec2 const & v)
+
+uint64 packHalf4x16(vec4 const & v)
+
+GLSL packHalf2x16 man page
+
+GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
- +
- + - - - - - + + - - - - - - -
genType::row_type glm::row GLM_FUNC_DECL uint64 glm::packHalf4x16 (genType const & m,
vec4 const & v) length_t const & index 
)
-

Get a specific row of a matrix.

-
See Also
GLM_GTC_matrix_access
+

Returns an unsigned integer obtained by converting the components of a four-component floating-point vector to the 16-bit floating-point representation found in the OpenGL Specification, and then packing these four 16-bit values into a 64-bit unsigned integer.

+

The first vector component specifies the 16 least-significant bits of the result; the forth component specifies the 16 most-significant bits.

+
See also
GLM_GTC_packing
+
+uint16 packHalf1x16(float const & v)
+
+uint32 packHalf2x16(vec2 const & v)
+
+GLSL packHalf2x16 man page
+
+GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
- +
- + - - - - - + + - - - - - - - - - - - - -
genType glm::row GLM_FUNC_DECL uint32 glm::packI3x10_1x2 (genType const & m,
ivec4 const & v) length_t const & index,
typename genType::row_type const & x 
)
-

Set a specific row to a matrix.

-
See Also
GLM_GTC_matrix_access
+

Returns an unsigned integer obtained by converting the components of a four-component signed integer vector to the 10-10-10-2-bit signed integer representation found in the OpenGL Specification, and then packing these four values into a 32-bit unsigned integer.

+

The first vector component specifies the 10 least-significant bits of the result; the forth component specifies the 2 most-significant bits.

+
See also
GLM_GTC_packing
+
+uint32 packI3x10_1x2(uvec4 const & v)
+
+uint32 packSnorm3x10_1x2(vec4 const & v)
+
+uint32 packUnorm3x10_1x2(vec4 const & v)
+
+ivec4 unpackI3x10_1x2(uint32 const & p)
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL uint16 glm::packSnorm1x16 (float v)
+
+ +

First, converts the normalized floating-point value v into 16-bit integer value.

+

Then, the results are packed into the returned 16-bit unsigned integer.

+

The conversion to fixed point is done as follows: packSnorm1x8: round(clamp(s, -1, +1) * 32767.0)

+
See also
GLM_GTC_packing
+
+uint32 packSnorm2x16(vec2 const & v)
+
+uint64 packSnorm4x16(vec4 const & v)
+
+GLSL packSnorm4x8 man page
+
+GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL uint8 glm::packSnorm1x8 (float s)
+
+ +

First, converts the normalized floating-point value v into 8-bit integer value.

+

Then, the results are packed into the returned 8-bit unsigned integer.

+

The conversion to fixed point is done as follows: packSnorm1x8: round(clamp(s, -1, +1) * 127.0)

+
See also
GLM_GTC_packing
+
+uint16 packSnorm2x8(vec2 const & v)
+
+uint32 packSnorm4x8(vec4 const & v)
+
+GLSL packSnorm4x8 man page
+
+GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL uint16 glm::packSnorm2x8 (vec2 const & v)
+
+ +

First, converts each component of the normalized floating-point value v into 8-bit integer values.

+

Then, the results are packed into the returned 16-bit unsigned integer.

+

The conversion for component c of v to fixed point is done as follows: packSnorm2x8: round(clamp(c, -1, +1) * 127.0)

+

The first component of the vector will be written to the least significant bits of the output; the last component will be written to the most significant bits.

+
See also
GLM_GTC_packing
+
+uint8 packSnorm1x8(float const & v)
+
+uint32 packSnorm4x8(vec4 const & v)
+
+GLSL packSnorm4x8 man page
+
+GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL uint32 glm::packSnorm3x10_1x2 (vec4 const & v)
+
+ +

First, converts the first three components of the normalized floating-point value v into 10-bit signed integer values.

+

Then, converts the forth component of the normalized floating-point value v into 2-bit signed integer values. Then, the results are packed into the returned 32-bit unsigned integer.

+

The conversion for component c of v to fixed point is done as follows: packSnorm3x10_1x2(xyz): round(clamp(c, -1, +1) * 511.0) packSnorm3x10_1x2(w): round(clamp(c, -1, +1) * 1.0)

+

The first vector component specifies the 10 least-significant bits of the result; the forth component specifies the 2 most-significant bits.

+
See also
GLM_GTC_packing
+
+vec4 unpackSnorm3x10_1x2(uint32 const & p)
+
+uint32 packUnorm3x10_1x2(vec4 const & v)
+
+uint32 packU3x10_1x2(uvec4 const & v)
+
+uint32 packI3x10_1x2(ivec4 const & v)
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL uint64 glm::packSnorm4x16 (vec4 const & v)
+
+ +

First, converts each component of the normalized floating-point value v into 16-bit integer values.

+

Then, the results are packed into the returned 64-bit unsigned integer.

+

The conversion for component c of v to fixed point is done as follows: packSnorm2x8: round(clamp(c, -1, +1) * 32767.0)

+

The first component of the vector will be written to the least significant bits of the output; the last component will be written to the most significant bits.

+
See also
GLM_GTC_packing
+
+uint16 packSnorm1x16(float const & v)
+
+uint32 packSnorm2x16(vec2 const & v)
+
+GLSL packSnorm4x8 man page
+
+GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL uint32 glm::packU3x10_1x2 (uvec4 const & v)
+
+ +

Returns an unsigned integer obtained by converting the components of a four-component unsigned integer vector to the 10-10-10-2-bit unsigned integer representation found in the OpenGL Specification, and then packing these four values into a 32-bit unsigned integer.

+

The first vector component specifies the 10 least-significant bits of the result; the forth component specifies the 2 most-significant bits.

+
See also
GLM_GTC_packing
+
+uint32 packI3x10_1x2(ivec4 const & v)
+
+uint32 packSnorm3x10_1x2(vec4 const & v)
+
+uint32 packUnorm3x10_1x2(vec4 const & v)
+
+ivec4 unpackU3x10_1x2(uint32 const & p)
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL uint16 glm::packUnorm1x16 (float v)
+
+ +

First, converts the normalized floating-point value v into a 16-bit integer value.

+

Then, the results are packed into the returned 16-bit unsigned integer.

+

The conversion for component c of v to fixed point is done as follows: packUnorm1x16: round(clamp(c, 0, +1) * 65535.0)

+
See also
GLM_GTC_packing
+
+uint16 packSnorm1x16(float const & v)
+
+uint64 packSnorm4x16(vec4 const & v)
+
+GLSL packUnorm4x8 man page
+
+GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL uint8 glm::packUnorm1x8 (float v)
+
+ +

First, converts the normalized floating-point value v into a 8-bit integer value.

+

Then, the results are packed into the returned 8-bit unsigned integer.

+

The conversion for component c of v to fixed point is done as follows: packUnorm1x8: round(clamp(c, 0, +1) * 255.0)

+
See also
GLM_GTC_packing
+
+uint16 packUnorm2x8(vec2 const & v)
+
+uint32 packUnorm4x8(vec4 const & v)
+
+GLSL packUnorm4x8 man page
+
+GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL uint16 glm::packUnorm2x8 (vec2 const & v)
+
+ +

First, converts each component of the normalized floating-point value v into 8-bit integer values.

+

Then, the results are packed into the returned 16-bit unsigned integer.

+

The conversion for component c of v to fixed point is done as follows: packUnorm2x8: round(clamp(c, 0, +1) * 255.0)

+

The first component of the vector will be written to the least significant bits of the output; the last component will be written to the most significant bits.

+
See also
GLM_GTC_packing
+
+uint8 packUnorm1x8(float const & v)
+
+uint32 packUnorm4x8(vec4 const & v)
+
+GLSL packUnorm4x8 man page
+
+GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL uint32 glm::packUnorm3x10_1x2 (vec4 const & v)
+
+ +

First, converts the first three components of the normalized floating-point value v into 10-bit unsigned integer values.

+

Then, converts the forth component of the normalized floating-point value v into 2-bit signed uninteger values. Then, the results are packed into the returned 32-bit unsigned integer.

+

The conversion for component c of v to fixed point is done as follows: packUnorm3x10_1x2(xyz): round(clamp(c, 0, +1) * 1023.0) packUnorm3x10_1x2(w): round(clamp(c, 0, +1) * 3.0)

+

The first vector component specifies the 10 least-significant bits of the result; the forth component specifies the 2 most-significant bits.

+
See also
GLM_GTC_packing
+
+vec4 unpackUnorm3x10_1x2(uint32 const & p)
+
+uint32 packUnorm3x10_1x2(vec4 const & v)
+
+uint32 packU3x10_1x2(uvec4 const & v)
+
+uint32 packI3x10_1x2(ivec4 const & v)
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL uint64 glm::packUnorm4x16 (vec4 const & v)
+
+ +

First, converts each component of the normalized floating-point value v into 16-bit integer values.

+

Then, the results are packed into the returned 64-bit unsigned integer.

+

The conversion for component c of v to fixed point is done as follows: packUnorm4x16: round(clamp(c, 0, +1) * 65535.0)

+

The first component of the vector will be written to the least significant bits of the output; the last component will be written to the most significant bits.

+
See also
GLM_GTC_packing
+
+uint16 packUnorm1x16(float const & v)
+
+uint32 packUnorm2x16(vec2 const & v)
+
+GLSL packUnorm4x8 man page
+
+GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec3 glm::unpackF2x11_1x10 (uint32 p)
+
+ +

First, unpacks a single 32-bit unsigned integer p into two 11-bit signless floating-point values and one 10-bit signless floating-point value .

+

Then, each component is converted to a normalized floating-point value to generate the returned three-component vector.

+

The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.

+
See also
GLM_GTC_packing
+
+uint32 packF2x11_1x10(vec3 const & v)
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL float glm::unpackHalf1x16 (uint16 v)
+
+ +

Returns a floating-point scalar with components obtained by unpacking a 16-bit unsigned integer into a 16-bit value, interpreted as a 16-bit floating-point number according to the OpenGL Specification, and converting it to 32-bit floating-point values.

+
See also
GLM_GTC_packing
+
+vec2 unpackHalf2x16(uint32 const & v)
+
+vec4 unpackHalf4x16(uint64 const & v)
+
+GLSL unpackHalf2x16 man page
+
+GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec4 glm::unpackHalf4x16 (uint64 p)
+
+ +

Returns a four-component floating-point vector with components obtained by unpacking a 64-bit unsigned integer into four 16-bit values, interpreting those values as 16-bit floating-point numbers according to the OpenGL Specification, and converting them to 32-bit floating-point values.

+

The first component of the vector is obtained from the 16 least-significant bits of v; the forth component is obtained from the 16 most-significant bits of v.

+
See also
GLM_GTC_packing
+
+float unpackHalf1x16(uint16 const & v)
+
+vec2 unpackHalf2x16(uint32 const & v)
+
+GLSL unpackHalf2x16 man page
+
+GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL ivec4 glm::unpackI3x10_1x2 (uint32 p)
+
+ +

Unpacks a single 32-bit unsigned integer p into three 10-bit and one 2-bit signed integers.

+

The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.

+
See also
GLM_GTC_packing
+
+uint32 packU3x10_1x2(uvec4 const & v)
+
+vec4 unpackSnorm3x10_1x2(uint32 const & p);
+
+uvec4 unpackI3x10_1x2(uint32 const & p);
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL float glm::unpackSnorm1x16 (uint16 p)
+
+ +

First, unpacks a single 16-bit unsigned integer p into a single 16-bit signed integers.

+

Then, each component is converted to a normalized floating-point value to generate the returned scalar.

+

The conversion for unpacked fixed-point value f to floating point is done as follows: unpackSnorm1x16: clamp(f / 32767.0, -1, +1)

+
See also
GLM_GTC_packing
+
+vec2 unpackSnorm2x16(uint32 p)
+
+vec4 unpackSnorm4x16(uint64 p)
+
+GLSL unpackSnorm4x8 man page
+
+GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL float glm::unpackSnorm1x8 (uint8 p)
+
+ +

First, unpacks a single 8-bit unsigned integer p into a single 8-bit signed integers.

+

Then, the value is converted to a normalized floating-point value to generate the returned scalar.

+

The conversion for unpacked fixed-point value f to floating point is done as follows: unpackSnorm1x8: clamp(f / 127.0, -1, +1)

+
See also
GLM_GTC_packing
+
+vec2 unpackSnorm2x8(uint16 p)
+
+vec4 unpackSnorm4x8(uint32 p)
+
+GLSL unpackSnorm4x8 man page
+
+GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec2 glm::unpackSnorm2x8 (uint16 p)
+
+ +

First, unpacks a single 16-bit unsigned integer p into a pair of 8-bit signed integers.

+

Then, each component is converted to a normalized floating-point value to generate the returned two-component vector.

+

The conversion for unpacked fixed-point value f to floating point is done as follows: unpackSnorm2x8: clamp(f / 127.0, -1, +1)

+

The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.

+
See also
GLM_GTC_packing
+
+float unpackSnorm1x8(uint8 p)
+
+vec4 unpackSnorm4x8(uint32 p)
+
+GLSL unpackSnorm4x8 man page
+
+GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec4 glm::unpackSnorm3x10_1x2 (uint32 p)
+
+ +

First, unpacks a single 32-bit unsigned integer p into four 16-bit signed integers.

+

Then, each component is converted to a normalized floating-point value to generate the returned four-component vector.

+

The conversion for unpacked fixed-point value f to floating point is done as follows: unpackSnorm3x10_1x2(xyz): clamp(f / 511.0, -1, +1) unpackSnorm3x10_1x2(w): clamp(f / 511.0, -1, +1)

+

The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.

+
See also
GLM_GTC_packing
+
+uint32 packSnorm3x10_1x2(vec4 const & v)
+
+vec4 unpackUnorm3x10_1x2(uint32 const & p))
+
+uvec4 unpackI3x10_1x2(uint32 const & p)
+
+uvec4 unpackU3x10_1x2(uint32 const & p)
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec4 glm::unpackSnorm4x16 (uint64 const & p)
+
+ +

First, unpacks a single 64-bit unsigned integer p into four 16-bit signed integers.

+

Then, each component is converted to a normalized floating-point value to generate the returned four-component vector.

+

The conversion for unpacked fixed-point value f to floating point is done as follows: unpackSnorm4x16: clamp(f / 32767.0, -1, +1)

+

The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.

+
See also
GLM_GTC_packing
+
+float unpackSnorm1x16(uint16 p)
+
+vec2 unpackSnorm2x16(uint32 p)
+
+GLSL unpackSnorm4x8 man page
+
+GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL uvec4 glm::unpackU3x10_1x2 (uint32 p)
+
+ +

Unpacks a single 32-bit unsigned integer p into three 10-bit and one 2-bit unsigned integers.

+

The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.

+
See also
GLM_GTC_packing
+
+uint32 packU3x10_1x2(uvec4 const & v)
+
+vec4 unpackSnorm3x10_1x2(uint32 const & p);
+
+uvec4 unpackI3x10_1x2(uint32 const & p);
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL float glm::unpackUnorm1x16 (uint16 p)
+
+ +

First, unpacks a single 16-bit unsigned integer p into a of 16-bit unsigned integers.

+

Then, the value is converted to a normalized floating-point value to generate the returned scalar.

+

The conversion for unpacked fixed-point value f to floating point is done as follows: unpackUnorm1x16: f / 65535.0

+
See also
GLM_GTC_packing
+
+vec2 unpackUnorm2x16(uint32 p)
+
+vec4 unpackUnorm4x16(uint64 p)
+
+GLSL unpackUnorm2x16 man page
+
+GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL float glm::unpackUnorm1x8 (uint8 p)
+
+ +

Convert a single 8-bit integer to a normalized floating-point value.

+

The conversion for unpacked fixed-point value f to floating point is done as follows: unpackUnorm4x8: f / 255.0

+
See also
GLM_GTC_packing
+
+vec2 unpackUnorm2x8(uint16 p)
+
+vec4 unpackUnorm4x8(uint32 p)
+
+GLSL unpackUnorm4x8 man page
+
+GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec2 glm::unpackUnorm2x8 (uint16 p)
+
+ +

First, unpacks a single 16-bit unsigned integer p into a pair of 8-bit unsigned integers.

+

Then, each component is converted to a normalized floating-point value to generate the returned two-component vector.

+

The conversion for unpacked fixed-point value f to floating point is done as follows: unpackUnorm4x8: f / 255.0

+

The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.

+
See also
GLM_GTC_packing
+
+float unpackUnorm1x8(uint8 v)
+
+vec4 unpackUnorm4x8(uint32 p)
+
+GLSL unpackUnorm4x8 man page
+
+GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec4 glm::unpackUnorm3x10_1x2 (uint32 p)
+
+ +

First, unpacks a single 32-bit unsigned integer p into four 16-bit signed integers.

+

Then, each component is converted to a normalized floating-point value to generate the returned four-component vector.

+

The conversion for unpacked fixed-point value f to floating point is done as follows: unpackSnorm3x10_1x2(xyz): clamp(f / 1023.0, 0, +1) unpackSnorm3x10_1x2(w): clamp(f / 3.0, 0, +1)

+

The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.

+
See also
GLM_GTC_packing
+
+uint32 packSnorm3x10_1x2(vec4 const & v)
+
+vec4 unpackInorm3x10_1x2(uint32 const & p))
+
+uvec4 unpackI3x10_1x2(uint32 const & p)
+
+uvec4 unpackU3x10_1x2(uint32 const & p)
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec4 glm::unpackUnorm4x16 (uint64 p)
+
+ +

First, unpacks a single 64-bit unsigned integer p into four 16-bit unsigned integers.

+

Then, each component is converted to a normalized floating-point value to generate the returned four-component vector.

+

The conversion for unpacked fixed-point value f to floating point is done as follows: unpackUnormx4x16: f / 65535.0

+

The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.

+
See also
GLM_GTC_packing
+
+float unpackUnorm1x16(uint16 p)
+
+vec2 unpackUnorm2x16(uint32 p)
+
+GLSL unpackUnorm2x16 man page
+
+GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
@@ -197,7 +970,7 @@ Functions diff --git a/doc/api/a00174.html b/doc/api/a00174.html index b3010467..edb47794 100644 --- a/doc/api/a00174.html +++ b/doc/api/a00174.html @@ -3,8 +3,8 @@ - -GLM: GLM_GTC_matrix_integer + +0.9.6: GLM_GTC_quaternion @@ -16,9 +16,9 @@ + @@ -26,1925 +26,853 @@
-
GLM -  0.9.5 +
0.9.6
- +
-Typedefs
+Functions
-
GLM_GTC_matrix_integer
+
GLM_GTC_quaternion
GTC Extensions (Stable)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

-Typedefs

typedef detail::tmat2x2< int,
-highp > 
highp_imat2
 
typedef detail::tmat2x2< int,
-highp > 
highp_imat2x2
 
typedef detail::tmat2x3< int,
-highp > 
highp_imat2x3
 
typedef detail::tmat2x4< int,
-highp > 
highp_imat2x4
 
typedef detail::tmat3x3< int,
-highp > 
highp_imat3
 
typedef detail::tmat3x2< int,
-highp > 
highp_imat3x2
 
typedef detail::tmat3x3< int,
-highp > 
highp_imat3x3
 
typedef detail::tmat3x4< int,
-highp > 
highp_imat3x4
 
typedef detail::tmat4x4< int,
-highp > 
highp_imat4
 
typedef detail::tmat4x2< int,
-highp > 
highp_imat4x2
 
typedef detail::tmat4x3< int,
-highp > 
highp_imat4x3
 
typedef detail::tmat4x4< int,
-highp > 
highp_imat4x4
 
typedef detail::tmat2x2< uint,
-highp > 
highp_umat2
 
typedef detail::tmat2x2< uint,
-highp > 
highp_umat2x2
 
typedef detail::tmat2x3< uint,
-highp > 
highp_umat2x3
 
typedef detail::tmat2x4< uint,
-highp > 
highp_umat2x4
 
typedef detail::tmat3x3< uint,
-highp > 
highp_umat3
 
typedef detail::tmat3x2< uint,
-highp > 
highp_umat3x2
 
typedef detail::tmat3x3< uint,
-highp > 
highp_umat3x3
 
typedef detail::tmat3x4< uint,
-highp > 
highp_umat3x4
 
typedef detail::tmat4x4< uint,
-highp > 
highp_umat4
 
typedef detail::tmat4x2< uint,
-highp > 
highp_umat4x2
 
typedef detail::tmat4x3< uint,
-highp > 
highp_umat4x3
 
typedef detail::tmat4x4< uint,
-highp > 
highp_umat4x4
 
typedef mediump_imat2 imat2
 
typedef mediump_imat2x2 imat2x2
 
typedef mediump_imat2x3 imat2x3
 
typedef mediump_imat2x4 imat2x4
 
typedef mediump_imat3 imat3
 
typedef mediump_imat3x2 imat3x2
 
typedef mediump_imat3x3 imat3x3
 
typedef mediump_imat3x4 imat3x4
 
typedef mediump_imat4 imat4
 
typedef mediump_imat4x2 imat4x2
 
typedef mediump_imat4x3 imat4x3
 
typedef mediump_imat4x4 imat4x4
 
typedef detail::tmat2x2< int,
-lowp > 
lowp_imat2
 
typedef detail::tmat2x2< int,
-lowp > 
lowp_imat2x2
 
typedef detail::tmat2x3< int,
-lowp > 
lowp_imat2x3
 
typedef detail::tmat2x4< int,
-lowp > 
lowp_imat2x4
 
typedef detail::tmat3x3< int,
-lowp > 
lowp_imat3
 
typedef detail::tmat3x2< int,
-lowp > 
lowp_imat3x2
 
typedef detail::tmat3x3< int,
-lowp > 
lowp_imat3x3
 
typedef detail::tmat3x4< int,
-lowp > 
lowp_imat3x4
 
typedef detail::tmat4x4< int,
-lowp > 
lowp_imat4
 
typedef detail::tmat4x2< int,
-lowp > 
lowp_imat4x2
 
typedef detail::tmat4x3< int,
-lowp > 
lowp_imat4x3
 
typedef detail::tmat4x4< int,
-lowp > 
lowp_imat4x4
 
typedef detail::tmat2x2< uint,
-lowp > 
lowp_umat2
 
typedef detail::tmat2x2< uint,
-lowp > 
lowp_umat2x2
 
typedef detail::tmat2x3< uint,
-lowp > 
lowp_umat2x3
 
typedef detail::tmat2x4< uint,
-lowp > 
lowp_umat2x4
 
typedef detail::tmat3x3< uint,
-lowp > 
lowp_umat3
 
typedef detail::tmat3x2< uint,
-lowp > 
lowp_umat3x2
 
typedef detail::tmat3x3< uint,
-lowp > 
lowp_umat3x3
 
typedef detail::tmat3x4< uint,
-lowp > 
lowp_umat3x4
 
typedef detail::tmat4x4< uint,
-lowp > 
lowp_umat4
 
typedef detail::tmat4x2< uint,
-lowp > 
lowp_umat4x2
 
typedef detail::tmat4x3< uint,
-lowp > 
lowp_umat4x3
 
typedef detail::tmat4x4< uint,
-lowp > 
lowp_umat4x4
 
typedef detail::tmat2x2< int,
-mediump > 
mediump_imat2
 
typedef detail::tmat2x2< int,
-mediump > 
mediump_imat2x2
 
typedef detail::tmat2x3< int,
-mediump > 
mediump_imat2x3
 
typedef detail::tmat2x4< int,
-mediump > 
mediump_imat2x4
 
typedef detail::tmat3x3< int,
-mediump > 
mediump_imat3
 
typedef detail::tmat3x2< int,
-mediump > 
mediump_imat3x2
 
typedef detail::tmat3x3< int,
-mediump > 
mediump_imat3x3
 
typedef detail::tmat3x4< int,
-mediump > 
mediump_imat3x4
 
typedef detail::tmat4x4< int,
-mediump > 
mediump_imat4
 
typedef detail::tmat4x2< int,
-mediump > 
mediump_imat4x2
 
typedef detail::tmat4x3< int,
-mediump > 
mediump_imat4x3
 
typedef detail::tmat4x4< int,
-mediump > 
mediump_imat4x4
 
typedef detail::tmat2x2< uint,
-mediump > 
mediump_umat2
 
typedef detail::tmat2x2< uint,
-mediump > 
mediump_umat2x2
 
typedef detail::tmat2x3< uint,
-mediump > 
mediump_umat2x3
 
typedef detail::tmat2x4< uint,
-mediump > 
mediump_umat2x4
 
typedef detail::tmat3x3< uint,
-mediump > 
mediump_umat3
 
typedef detail::tmat3x2< uint,
-mediump > 
mediump_umat3x2
 
typedef detail::tmat3x3< uint,
-mediump > 
mediump_umat3x3
 
typedef detail::tmat3x4< uint,
-mediump > 
mediump_umat3x4
 
typedef detail::tmat4x4< uint,
-mediump > 
mediump_umat4
 
typedef detail::tmat4x2< uint,
-mediump > 
mediump_umat4x2
 
typedef detail::tmat4x3< uint,
-mediump > 
mediump_umat4x3
 
typedef detail::tmat4x4< uint,
-mediump > 
mediump_umat4x4
 
typedef mediump_umat2 umat2
 
typedef mediump_umat2x2 umat2x2
 
typedef mediump_umat2x3 umat2x3
 
typedef mediump_umat2x4 umat2x4
 
typedef mediump_umat3 umat3
 
typedef mediump_umat3x2 umat3x2
 
typedef mediump_umat3x3 umat3x3
 
typedef mediump_umat3x4 umat3x4
 
typedef mediump_umat4 umat4
 
typedef mediump_umat4x2 umat4x2
 
typedef mediump_umat4x3 umat4x3
 
typedef mediump_umat4x4 umat4x4
 

+Functions

template<typename T , precision P>
GLM_FUNC_DECL T angle (tquat< T, P > const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL tquat< T, P > angleAxis (T const &angle, tvec3< T, P > const &axis)
 
template<typename T , precision P>
GLM_FUNC_DECL tvec3< T, P > axis (tquat< T, P > const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL tquat< T, P > conjugate (tquat< T, P > const &q)
 
template<typename T , precision P, template< typename, precision > class quatType>
GLM_FUNC_DECL T dot (quatType< T, P > const &x, quatType< T, P > const &y)
 
template<typename T , precision P>
GLM_FUNC_DECL tvec4< bool, P > equal (tquat< T, P > const &x, tquat< T, P > const &y)
 
template<typename T , precision P>
GLM_FUNC_DECL tvec3< T, P > eulerAngles (tquat< T, P > const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL tvec4< bool, P > greaterThan (tquat< T, P > const &x, tquat< T, P > const &y)
 
template<typename T , precision P>
GLM_FUNC_DECL tvec4< bool, P > greaterThanEqual (tquat< T, P > const &x, tquat< T, P > const &y)
 
template<typename T , precision P>
GLM_FUNC_DECL tquat< T, P > inverse (tquat< T, P > const &q)
 
template<typename T , precision P>
GLM_FUNC_DECL T length (tquat< T, P > const &q)
 
template<typename T , precision P>
GLM_FUNC_DECL tquat< T, P > lerp (tquat< T, P > const &x, tquat< T, P > const &y, T const &a)
 
template<typename T , precision P>
GLM_FUNC_DECL tvec4< bool, P > lessThan (tquat< T, P > const &x, tquat< T, P > const &y)
 
template<typename T , precision P>
GLM_FUNC_DECL tvec4< bool, P > lessThanEqual (tquat< T, P > const &x, tquat< T, P > const &y)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat3x3< T, P > mat3_cast (tquat< T, P > const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat4x4< T, P > mat4_cast (tquat< T, P > const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL tquat< T, P > mix (tquat< T, P > const &x, tquat< T, P > const &y, T const &a)
 
template<typename T , precision P>
GLM_FUNC_DECL tquat< T, P > normalize (tquat< T, P > const &q)
 
template<typename T , precision P>
GLM_FUNC_DECL tvec4< bool, P > notEqual (tquat< T, P > const &x, tquat< T, P > const &y)
 
template<typename T , precision P>
GLM_FUNC_DECL T pitch (tquat< T, P > const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL tquat< T, P > quat_cast (tmat3x3< T, P > const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL tquat< T, P > quat_cast (tmat4x4< T, P > const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL T roll (tquat< T, P > const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL tquat< T, P > rotate (tquat< T, P > const &q, T const &angle, tvec3< T, P > const &axis)
 
template<typename T , precision P>
GLM_FUNC_DECL tquat< T, P > slerp (tquat< T, P > const &x, tquat< T, P > const &y, T const &a)
 
template<typename T , precision P>
GLM_FUNC_DECL T yaw (tquat< T, P > const &x)
 

Detailed Description

-

Defines a number of matrices with integer types.

-

<glm/gtc/matrix_integer.hpp> need to be included to use these functionalities.

-

Typedef Documentation

- +

Defines a templated quaternion type and several quaternion operations.

+

<glm/gtc/quaternion.hpp> need to be included to use these functionalities.

+

Function Documentation

+
- + + + + +
typedef detail::tmat2x2<int, highp> highp_imat2GLM_FUNC_DECL T glm::angle (tquat< T, P > const & x)
-

High-precision signed integer 2x2 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 62 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x2<int, highp> highp_imat2x2
-
- -

High-precision signed integer 2x2 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 74 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x3<int, highp> highp_imat2x3
-
- -

High-precision signed integer 2x3 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 78 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x4<int, highp> highp_imat2x4
-
- -

High-precision signed integer 2x4 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 82 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x3<int, highp> highp_imat3
-
- -

High-precision signed integer 3x3 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 66 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x2<int, highp> highp_imat3x2
-
- -

High-precision signed integer 3x2 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 86 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x3<int, highp> highp_imat3x3
-
- -

High-precision signed integer 3x3 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 90 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x4<int, highp> highp_imat3x4
-
- -

High-precision signed integer 3x4 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 94 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x4<int, highp> highp_imat4
-
- -

High-precision signed integer 4x4 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 70 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x2<int, highp> highp_imat4x2
-
- -

High-precision signed integer 4x2 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 98 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x3<int, highp> highp_imat4x3
-
- -

High-precision signed integer 4x3 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 102 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x4<int, highp> highp_imat4x4
-
- -

High-precision signed integer 4x4 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 106 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x2<uint, highp> highp_umat2
-
- -

High-precision unsigned integer 2x2 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 211 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x2<uint, highp> highp_umat2x2
-
- -

High-precision unsigned integer 2x2 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 223 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x3<uint, highp> highp_umat2x3
-
- -

High-precision unsigned integer 2x3 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 227 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x4<uint, highp> highp_umat2x4
-
- -

High-precision unsigned integer 2x4 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 231 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x3<uint, highp> highp_umat3
-
- -

High-precision unsigned integer 3x3 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 215 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x2<uint, highp> highp_umat3x2
-
- -

High-precision unsigned integer 3x2 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 235 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x3<uint, highp> highp_umat3x3
-
- -

High-precision unsigned integer 3x3 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 239 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x4<uint, highp> highp_umat3x4
-
- -

High-precision unsigned integer 3x4 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 243 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x4<uint, highp> highp_umat4
-
- -

High-precision unsigned integer 4x4 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 219 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x2<uint, highp> highp_umat4x2
-
- -

High-precision unsigned integer 4x2 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 247 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x3<uint, highp> highp_umat4x3
-
- -

High-precision unsigned integer 4x3 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 251 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x4<uint, highp> highp_umat4x4
-
- -

High-precision unsigned integer 4x4 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 255 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mediump_imat2 imat2
-
- -

Signed integer 2x2 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 387 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mediump_imat2x2 imat2x2
-
- -

Signed integer 2x2 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 399 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mediump_imat2x3 imat2x3
-
- -

Signed integer 2x3 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 403 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mediump_imat2x4 imat2x4
-
- -

Signed integer 2x4 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 407 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mediump_imat3 imat3
-
- -

Signed integer 3x3 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 391 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mediump_imat3x2 imat3x2
-
- -

Signed integer 3x2 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 411 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mediump_imat3x3 imat3x3
-
- -

Signed integer 3x3 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 415 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mediump_imat3x4 imat3x4
-
- -

Signed integer 3x4 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 419 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mediump_imat4 imat4
-
- -

Signed integer 4x4 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 395 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mediump_imat4x2 imat4x2
-
- -

Signed integer 4x2 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 423 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mediump_imat4x3 imat4x3
-
- -

Signed integer 4x3 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 427 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mediump_imat4x4 imat4x4
-
- -

Signed integer 4x4 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 431 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x2<int, lowp> lowp_imat2
-
- -

Low-precision signed integer 2x2 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 161 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x2<int, lowp> lowp_imat2x2
-
- -

Low-precision signed integer 2x2 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 174 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x3<int, lowp> lowp_imat2x3
-
- -

Low-precision signed integer 2x3 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 178 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x4<int, lowp> lowp_imat2x4
-
- -

Low-precision signed integer 2x4 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 182 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x3<int, lowp> lowp_imat3
-
- -

Low-precision signed integer 3x3 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 165 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x2<int, lowp> lowp_imat3x2
-
- -

Low-precision signed integer 3x2 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 186 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x3<int, lowp> lowp_imat3x3
-
- -

Low-precision signed integer 3x3 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 190 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x4<int, lowp> lowp_imat3x4
-
- -

Low-precision signed integer 3x4 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 194 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x4<int, lowp> lowp_imat4
-
- -

Low-precision signed integer 4x4 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 169 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x2<int, lowp> lowp_imat4x2
-
- -

Low-precision signed integer 4x2 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 198 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x3<int, lowp> lowp_imat4x3
-
- -

Low-precision signed integer 4x3 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 202 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x4<int, lowp> lowp_imat4x4
-
- -

Low-precision signed integer 4x4 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 206 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x2<uint, lowp> lowp_umat2
-
- -

Low-precision unsigned integer 2x2 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 310 of file matrix_integer.hpp.

+

Returns the quaternion rotation angle.

+
See also
GLM_GTC_quaternion
- +
- + + + + -
typedef detail::tmat2x2<uint, lowp> lowp_umat2x2GLM_FUNC_DECL tquat<T, P> glm::angleAxis (T const & angle,
-
- -

Low-precision unsigned integer 2x2 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 323 of file matrix_integer.hpp.

- -
-
- -
-
- - + + + + -
typedef detail::tmat2x3<uint, lowp> lowp_umat2x3tvec3< T, P > const & axis 
-
- -

Low-precision unsigned integer 2x3 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 327 of file matrix_integer.hpp.

- -
-
- -
-
- - + + +
typedef detail::tmat2x4<uint, lowp> lowp_umat2x4)
-

Low-precision unsigned integer 2x4 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 331 of file matrix_integer.hpp.

+

Build a quaternion from an angle and a normalized axis.

+
Parameters
+ + + +
angleAngle expressed in radians.
axisAxis of the quaternion, must be normalized.
+
+
+
See also
GLM_GTC_quaternion
- +
- + + + + +
typedef detail::tmat3x3<uint, lowp> lowp_umat3GLM_FUNC_DECL tvec3<T, P> glm::axis (tquat< T, P > const & x)
-

Low-precision unsigned integer 3x3 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 314 of file matrix_integer.hpp.

+

Returns the q rotation axis.

+
See also
GLM_GTC_quaternion
- +
- + + + + +
typedef detail::tmat3x2<uint, lowp> lowp_umat3x2GLM_FUNC_DECL tquat<T, P> glm::conjugate (tquat< T, P > const & q)
-

Low-precision unsigned integer 3x2 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 335 of file matrix_integer.hpp.

+

Returns the q conjugate.

+
See also
GLM_GTC_quaternion
- +
- + + + + -
typedef detail::tmat3x3<uint, lowp> lowp_umat3x3GLM_FUNC_DECL T glm::dot (quatType< T, P > const & x,
-
- -

Low-precision unsigned integer 3x3 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 339 of file matrix_integer.hpp.

- -
-
- -
-
- - + + + + -
typedef detail::tmat3x4<uint, lowp> lowp_umat3x4quatType< T, P > const & y 
-
- -

Low-precision unsigned integer 3x4 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 343 of file matrix_integer.hpp.

- -
-
- -
-
- - + + +
typedef detail::tmat4x4<uint, lowp> lowp_umat4)
-

Low-precision unsigned integer 4x4 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 318 of file matrix_integer.hpp.

+

Returns dot product of q1 and q2, i.e., q1[0] * q2[0] + q1[1] * q2[1] + ...

+
See also
GLM_GTC_quaternion
- +
- + + + + -
typedef detail::tmat4x2<uint, lowp> lowp_umat4x2GLM_FUNC_DECL tvec4<bool, P> glm::equal (tquat< T, P > const & x,
-
- -

Low-precision unsigned integer 4x2 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 347 of file matrix_integer.hpp.

- -
-
- -
-
- - + + + + -
typedef detail::tmat4x3<uint, lowp> lowp_umat4x3tquat< T, P > const & y 
-
- -

Low-precision unsigned integer 4x3 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 351 of file matrix_integer.hpp.

- -
-
- -
-
- - + + +
typedef detail::tmat4x4<uint, lowp> lowp_umat4x4)
-

Low-precision unsigned integer 4x4 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 355 of file matrix_integer.hpp.

+

Returns the component-wise comparison of result x == y.

+
Template Parameters
+ + +
quatTypeFloating-point quaternion types.
+
+
+
See also
GLM_GTC_quaternion
- +
- + + + + +
typedef detail::tmat2x2<int, mediump> mediump_imat2GLM_FUNC_DECL tvec3<T, P> glm::eulerAngles (tquat< T, P > const & x)
-

Medium-precision signed integer 2x2 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 111 of file matrix_integer.hpp.

+

Returns euler angles, yitch as x, yaw as y, roll as z.

+

The result is expressed in radians if GLM_FORCE_RADIANS is defined or degrees otherwise.

+
See also
GLM_GTC_quaternion
- +
- + + + + -
typedef detail::tmat2x2<int, mediump> mediump_imat2x2GLM_FUNC_DECL tvec4<bool, P> glm::greaterThan (tquat< T, P > const & x,
-
- -

Medium-precision signed integer 2x2 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 124 of file matrix_integer.hpp.

- -
-
- -
-
- - + + + + -
typedef detail::tmat2x3<int, mediump> mediump_imat2x3tquat< T, P > const & y 
-
- -

Medium-precision signed integer 2x3 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 128 of file matrix_integer.hpp.

- -
-
- -
-
- - + + +
typedef detail::tmat2x4<int, mediump> mediump_imat2x4)
-

Medium-precision signed integer 2x4 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 132 of file matrix_integer.hpp.

+

Returns the component-wise comparison of result x > y.

+
Template Parameters
+ + +
quatTypeFloating-point quaternion types.
+
+
+
See also
GLM_GTC_quaternion
- +
- + + + + -
typedef detail::tmat3x3<int, mediump> mediump_imat3GLM_FUNC_DECL tvec4<bool, P> glm::greaterThanEqual (tquat< T, P > const & x,
-
- -

Medium-precision signed integer 3x3 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 115 of file matrix_integer.hpp.

- -
-
- -
-
- - + + + + -
typedef detail::tmat3x2<int, mediump> mediump_imat3x2tquat< T, P > const & y 
-
- -

Medium-precision signed integer 3x2 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 136 of file matrix_integer.hpp.

- -
-
- -
-
- - + + +
typedef detail::tmat3x3<int, mediump> mediump_imat3x3)
-

Medium-precision signed integer 3x3 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 140 of file matrix_integer.hpp.

+

Returns the component-wise comparison of result x >= y.

+
Template Parameters
+ + +
quatTypeFloating-point quaternion types.
+
+
+
See also
GLM_GTC_quaternion
- +
- + + + + +
typedef detail::tmat3x4<int, mediump> mediump_imat3x4GLM_FUNC_DECL tquat<T, P> glm::inverse (tquat< T, P > const & q)
-

Medium-precision signed integer 3x4 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 144 of file matrix_integer.hpp.

+

Returns the q inverse.

+
See also
GLM_GTC_quaternion
- +
- + + + + +
typedef detail::tmat4x4<int, mediump> mediump_imat4GLM_FUNC_DECL T glm::length (tquat< T, P > const & q)
-

Medium-precision signed integer 4x4 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 119 of file matrix_integer.hpp.

+

Returns the length of the quaternion.

+
See also
GLM_GTC_quaternion
- +
- + + + + -
typedef detail::tmat4x2<int, mediump> mediump_imat4x2GLM_FUNC_DECL tquat<T, P> glm::lerp (tquat< T, P > const & x,
-
- -

Medium-precision signed integer 4x2 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 148 of file matrix_integer.hpp.

- -
-
- -
-
- - + + + + -
typedef detail::tmat4x3<int, mediump> mediump_imat4x3tquat< T, P > const & y,
-
- -

Medium-precision signed integer 4x3 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 152 of file matrix_integer.hpp.

- -
-
- -
-
- - + + + + -
typedef detail::tmat4x4<int, mediump> mediump_imat4x4T const & a 
-
- -

Medium-precision signed integer 4x4 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 156 of file matrix_integer.hpp.

- -
-
- -
-
- - + + +
typedef detail::tmat2x2<uint, mediump> mediump_umat2)
-

Medium-precision unsigned integer 2x2 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 260 of file matrix_integer.hpp.

+

Linear interpolation of two quaternions.

+

The interpolation is oriented.

+
Parameters
+ + + + +
xA quaternion
yA quaternion
aInterpolation factor. The interpolation is defined in the range [0, 1].
+
+
+
Template Parameters
+ + +
TValue type used to build the quaternion. Supported: half, float or double.
+
+
+
See also
GLM_GTC_quaternion
- +
- + + + + -
typedef detail::tmat2x2<uint, mediump> mediump_umat2x2GLM_FUNC_DECL tvec4<bool, P> glm::lessThan (tquat< T, P > const & x,
-
- -

Medium-precision unsigned integer 2x2 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 273 of file matrix_integer.hpp.

- -
-
- -
-
- - + + + + -
typedef detail::tmat2x3<uint, mediump> mediump_umat2x3tquat< T, P > const & y 
-
- -

Medium-precision unsigned integer 2x3 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 277 of file matrix_integer.hpp.

- -
-
- -
-
- - + + +
typedef detail::tmat2x4<uint, mediump> mediump_umat2x4)
-

Medium-precision unsigned integer 2x4 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 281 of file matrix_integer.hpp.

+

Returns the component-wise comparison result of x < y.

+
Template Parameters
+ + +
quatTypeFloating-point quaternion types.
+
+
+
See also
GLM_GTC_quaternion
- +
- + + + + -
typedef detail::tmat3x3<uint, mediump> mediump_umat3GLM_FUNC_DECL tvec4<bool, P> glm::lessThanEqual (tquat< T, P > const & x,
-
- -

Medium-precision unsigned integer 3x3 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 264 of file matrix_integer.hpp.

- -
-
- -
-
- - + + + + -
typedef detail::tmat3x2<uint, mediump> mediump_umat3x2tquat< T, P > const & y 
-
- -

Medium-precision unsigned integer 3x2 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 285 of file matrix_integer.hpp.

- -
-
- -
-
- - + + +
typedef detail::tmat3x3<uint, mediump> mediump_umat3x3)
-

Medium-precision unsigned integer 3x3 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 289 of file matrix_integer.hpp.

+

Returns the component-wise comparison of result x <= y.

+
Template Parameters
+ + +
quatTypeFloating-point quaternion types.
+
+
+
See also
GLM_GTC_quaternion
- +
- + + + + +
typedef detail::tmat3x4<uint, mediump> mediump_umat3x4GLM_FUNC_DECL tmat3x3<T, P> glm::mat3_cast (tquat< T, P > const & x)
-

Medium-precision unsigned integer 3x4 matrix.

-
See Also
GLM_GTC_matrix_integer
+

Converts a quaternion to a 3 * 3 matrix.

+
See also
GLM_GTC_quaternion
-

Definition at line 293 of file matrix_integer.hpp.

+

Referenced by glm::toMat3().

- +
- + + + + +
typedef detail::tmat4x4<uint, mediump> mediump_umat4GLM_FUNC_DECL tmat4x4<T, P> glm::mat4_cast (tquat< T, P > const & x)
-

Medium-precision unsigned integer 4x4 matrix.

-
See Also
GLM_GTC_matrix_integer
+

Converts a quaternion to a 4 * 4 matrix.

+
See also
GLM_GTC_quaternion
-

Definition at line 268 of file matrix_integer.hpp.

+

Referenced by glm::toMat4().

- +
- + + + + -
typedef detail::tmat4x2<uint, mediump> mediump_umat4x2GLM_FUNC_DECL tquat<T, P> glm::mix (tquat< T, P > const & x,
-
- -

Medium-precision unsigned integer 4x2 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 297 of file matrix_integer.hpp.

- -
-
- -
-
- - + + + + -
typedef detail::tmat4x3<uint, mediump> mediump_umat4x3tquat< T, P > const & y,
-
- -

Medium-precision unsigned integer 4x3 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 301 of file matrix_integer.hpp.

- -
-
- -
-
- - + + + + -
typedef detail::tmat4x4<uint, mediump> mediump_umat4x4T const & a 
-
- -

Medium-precision unsigned integer 4x4 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 305 of file matrix_integer.hpp.

- -
-
- -
-
- - + + +
typedef mediump_umat2 umat2)
-

Unsigned integer 2x2 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 464 of file matrix_integer.hpp.

+

Spherical linear interpolation of two quaternions.

+

The interpolation is oriented and the rotation is performed at constant speed. For short path spherical linear interpolation, use the slerp function.

+
Parameters
+ + + + +
xA quaternion
yA quaternion
aInterpolation factor. The interpolation is defined beyond the range [0, 1].
+
+
+
Template Parameters
+ + +
TValue type used to build the quaternion. Supported: half, float or double.
+
+
+
See also
GLM_GTC_quaternion
+
+- slerp(tquat<T, P> const & x, tquat<T, P> const & y, T const & a)
- +
- + + + + +
typedef mediump_umat2x2 umat2x2GLM_FUNC_DECL tquat<T, P> glm::normalize (tquat< T, P > const & q)
-

Unsigned integer 2x2 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 476 of file matrix_integer.hpp.

+

Returns the normalized quaternion.

+
See also
GLM_GTC_quaternion
- +
- + + + + -
typedef mediump_umat2x3 umat2x3GLM_FUNC_DECL tvec4<bool, P> glm::notEqual (tquat< T, P > const & x,
-
- -

Unsigned integer 2x3 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 480 of file matrix_integer.hpp.

- -
-
- -
-
- - + + + + -
typedef mediump_umat2x4 umat2x4tquat< T, P > const & y 
-
- -

Unsigned integer 2x4 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 484 of file matrix_integer.hpp.

- -
-
- -
-
- - + + +
typedef mediump_umat3 umat3)
-

Unsigned integer 3x3 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 468 of file matrix_integer.hpp.

+

Returns the component-wise comparison of result x != y.

+
Template Parameters
+ + +
quatTypeFloating-point quaternion types.
+
+
+
See also
GLM_GTC_quaternion
- +
- + + + + +
typedef mediump_umat3x2 umat3x2GLM_FUNC_DECL T glm::pitch (tquat< T, P > const & x)
-

Unsigned integer 3x2 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 488 of file matrix_integer.hpp.

+

Returns pitch value of euler angles expressed in radians.

+
See also
GLM_GTX_quaternion
- +
- + + + + +
typedef mediump_umat3x3 umat3x3GLM_FUNC_DECL tquat<T, P> glm::quat_cast (tmat3x3< T, P > const & x)
-

Unsigned integer 3x3 matrix.

-
See Also
GLM_GTC_matrix_integer
+

Converts a 3 * 3 matrix to a quaternion.

+
See also
GLM_GTC_quaternion
-

Definition at line 492 of file matrix_integer.hpp.

+

Referenced by glm::toQuat().

- +
- + + + + +
typedef mediump_umat3x4 umat3x4GLM_FUNC_DECL tquat<T, P> glm::quat_cast (tmat4x4< T, P > const & x)
-

Unsigned integer 3x4 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 496 of file matrix_integer.hpp.

+

Converts a 4 * 4 matrix to a quaternion.

+
See also
GLM_GTC_quaternion
- +
- + + + + +
typedef mediump_umat4 umat4GLM_FUNC_DECL T glm::roll (tquat< T, P > const & x)
-

Unsigned integer 4x4 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 472 of file matrix_integer.hpp.

+

Returns roll value of euler angles expressed in radians.

+
See also
GLM_GTX_quaternion
- +
- + + + + + + + + + + + + + + + + + + + + +
typedef mediump_umat4x2 umat4x2GLM_FUNC_DECL tquat<T, P> glm::rotate (tquat< T, P > const & q,
T const & angle,
tvec3< T, P > const & axis 
)
-

Unsigned integer 4x2 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 500 of file matrix_integer.hpp.

+

Rotates a quaternion from a vector of 3 components axis and an angle.

+
Parameters
+ + + + +
qSource orientation
angleAngle expressed in radians.
axisAxis of the rotation
+
+
+
See also
GLM_GTC_quaternion
- +
- + + + + + + + + + + + + + + + + + + + + +
typedef mediump_umat4x3 umat4x3GLM_FUNC_DECL tquat<T, P> glm::slerp (tquat< T, P > const & x,
tquat< T, P > const & y,
T const & a 
)
-

Unsigned integer 4x3 matrix.

-
See Also
GLM_GTC_matrix_integer
+

Spherical linear interpolation of two quaternions.

+

The interpolation always take the short path and the rotation is performed at constant speed.

+
Parameters
+ + + + +
xA quaternion
yA quaternion
aInterpolation factor. The interpolation is defined beyond the range [0, 1].
+
+
+
Template Parameters
+ + +
TValue type used to build the quaternion. Supported: half, float or double.
+
+
+
See also
GLM_GTC_quaternion
+

Spherical linear interpolation of two quaternions.

-

Definition at line 504 of file matrix_integer.hpp.

+

Definition at line 76 of file compatibility.hpp.

+ +

References glm::mix().

- +
- + + + + +
typedef mediump_umat4x4 umat4x4GLM_FUNC_DECL T glm::yaw (tquat< T, P > const & x)
-

Unsigned integer 4x4 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 508 of file matrix_integer.hpp.

+

Returns yaw value of euler angles expressed in radians.

+
See also
GLM_GTX_quaternion
@@ -1953,7 +881,7 @@ mediump >  diff --git a/doc/api/a00175.html b/doc/api/a00175.html index 31dfc585..2c13e06f 100644 --- a/doc/api/a00175.html +++ b/doc/api/a00175.html @@ -3,8 +3,8 @@ - -GLM: GLM_GTC_matrix_inverse + +0.9.6: GLM_GTC_random @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -41,83 +39,210 @@
Functions
-
GLM_GTC_matrix_inverse
+
GLM_GTC_random
GTC Extensions (Stable)
- - - - - - + + + + + + + + + + + + + + + + + +

Functions

template<typename genType >
GLM_FUNC_QUALIFIER genType affineInverse (genType const &m)
 
template<typename genType >
GLM_FUNC_QUALIFIER
-genType::value_type 
inverseTranspose (genType const &m)
 
template<typename T >
GLM_FUNC_DECL tvec3< T, defaultp > ballRand (T Radius)
 
template<typename T >
GLM_FUNC_DECL tvec2< T, defaultp > circularRand (T Radius)
 
template<typename T >
GLM_FUNC_DECL tvec2< T, defaultp > diskRand (T Radius)
 
template<typename genType >
GLM_FUNC_DECL genType gaussRand (genType Mean, genType Deviation)
 
template<typename genTYpe >
GLM_FUNC_DECL genTYpe linearRand (genTYpe Min, genTYpe Max)
 
template<typename T >
GLM_FUNC_DECL tvec3< T, defaultp > sphericalRand (T Radius)
 

Detailed Description

-

Defines additional matrix inverting functions.

-

<glm/gtc/matrix_inverse.hpp> need to be included to use these functionalities.

+

Generate random number from various distribution methods.

+

<glm/gtc/random.hpp> need to be included to use these functionalities.

Function Documentation

- +
- + - - + +
GLM_FUNC_QUALIFIER genType glm::affineInverse GLM_FUNC_DECL tvec3<T, defaultp> glm::ballRand (genType const & m)Radius)
-

Fast matrix inverse for affine matrix.

+

Generate a random 3D vector which coordinates are regulary distributed within the volume of a ball of a given radius.

Parameters
- +
mInput matrix to invert.
Radius
-
Template Parameters
- - -
genTypeSquared floating-point matrix: half, float or double. Inverse of matrix based of half-precision floating point value is highly innacurate.
-
-
-
See Also
GLM_GTC_matrix_inverse
+
See also
GLM_GTC_random
- +
- + - - + +
GLM_FUNC_QUALIFIER genType::value_type glm::inverseTranspose GLM_FUNC_DECL tvec2<T, defaultp> glm::circularRand (genType const & m)Radius)
-

Compute the inverse transpose of a matrix.

+

Generate a random 2D vector which coordinates are regulary distributed on a circle of a given radius.

Parameters
- + +
mInput matrix to invert transpose.
Radius
+
+
+
See also
GLM_GTC_random
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL tvec2<T, defaultp> glm::diskRand (Radius)
+
+ +

Generate a random 2D vector which coordinates are regulary distributed within the area of a disk of a given radius.

+
Parameters
+ + +
Radius
+
+
+
See also
GLM_GTC_random
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL genType glm::gaussRand (genType Mean,
genType Deviation 
)
+
+ +

Generate random numbers in the interval [Min, Max], according a gaussian distribution.

+
Parameters
+ + + +
Mean
Deviation
+
+
+
See also
GLM_GTC_random
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL genTYpe glm::linearRand (genTYpe Min,
genTYpe Max 
)
+
+ +

Generate random numbers in the interval [Min, Max], according a linear distribution.

+
Parameters
+ + +
Min
Max
Template Parameters
- +
genTypeSquared floating-point matrix: half, float or double. Inverse of matrix based of half-precision floating point value is highly innacurate.
genTypeValue type. Currently supported: half (not recommanded), float or double scalars and vectors.
-
See Also
GLM_GTC_matrix_inverse
+
See also
GLM_GTC_random
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL tvec3<T, defaultp> glm::sphericalRand (Radius)
+
+ +

Generate a random 3D vector which coordinates are regulary distributed on a sphere of a given radius.

+
Parameters
+ + +
Radius
+
+
+
See also
GLM_GTC_random
@@ -126,7 +251,7 @@ genType::value_type  diff --git a/doc/api/a00176.html b/doc/api/a00176.html index c9e08f50..8455d1e1 100644 --- a/doc/api/a00176.html +++ b/doc/api/a00176.html @@ -3,8 +3,8 @@ - -GLM: GLM_GTC_matrix_transform + +0.9.6: GLM_GTC_reciprocal @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -41,861 +39,281 @@
Functions
-
GLM_GTC_matrix_transform
+
GLM_GTC_reciprocal
GTC Extensions (Stable)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Functions

template<typename T , precision P>
GLM_FUNC_DECL detail::tmat4x4
-< T, P > 
frustum (T const &left, T const &right, T const &bottom, T const &top, T const &near, T const &far)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tmat4x4
-< T, P > 
infinitePerspective (T fovy, T aspect, T near)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tmat4x4
-< T, P > 
lookAt (detail::tvec3< T, P > const &eye, detail::tvec3< T, P > const &center, detail::tvec3< T, P > const &up)
 
template<typename T >
GLM_FUNC_DECL detail::tmat4x4
-< T, defaultp > 
ortho (T const &left, T const &right, T const &bottom, T const &top, T const &zNear, T const &zFar)
 
template<typename T >
GLM_FUNC_DECL detail::tmat4x4
-< T, defaultp > 
ortho (T const &left, T const &right, T const &bottom, T const &top)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tmat4x4
-< T, P > 
perspective (T const &fovy, T const &aspect, T const &near, T const &far)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tmat4x4
-< T, P > 
perspectiveFov (T const &fov, T const &width, T const &height, T const &near, T const &far)
 
template<typename T , precision P, typename U >
GLM_FUNC_DECL detail::tmat4x4
-< T, P > 
pickMatrix (detail::tvec2< T, P > const &center, detail::tvec2< T, P > const &delta, detail::tvec4< U, P > const &viewport)
 
template<typename T , typename U , precision P>
GLM_FUNC_DECL detail::tvec3< T, P > project (detail::tvec3< T, P > const &obj, detail::tmat4x4< T, P > const &model, detail::tmat4x4< T, P > const &proj, detail::tvec4< U, P > const &viewport)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tmat4x4
-< T, P > 
rotate (detail::tmat4x4< T, P > const &m, T const &angle, detail::tvec3< T, P > const &axis)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tmat4x4
-< T, P > 
scale (detail::tmat4x4< T, P > const &m, detail::tvec3< T, P > const &v)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tmat4x4
-< T, P > 
translate (detail::tmat4x4< T, P > const &m, detail::tvec3< T, P > const &v)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tmat4x4
-< T, P > 
tweakedInfinitePerspective (T fovy, T aspect, T near)
 
template<typename T , typename U , precision P>
GLM_FUNC_DECL detail::tvec3< T, P > unProject (detail::tvec3< T, P > const &win, detail::tmat4x4< T, P > const &model, detail::tmat4x4< T, P > const &proj, detail::tvec4< U, P > const &viewport)
 
template<typename genType >
GLM_FUNC_DECL genType acot (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType acoth (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType acsc (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType acsch (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType asec (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType asech (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType cot (genType const &angle)
 
template<typename genType >
GLM_FUNC_DECL genType coth (genType const &angle)
 
template<typename genType >
GLM_FUNC_DECL genType csc (genType const &angle)
 
template<typename genType >
GLM_FUNC_DECL genType csch (genType const &angle)
 
template<typename genType >
GLM_FUNC_DECL genType sec (genType const &angle)
 
template<typename genType >
GLM_FUNC_DECL genType sech (genType const &angle)
 

Detailed Description

-

Defines functions that generate common transformation matrices.

-

The matrices generated by this extension use standard OpenGL fixed-function conventions. For example, the lookAt function generates a transform from world space into the specific eye space that the projective matrix functions (perspective, ortho, etc) are designed to expect. The OpenGL compatibility specifications defines the particular layout of this eye space.

-

<glm/gtc/matrix_transform.hpp> need to be included to use these functionalities.

+

Define secant, cosecant and cotangent functions.

+

<glm/gtc/reciprocal.hpp> need to be included to use these features.

Function Documentation

- +
- + - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL detail::tmat4x4<T, P> glm::frustum GLM_FUNC_DECL genType glm::acot (T const & left,
genType const & x) T const & right,
T const & bottom,
T const & top,
T const & near,
T const & far 
)
-

Creates a frustum matrix.

-
Parameters
- - - - - - - -
left
right
bottom
top
near
far
-
-
-
Template Parameters
- - -
TValue type used to build the matrix. Currently supported: half (not recommanded), float or double.
-
-
-
See Also
GLM_GTC_matrix_transform
+

Inverse cotangent function.

+
See also
GLM_GTC_reciprocal
- +
- + - - - - - + + - - - - - - - - - - - - -
GLM_FUNC_DECL detail::tmat4x4<T, P> glm::infinitePerspective GLM_FUNC_DECL genType glm::acoth (fovy,
genType const & x) aspect,
near 
)
-

Creates a matrix for a symmetric perspective-view frustum with far plane at infinite.

-
Parameters
- - - - -
fovyExpressed in radians if GLM_FORCE_RADIANS is define or degrees otherwise.
aspect
near
-
-
-
Template Parameters
- - -
TValue type used to build the matrix. Currently supported: half (not recommanded), float or double.
-
-
-
See Also
GLM_GTC_matrix_transform
+

Inverse cotangent hyperbolic function.

+
See also
GLM_GTC_reciprocal
- +
- + - - - - - + + - - - - - - - - - - - - -
GLM_FUNC_DECL detail::tmat4x4<T, P> glm::lookAt GLM_FUNC_DECL genType glm::acsc (detail::tvec3< T, P > const & eye,
genType const & x) detail::tvec3< T, P > const & center,
detail::tvec3< T, P > const & up 
)
-

Build a look at view matrix.

-
Parameters
- - - - -
eyePosition of the camera
centerPosition where the camera is looking at
upNormalized up vector, how the camera is oriented. Typically (0, 0, 1)
-
-
-
See Also
GLM_GTC_matrix_transform
-
-- frustum(T const & left, T const & right, T const & bottom, T const & top, T const & nearVal, T const & farVal) frustum(T const & left, T const & right, T const & bottom, T const & top, T const & nearVal, T const & farVal)
+

Inverse cosecant function.

+
See also
GLM_GTC_reciprocal
- +
- + - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL detail::tmat4x4<T, defaultp> glm::ortho GLM_FUNC_DECL genType glm::acsch (T const & left,
genType const & x) T const & right,
T const & bottom,
T const & top,
T const & zNear,
T const & zFar 
)
-

Creates a matrix for an orthographic parallel viewing volume.

-
Parameters
- - - - - - - -
left
right
bottom
top
zNear
zFar
-
-
-
Template Parameters
- - -
TValue type used to build the matrix. Currently supported: half (not recommanded), float or double.
-
-
-
See Also
GLM_GTC_matrix_transform
-
-- glm::ortho(T const & left, T const & right, T const & bottom, T const & top)
+

Inverse cosecant hyperbolic function.

+
See also
GLM_GTC_reciprocal
- +
- + - - - - - + + - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL detail::tmat4x4<T, defaultp> glm::ortho GLM_FUNC_DECL genType glm::asec (T const & left,
genType const & x) T const & right,
T const & bottom,
T const & top 
)
-

Creates a matrix for projecting two-dimensional coordinates onto the screen.

-
Parameters
- - - - - -
left
right
bottom
top
-
-
-
Template Parameters
- - -
TValue type used to build the matrix. Currently supported: half (not recommanded), float or double.
-
-
-
See Also
GLM_GTC_matrix_transform
-
-- glm::ortho(T const & left, T const & right, T const & bottom, T const & top, T const & zNear, T const & zFar)
+

Inverse secant function.

+
See also
GLM_GTC_reciprocal
- +
- + - - - - - + + - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL detail::tmat4x4<T, P> glm::perspective GLM_FUNC_DECL genType glm::asech (T const & fovy,
genType const & x) T const & aspect,
T const & near,
T const & far 
)
-

Creates a matrix for a symetric perspective-view frustum.

-
Parameters
- - - - - -
fovyExpressed in radians if GLM_FORCE_RADIANS is define or degrees otherwise.
aspect
near
far
-
-
-
Template Parameters
- - -
TValue type used to build the matrix. Currently supported: half (not recommanded), float or double.
-
-
-
See Also
GLM_GTC_matrix_transform
+

Inverse secant hyperbolic function.

+
See also
GLM_GTC_reciprocal
- +
- + - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL detail::tmat4x4<T, P> glm::perspectiveFov GLM_FUNC_DECL genType glm::cot (T const & fov,
genType const & angle) T const & width,
T const & height,
T const & near,
T const & far 
)
-

Builds a perspective projection matrix based on a field of view.

-
Parameters
- - - - - - -
fovExpressed in radians if GLM_FORCE_RADIANS is define or degrees otherwise.
width
height
near
far
-
-
-
Template Parameters
- - -
TValue type used to build the matrix. Currently supported: half (not recommanded), float or double.
-
-
-
See Also
GLM_GTC_matrix_transform
+

Cotangent function.

+

adjacent / opposite or 1 / tan(x)

+
See also
GLM_GTC_reciprocal
- +
- + - - - - - + + - - - - - - - - - - - - -
GLM_FUNC_DECL detail::tmat4x4<T, P> glm::pickMatrix GLM_FUNC_DECL genType glm::coth (detail::tvec2< T, P > const & center,
genType const & angle) detail::tvec2< T, P > const & delta,
detail::tvec4< U, P > const & viewport 
)
-

Define a picking region.

-
Parameters
- - - - -
center
delta
viewport
-
-
-
Template Parameters
- - - -
TNative type used for the computation. Currently supported: half (not recommanded), float or double.
UCurrently supported: Floating-point types and integer types.
-
-
-
See Also
GLM_GTC_matrix_transform
+

Cotangent hyperbolic function.

+
See also
GLM_GTC_reciprocal
- +
- + - - - - - + + - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL detail::tvec3<T, P> glm::project GLM_FUNC_DECL genType glm::csc (detail::tvec3< T, P > const & obj,
genType const & angle) detail::tmat4x4< T, P > const & model,
detail::tmat4x4< T, P > const & proj,
detail::tvec4< U, P > const & viewport 
)
-

Map the specified object coordinates (obj.x, obj.y, obj.z) into window coordinates.

-
Parameters
- - - - - -
obj
model
proj
viewport
-
-
-
Template Parameters
- - - -
TNative type used for the computation. Currently supported: half (not recommanded), float or double.
UCurrently supported: Floating-point types and integer types.
-
-
-
See Also
GLM_GTC_matrix_transform
+

Cosecant function.

+

hypotenuse / opposite or 1 / sin(x)

+
See also
GLM_GTC_reciprocal
- +
- + - - - - - + + - - - - - - - - - - - - -
GLM_FUNC_DECL detail::tmat4x4<T, P> glm::rotate GLM_FUNC_DECL genType glm::csch (detail::tmat4x4< T, P > const & m,
genType const & angle) T const & angle,
detail::tvec3< T, P > const & axis 
)
-

Builds a rotation 4 * 4 matrix created from an axis vector and an angle.

-
Parameters
- - - - -
mInput matrix multiplied by this rotation matrix.
angleRotation angle expressed in radians if GLM_FORCE_RADIANS is define or degrees otherwise.
axisRotation axis, recommanded to be normalized.
-
-
-
Template Parameters
- - -
TValue type used to build the matrix. Supported: half, float or double.
-
-
-
See Also
GLM_GTC_matrix_transform
-
-GLM_GTX_transform
-
-- rotate(T angle, T x, T y, T z)
-
-- rotate(detail::tmat4x4<T, P> const & m, T angle, T x, T y, T z)
-
-- rotate(T angle, detail::tvec3<T, P> const & v)
+

Cosecant hyperbolic function.

+
See also
GLM_GTC_reciprocal
- +
- + - - - - - + + - - - - - - -
GLM_FUNC_DECL detail::tmat4x4<T, P> glm::scale GLM_FUNC_DECL genType glm::sec (detail::tmat4x4< T, P > const & m,
genType const & angle) detail::tvec3< T, P > const & v 
)
-

Builds a scale 4 * 4 matrix created from 3 scalars.

-
Parameters
- - - -
mInput matrix multiplied by this scale matrix.
vRatio of scaling for each axis.
-
-
-
Template Parameters
- - -
TValue type used to build the matrix. Currently supported: half (not recommanded), float or double.
-
-
-
See Also
GLM_GTC_matrix_transform
-
-GLM_GTX_transform
-
-- scale(T x, T y, T z) scale(T const & x, T const & y, T const & z)
-
-- scale(detail::tmat4x4<T, P> const & m, T x, T y, T z)
-
-- scale(detail::tvec3<T, P> const & v)
+

Secant function.

+

hypotenuse / adjacent or 1 / cos(x)

+
See also
GLM_GTC_reciprocal
- +
- + - - - - - + + - - - - - - -
GLM_FUNC_DECL detail::tmat4x4<T, P> glm::translate GLM_FUNC_DECL genType glm::sech (detail::tmat4x4< T, P > const & m,
genType const & angle) detail::tvec3< T, P > const & v 
)
-

Builds a translation 4 * 4 matrix created from a vector of 3 components.

-
Parameters
- - - -
mInput matrix multiplied by this translation matrix.
vCoordinates of a translation vector.
-
-
-
Template Parameters
- - -
TValue type used to build the matrix. Currently supported: half (not recommanded), float or double.
* #include <glm/glm.hpp>
-
* #include <glm/gtc/matrix_transform.hpp>
-
* ...
- -
* // m[0][0] == 1.0f, m[0][1] == 0.0f, m[0][2] == 0.0f, m[0][3] == 0.0f
-
* // m[1][0] == 0.0f, m[1][1] == 1.0f, m[1][2] == 0.0f, m[1][3] == 0.0f
-
* // m[2][0] == 0.0f, m[2][1] == 0.0f, m[2][2] == 1.0f, m[2][3] == 0.0f
-
* // m[3][0] == 1.0f, m[3][1] == 1.0f, m[3][2] == 1.0f, m[3][3] == 1.0f
-
*
-
-
-
-
See Also
GLM_GTC_matrix_transform
-
-GLM_GTX_transform
-
-- translate(T x, T y, T z)
-
-- translate(detail::tmat4x4<T, P> const & m, T x, T y, T z)
-
-- translate(detail::tvec3<T, P> const & v)
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL detail::tmat4x4<T, P> glm::tweakedInfinitePerspective (fovy,
aspect,
near 
)
-
- -

Creates a matrix for a symmetric perspective-view frustum with far plane at infinite for graphics hardware that doesn't support depth clamping.

-
Parameters
- - - - -
fovyExpressed in radians if GLM_FORCE_RADIANS is define or degrees otherwise.
aspect
near
-
-
-
Template Parameters
- - -
TValue type used to build the matrix. Currently supported: half (not recommanded), float or double.
-
-
-
See Also
GLM_GTC_matrix_transform
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL detail::tvec3<T, P> glm::unProject (detail::tvec3< T, P > const & win,
detail::tmat4x4< T, P > const & model,
detail::tmat4x4< T, P > const & proj,
detail::tvec4< U, P > const & viewport 
)
-
- -

Map the specified window coordinates (win.x, win.y, win.z) into object coordinates.

-
Parameters
- - - - - -
win
model
proj
viewport
-
-
-
Template Parameters
- - - -
TNative type used for the computation. Currently supported: half (not recommanded), float or double.
UCurrently supported: Floating-point types and integer types.
-
-
-
See Also
GLM_GTC_matrix_transform
+

Secant hyperbolic function.

+
See also
GLM_GTC_reciprocal
@@ -904,7 +322,7 @@ Functions diff --git a/doc/api/a00177.html b/doc/api/a00177.html index 38543e5a..c50e8d77 100644 --- a/doc/api/a00177.html +++ b/doc/api/a00177.html @@ -3,8 +3,8 @@ - -GLM: GLM_GTC_noise + +0.9.6: GLM_GTC_round @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -41,59 +39,83 @@
Functions
-
GLM_GTC_noise
+
GLM_GTC_round
GTC Extensions (Stable)
- - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Functions

template<typename T , precision P, template< typename, precision > class vecType>
perlin (vecType< T, P > const &p)
 
template<typename T , precision P, template< typename, precision > class vecType>
perlin (vecType< T, P > const &p, vecType< T, P > const &rep)
 
template<typename T , precision P, template< typename, precision > class vecType>
simplex (vecType< T, P > const &p)
 
template<typename genType >
GLM_FUNC_DECL genType ceilMultiple (genType Source, genType Multiple)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > ceilMultiple (vecType< T, P > const &Source, vecType< T, P > const &Multiple)
 
template<typename genIUType >
GLM_FUNC_DECL genIUType ceilPowerOfTwo (genIUType Value)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > ceilPowerOfTwo (vecType< T, P > const &value)
 
template<typename genType >
GLM_FUNC_DECL genType floorMultiple (genType Source, genType Multiple)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > floorMultiple (vecType< T, P > const &Source, vecType< T, P > const &Multiple)
 
template<typename genIUType >
GLM_FUNC_DECL genIUType floorPowerOfTwo (genIUType Value)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > floorPowerOfTwo (vecType< T, P > const &value)
 
template<typename genIUType >
GLM_FUNC_DECL bool isMultiple (genIUType Value, genIUType Multiple)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< bool, P > isMultiple (vecType< T, P > const &Value, T Multiple)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< bool, P > isMultiple (vecType< T, P > const &Value, vecType< T, P > const &Multiple)
 
template<typename genIUType >
GLM_FUNC_DECL bool isPowerOfTwo (genIUType Value)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< bool, P > isPowerOfTwo (vecType< T, P > const &value)
 
template<typename genType >
GLM_FUNC_DECL genType roundMultiple (genType Source, genType Multiple)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > roundMultiple (vecType< T, P > const &Source, vecType< T, P > const &Multiple)
 
template<typename genIUType >
GLM_FUNC_DECL genIUType roundPowerOfTwo (genIUType Value)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > roundPowerOfTwo (vecType< T, P > const &value)
 

Detailed Description

-

Defines 2D, 3D and 4D procedural noise functions Based on the work of Stefan Gustavson and Ashima Arts on "webgl-noise": https://github.com/ashima/webgl-noise Following Stefan Gustavson's paper "Simplex noise demystified": http://www.itn.liu.se/~stegu/simplexnoise/simplexnoise.pdf <glm/gtc/noise.hpp> need to be included to use these functionalities.

+

rounding value to specific boundings

+

<glm/gtc/round.hpp> need to be included to use these functionalities.

Function Documentation

- +
- + - - - - -
T glm::perlin GLM_FUNC_DECL genType glm::ceilMultiple (vecType< T, P > const & p)
-
- -

Classic perlin noise.

-
See Also
GLM_GTC_noise
- -
-
- -
-
- - - - - - + + - - + + @@ -103,27 +125,470 @@ Functions
T glm::perlin (vecType< T, P > const & p, genType Source,
vecType< T, P > const & rep genType Multiple 
-

Periodic perlin noise.

-
See Also
GLM_GTC_noise
+

Higher multiple number of Source.

+
Template Parameters
+ + +
genTypeFloating-point or integer scalar or vector types.
+
+
+
Parameters
+ + + +
Source
MultipleMust be a null or positive value
+
+
+
See also
GLM_GTC_round
- +
- + - + + + + + + + + + + + + + +
T glm::simplex GLM_FUNC_DECL vecType<T, P> glm::ceilMultiple ( vecType< T, P > const & p)Source,
vecType< T, P > const & Multiple 
)
+
+ +

Higher multiple number of Source.

+
Template Parameters
+ + +
genTypeFloating-point or integer scalar or vector types.
+
+
+
Parameters
+ + + +
Source
MultipleMust be a null or positive value
+
+
+
See also
GLM_GTC_round
+ +
+
+ +
+
+ + + + + +
GLM_FUNC_DECL genIUType glm::ceilPowerOfTwo (genIUType Value)
-

Simplex noise.

-
See Also
GLM_GTC_noise
+

Return the power of two number which value is just higher the input value, round up to a power of two.

+
See also
GLM_GTC_round
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vecType<T, P> glm::ceilPowerOfTwo (vecType< T, P > const & value)
+
+ +

Return the power of two number which value is just higher the input value, round up to a power of two.

+
See also
GLM_GTC_round
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL genType glm::floorMultiple (genType Source,
genType Multiple 
)
+
+ +

Lower multiple number of Source.

+
Template Parameters
+ + +
genTypeFloating-point or integer scalar or vector types.
+
+
+
Parameters
+ + + +
Source
MultipleMust be a null or positive value
+
+
+
See also
GLM_GTC_round
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vecType<T, P> glm::floorMultiple (vecType< T, P > const & Source,
vecType< T, P > const & Multiple 
)
+
+ +

Lower multiple number of Source.

+
Template Parameters
+ + +
genTypeFloating-point or integer scalar or vector types.
+
+
+
Parameters
+ + + +
Source
MultipleMust be a null or positive value
+
+
+
See also
GLM_GTC_round
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL genIUType glm::floorPowerOfTwo (genIUType Value)
+
+ +

Return the power of two number which value is just lower the input value, round down to a power of two.

+
See also
GLM_GTC_round
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vecType<T, P> glm::floorPowerOfTwo (vecType< T, P > const & value)
+
+ +

Return the power of two number which value is just lower the input value, round down to a power of two.

+
See also
GLM_GTC_round
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL bool glm::isMultiple (genIUType Value,
genIUType Multiple 
)
+
+ +

Return true if the 'Value' is a multiple of 'Multiple'.

+
See also
GLM_GTC_round
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vecType<bool, P> glm::isMultiple (vecType< T, P > const & Value,
Multiple 
)
+
+ +

Return true if the 'Value' is a multiple of 'Multiple'.

+
See also
GLM_GTC_round
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vecType<bool, P> glm::isMultiple (vecType< T, P > const & Value,
vecType< T, P > const & Multiple 
)
+
+ +

Return true if the 'Value' is a multiple of 'Multiple'.

+
See also
GLM_GTC_round
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL bool glm::isPowerOfTwo (genIUType Value)
+
+ +

Return true if the value is a power of two number.

+
See also
GLM_GTC_round
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vecType<bool, P> glm::isPowerOfTwo (vecType< T, P > const & value)
+
+ +

Return true if the value is a power of two number.

+
See also
GLM_GTC_round
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL genType glm::roundMultiple (genType Source,
genType Multiple 
)
+
+ +

Lower multiple number of Source.

+
Template Parameters
+ + +
genTypeFloating-point or integer scalar or vector types.
+
+
+
Parameters
+ + + +
Source
MultipleMust be a null or positive value
+
+
+
See also
GLM_GTC_round
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vecType<T, P> glm::roundMultiple (vecType< T, P > const & Source,
vecType< T, P > const & Multiple 
)
+
+ +

Lower multiple number of Source.

+
Template Parameters
+ + +
genTypeFloating-point or integer scalar or vector types.
+
+
+
Parameters
+ + + +
Source
MultipleMust be a null or positive value
+
+
+
See also
GLM_GTC_round
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL genIUType glm::roundPowerOfTwo (genIUType Value)
+
+ +

Return the power of two number which value is the closet to the input value.

+
See also
GLM_GTC_round
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vecType<T, P> glm::roundPowerOfTwo (vecType< T, P > const & value)
+
+ +

Return the power of two number which value is the closet to the input value.

+
See also
GLM_GTC_round
@@ -132,7 +597,7 @@ Functions diff --git a/doc/api/a00178.html b/doc/api/a00178.html index ef31c709..ea36febb 100644 --- a/doc/api/a00178.html +++ b/doc/api/a00178.html @@ -3,8 +3,8 @@ - -GLM: GLM_GTC_packing + +0.9.6: GLM_GTC_type_precision @@ -16,9 +16,9 @@ + @@ -26,944 +26,8781 @@
-
GLM -  0.9.5 +
0.9.6
- +
-Functions
+Typedefs
-
GLM_GTC_packing
+
GLM_GTC_type_precision
GTC Extensions (Stable)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

-Functions

GLM_FUNC_DECL uint32 packF2x11_1x10 (vec3 const &v)
 
GLM_FUNC_DECL uint16 packHalf1x16 (float const &v)
 
GLM_FUNC_DECL uint64 packHalf4x16 (vec4 const &v)
 
GLM_FUNC_DECL uint32 packI3x10_1x2 (ivec4 const &v)
 
GLM_FUNC_DECL uint16 packSnorm1x16 (float const &v)
 
GLM_FUNC_DECL uint8 packSnorm1x8 (float const &s)
 
GLM_FUNC_DECL uint16 packSnorm2x8 (vec2 const &v)
 
GLM_FUNC_DECL uint32 packSnorm3x10_1x2 (vec4 const &v)
 
GLM_FUNC_DECL uint64 packSnorm4x16 (vec4 const &v)
 
GLM_FUNC_DECL uint32 packU3x10_1x2 (uvec4 const &v)
 
GLM_FUNC_DECL uint16 packUnorm1x16 (float const &v)
 
GLM_FUNC_DECL uint8 packUnorm1x8 (float const &v)
 
GLM_FUNC_DECL uint16 packUnorm2x8 (vec2 const &v)
 
GLM_FUNC_DECL uint32 packUnorm3x10_1x2 (vec4 const &v)
 
GLM_FUNC_DECL uint64 packUnorm4x16 (vec4 const &v)
 
GLM_FUNC_DECL vec3 unpackF2x11_1x10 (uint32 const &p)
 
GLM_FUNC_DECL float unpackHalf1x16 (uint16 const &v)
 
GLM_FUNC_DECL vec4 unpackHalf4x16 (uint64 const &p)
 
GLM_FUNC_DECL ivec4 unpackI3x10_1x2 (uint32 const &p)
 
GLM_FUNC_DECL float unpackSnorm1x16 (uint16 const &p)
 
GLM_FUNC_DECL float unpackSnorm1x8 (uint8 const &p)
 
GLM_FUNC_DECL vec2 unpackSnorm2x8 (uint16 const &p)
 
GLM_FUNC_DECL vec4 unpackSnorm3x10_1x2 (uint32 const &p)
 
GLM_FUNC_DECL vec4 unpackSnorm4x16 (uint64 const &p)
 
GLM_FUNC_DECL uvec4 unpackU3x10_1x2 (uint32 const &p)
 
GLM_FUNC_DECL float unpackUnorm1x16 (uint16 const &p)
 
GLM_FUNC_DECL float unpackUnorm1x8 (uint8 const &p)
 
GLM_FUNC_DECL vec2 unpackUnorm2x8 (uint16 const &p)
 
GLM_FUNC_DECL vec4 unpackUnorm3x10_1x2 (uint32 const &p)
 
GLM_FUNC_DECL vec4 unpackUnorm4x16 (uint64 const &p)
 

+Typedefs

typedef highp_float32_t f32
 
typedef f32mat2x2 f32mat2
 
typedef highp_f32mat2x2 f32mat2x2
 
typedef highp_f32mat2x3 f32mat2x3
 
typedef highp_f32mat2x4 f32mat2x4
 
typedef f32mat3x3 f32mat3
 
typedef highp_f32mat3x2 f32mat3x2
 
typedef highp_f32mat3x3 f32mat3x3
 
typedef highp_f32mat3x4 f32mat3x4
 
typedef f32mat4x4 f32mat4
 
typedef highp_f32mat4x2 f32mat4x2
 
typedef highp_f32mat4x3 f32mat4x3
 
typedef highp_f32mat4x4 f32mat4x4
 
typedef highp_f32quat f32quat
 
typedef highp_f32vec1 f32vec1
 
typedef highp_f32vec2 f32vec2
 
typedef highp_f32vec3 f32vec3
 
typedef highp_f32vec4 f32vec4
 
typedef highp_float64_t f64
 
typedef f64mat2x2 f64mat2
 
typedef highp_f64mat2x2 f64mat2x2
 
typedef highp_f64mat2x3 f64mat2x3
 
typedef highp_f64mat2x4 f64mat2x4
 
typedef f64mat3x3 f64mat3
 
typedef highp_f64mat3x2 f64mat3x2
 
typedef highp_f64mat3x3 f64mat3x3
 
typedef highp_f64mat3x4 f64mat3x4
 
typedef f64mat4x4 f64mat4
 
typedef highp_f64mat4x2 f64mat4x2
 
typedef highp_f64mat4x3 f64mat4x3
 
typedef highp_f64mat4x4 f64mat4x4
 
typedef highp_f64quat f64quat
 
typedef highp_f64vec1 f64vec1
 
typedef highp_f64vec2 f64vec2
 
typedef highp_f64vec3 f64vec3
 
typedef highp_f64vec4 f64vec4
 
typedef float float32
 
typedef highp_float32_t float32_t
 
typedef double float64
 
typedef highp_float64_t float64_t
 
typedef fmat2x2 fmat2
 
typedef highp_f32mat2x2 fmat2x2
 
typedef highp_f32mat2x3 fmat2x3
 
typedef highp_f32mat2x4 fmat2x4
 
typedef fmat3x3 fmat3
 
typedef highp_f32mat3x2 fmat3x2
 
typedef highp_f32mat3x3 fmat3x3
 
typedef highp_f32mat3x4 fmat3x4
 
typedef fmat4x4 fmat4
 
typedef highp_f32mat4x2 fmat4x2
 
typedef highp_f32mat4x3 fmat4x3
 
typedef highp_f32mat4x4 fmat4x4
 
typedef quat fquat
 
typedef highp_f32vec1 fvec1
 
typedef highp_f32vec2 fvec2
 
typedef highp_f32vec3 fvec3
 
typedef highp_f32vec4 fvec4
 
typedef float32 highp_f32
 
typedef highp_f32mat2x2 highp_f32mat2
 
typedef tmat2x2< f32, highp > highp_f32mat2x2
 
typedef tmat2x3< f32, highp > highp_f32mat2x3
 
typedef tmat2x4< f32, highp > highp_f32mat2x4
 
typedef highp_f32mat3x3 highp_f32mat3
 
typedef tmat3x2< f32, highp > highp_f32mat3x2
 
typedef tmat3x3< f32, highp > highp_f32mat3x3
 
typedef tmat3x4< f32, highp > highp_f32mat3x4
 
typedef highp_f32mat4x4 highp_f32mat4
 
typedef tmat4x2< f32, highp > highp_f32mat4x2
 
typedef tmat4x3< f32, highp > highp_f32mat4x3
 
typedef tmat4x4< f32, highp > highp_f32mat4x4
 
typedef tquat< f32, highp > highp_f32quat
 
typedef tvec1< f32, highp > highp_f32vec1
 
typedef tvec2< f32, highp > highp_f32vec2
 
typedef tvec3< f32, highp > highp_f32vec3
 
typedef tvec4< f32, highp > highp_f32vec4
 
typedef float64 highp_f64
 
typedef highp_f64mat2x2 highp_f64mat2
 
typedef tmat2x2< f64, highp > highp_f64mat2x2
 
typedef tmat2x3< f64, highp > highp_f64mat2x3
 
typedef tmat2x4< f64, highp > highp_f64mat2x4
 
typedef highp_f64mat3x3 highp_f64mat3
 
typedef tmat3x2< f64, highp > highp_f64mat3x2
 
typedef tmat3x3< f64, highp > highp_f64mat3x3
 
typedef tmat3x4< f64, highp > highp_f64mat3x4
 
typedef highp_f64mat4x4 highp_f64mat4
 
typedef tmat4x2< f64, highp > highp_f64mat4x2
 
typedef tmat4x3< f64, highp > highp_f64mat4x3
 
typedef tmat4x4< f64, highp > highp_f64mat4x4
 
typedef tquat< f64, highp > highp_f64quat
 
typedef tvec1< f64, highp > highp_f64vec1
 
typedef tvec2< f64, highp > highp_f64vec2
 
typedef tvec3< f64, highp > highp_f64vec3
 
typedef tvec4< f64, highp > highp_f64vec4
 
typedef detail::float32 highp_float32
 
typedef detail::float32 highp_float32_t
 
typedef detail::float64 highp_float64
 
typedef detail::float64 highp_float64_t
 
typedef highp_fmat2x2 highp_fmat2
 
typedef tmat2x2< f32, highp > highp_fmat2x2
 
typedef tmat2x3< f32, highp > highp_fmat2x3
 
typedef tmat2x4< f32, highp > highp_fmat2x4
 
typedef highp_fmat3x3 highp_fmat3
 
typedef tmat3x2< f32, highp > highp_fmat3x2
 
typedef tmat3x3< f32, highp > highp_fmat3x3
 
typedef tmat3x4< f32, highp > highp_fmat3x4
 
typedef highp_fmat4x4 highp_fmat4
 
typedef tmat4x2< f32, highp > highp_fmat4x2
 
typedef tmat4x3< f32, highp > highp_fmat4x3
 
typedef tmat4x4< f32, highp > highp_fmat4x4
 
typedef tvec1< float, highp > highp_fvec1
 
typedef tvec2< float, highp > highp_fvec2
 
typedef tvec3< float, highp > highp_fvec3
 
typedef tvec4< float, highp > highp_fvec4
 
typedef detail::int16 highp_i16
 
typedef tvec1< i16, highp > highp_i16vec1
 
typedef tvec2< i16, highp > highp_i16vec2
 
typedef tvec3< i16, highp > highp_i16vec3
 
typedef tvec4< i16, highp > highp_i16vec4
 
typedef detail::int32 highp_i32
 
typedef tvec1< i32, highp > highp_i32vec1
 
typedef tvec2< i32, highp > highp_i32vec2
 
typedef tvec3< i32, highp > highp_i32vec3
 
typedef tvec4< i32, highp > highp_i32vec4
 
typedef detail::int64 highp_i64
 
typedef tvec1< i64, highp > highp_i64vec1
 
typedef tvec2< i64, highp > highp_i64vec2
 
typedef tvec3< i64, highp > highp_i64vec3
 
typedef tvec4< i64, highp > highp_i64vec4
 
typedef detail::int8 highp_i8
 
typedef tvec1< i8, highp > highp_i8vec1
 
typedef tvec2< i8, highp > highp_i8vec2
 
typedef tvec3< i8, highp > highp_i8vec3
 
typedef tvec4< i8, highp > highp_i8vec4
 
typedef detail::int16 highp_int16
 
typedef detail::int16 highp_int16_t
 
typedef detail::int32 highp_int32
 
typedef detail::int32 highp_int32_t
 
typedef detail::int64 highp_int64
 
typedef detail::int64 highp_int64_t
 
typedef detail::int8 highp_int8
 
typedef detail::int8 highp_int8_t
 
typedef detail::uint16 highp_u16
 
typedef tvec1< u16, highp > highp_u16vec1
 
typedef tvec2< u16, highp > highp_u16vec2
 
typedef tvec3< u16, highp > highp_u16vec3
 
typedef tvec4< u16, highp > highp_u16vec4
 
typedef detail::uint32 highp_u32
 
typedef tvec1< u32, highp > highp_u32vec1
 
typedef tvec2< u32, highp > highp_u32vec2
 
typedef tvec3< u32, highp > highp_u32vec3
 
typedef tvec4< u32, highp > highp_u32vec4
 
typedef detail::uint64 highp_u64
 
typedef tvec1< u64, highp > highp_u64vec1
 
typedef tvec2< u64, highp > highp_u64vec2
 
typedef tvec3< u64, highp > highp_u64vec3
 
typedef tvec4< u64, highp > highp_u64vec4
 
typedef detail::uint8 highp_u8
 
typedef tvec1< u8, highp > highp_u8vec1
 
typedef tvec2< u8, highp > highp_u8vec2
 
typedef tvec3< u8, highp > highp_u8vec3
 
typedef tvec4< u8, highp > highp_u8vec4
 
typedef detail::uint16 highp_uint16
 
typedef detail::uint16 highp_uint16_t
 
typedef detail::uint32 highp_uint32
 
typedef detail::uint32 highp_uint32_t
 
typedef detail::uint64 highp_uint64
 
typedef detail::uint64 highp_uint64_t
 
typedef detail::uint8 highp_uint8
 
typedef detail::uint8 highp_uint8_t
 
typedef tvec1< float, highp > highp_vec1
 
typedef detail::int16 i16
 
typedef highp_i16vec1 i16vec1
 
typedef highp_i16vec2 i16vec2
 
typedef highp_i16vec3 i16vec3
 
typedef highp_i16vec4 i16vec4
 
typedef detail::int32 i32
 
typedef highp_i32vec1 i32vec1
 
typedef highp_i32vec2 i32vec2
 
typedef highp_i32vec3 i32vec3
 
typedef highp_i32vec4 i32vec4
 
typedef detail::int64 i64
 
typedef highp_i64vec1 i64vec1
 
typedef highp_i64vec2 i64vec2
 
typedef highp_i64vec3 i64vec3
 
typedef highp_i64vec4 i64vec4
 
typedef detail::int8 i8
 
typedef highp_i8vec1 i8vec1
 
typedef highp_i8vec2 i8vec2
 
typedef highp_i8vec3 i8vec3
 
typedef highp_i8vec4 i8vec4
 
typedef detail::int16 int16
 
typedef detail::int16 int16_t
 
typedef detail::int32 int32
 
typedef detail::int32 int32_t
 
typedef detail::int64 int64
 
typedef detail::int64 int64_t
 
typedef detail::int8 int8
 
typedef detail::int8 int8_t
 
typedef float32 lowp_f32
 
typedef lowp_f32mat2x2 lowp_f32mat2
 
typedef tmat2x2< f32, lowp > lowp_f32mat2x2
 
typedef tmat2x3< f32, lowp > lowp_f32mat2x3
 
typedef tmat2x4< f32, lowp > lowp_f32mat2x4
 
typedef lowp_f32mat3x3 lowp_f32mat3
 
typedef tmat3x2< f32, lowp > lowp_f32mat3x2
 
typedef tmat3x3< f32, lowp > lowp_f32mat3x3
 
typedef tmat3x4< f32, lowp > lowp_f32mat3x4
 
typedef lowp_f32mat4x4 lowp_f32mat4
 
typedef tmat4x2< f32, lowp > lowp_f32mat4x2
 
typedef tmat4x3< f32, lowp > lowp_f32mat4x3
 
typedef tmat4x4< f32, lowp > lowp_f32mat4x4
 
typedef tquat< f32, lowp > lowp_f32quat
 
typedef tvec1< f32, lowp > lowp_f32vec1
 
typedef tvec2< f32, lowp > lowp_f32vec2
 
typedef tvec3< f32, lowp > lowp_f32vec3
 
typedef tvec4< f32, lowp > lowp_f32vec4
 
typedef float64 lowp_f64
 
typedef lowp_f64mat2x2 lowp_f64mat2
 
typedef tmat2x2< f64, lowp > lowp_f64mat2x2
 
typedef tmat2x3< f64, lowp > lowp_f64mat2x3
 
typedef tmat2x4< f64, lowp > lowp_f64mat2x4
 
typedef lowp_f64mat3x3 lowp_f64mat3
 
typedef tmat3x2< f64, lowp > lowp_f64mat3x2
 
typedef tmat3x3< f64, lowp > lowp_f64mat3x3
 
typedef tmat3x4< f64, lowp > lowp_f64mat3x4
 
typedef lowp_f64mat4x4 lowp_f64mat4
 
typedef tmat4x2< f64, lowp > lowp_f64mat4x2
 
typedef tmat4x3< f64, lowp > lowp_f64mat4x3
 
typedef tmat4x4< f64, lowp > lowp_f64mat4x4
 
typedef tquat< f64, lowp > lowp_f64quat
 
typedef tvec1< f64, lowp > lowp_f64vec1
 
typedef tvec2< f64, lowp > lowp_f64vec2
 
typedef tvec3< f64, lowp > lowp_f64vec3
 
typedef tvec4< f64, lowp > lowp_f64vec4
 
typedef detail::float32 lowp_float32
 
typedef detail::float32 lowp_float32_t
 
typedef detail::float64 lowp_float64
 
typedef detail::float64 lowp_float64_t
 
typedef lowp_fmat2x2 lowp_fmat2
 
typedef tmat2x2< f32, lowp > lowp_fmat2x2
 
typedef tmat2x3< f32, lowp > lowp_fmat2x3
 
typedef tmat2x4< f32, lowp > lowp_fmat2x4
 
typedef lowp_fmat3x3 lowp_fmat3
 
typedef tmat3x2< f32, lowp > lowp_fmat3x2
 
typedef tmat3x3< f32, lowp > lowp_fmat3x3
 
typedef tmat3x4< f32, lowp > lowp_fmat3x4
 
typedef lowp_fmat4x4 lowp_fmat4
 
typedef tmat4x2< f32, lowp > lowp_fmat4x2
 
typedef tmat4x3< f32, lowp > lowp_fmat4x3
 
typedef tmat4x4< f32, lowp > lowp_fmat4x4
 
typedef tvec1< float, lowp > lowp_fvec1
 
typedef tvec2< float, lowp > lowp_fvec2
 
typedef tvec3< float, lowp > lowp_fvec3
 
typedef tvec4< float, lowp > lowp_fvec4
 
typedef detail::int16 lowp_i16
 
typedef tvec1< i16, lowp > lowp_i16vec1
 
typedef tvec2< i16, lowp > lowp_i16vec2
 
typedef tvec3< i16, lowp > lowp_i16vec3
 
typedef tvec4< i16, lowp > lowp_i16vec4
 
typedef detail::int32 lowp_i32
 
typedef tvec1< i32, lowp > lowp_i32vec1
 
typedef tvec2< i32, lowp > lowp_i32vec2
 
typedef tvec3< i32, lowp > lowp_i32vec3
 
typedef tvec4< i32, lowp > lowp_i32vec4
 
typedef detail::int64 lowp_i64
 
typedef tvec1< i64, lowp > lowp_i64vec1
 
typedef tvec2< i64, lowp > lowp_i64vec2
 
typedef tvec3< i64, lowp > lowp_i64vec3
 
typedef tvec4< i64, lowp > lowp_i64vec4
 
typedef detail::int8 lowp_i8
 
typedef tvec1< i8, lowp > lowp_i8vec1
 
typedef tvec2< i8, lowp > lowp_i8vec2
 
typedef tvec3< i8, lowp > lowp_i8vec3
 
typedef tvec4< i8, lowp > lowp_i8vec4
 
typedef detail::int16 lowp_int16
 
typedef detail::int16 lowp_int16_t
 
typedef detail::int32 lowp_int32
 
typedef detail::int32 lowp_int32_t
 
typedef detail::int64 lowp_int64
 
typedef detail::int64 lowp_int64_t
 
typedef detail::int8 lowp_int8
 
typedef detail::int8 lowp_int8_t
 
typedef detail::uint16 lowp_u16
 
typedef tvec1< u16, lowp > lowp_u16vec1
 
typedef tvec2< u16, lowp > lowp_u16vec2
 
typedef tvec3< u16, lowp > lowp_u16vec3
 
typedef tvec4< u16, lowp > lowp_u16vec4
 
typedef detail::uint32 lowp_u32
 
typedef tvec1< u32, lowp > lowp_u32vec1
 
typedef tvec2< u32, lowp > lowp_u32vec2
 
typedef tvec3< u32, lowp > lowp_u32vec3
 
typedef tvec4< u32, lowp > lowp_u32vec4
 
typedef detail::uint64 lowp_u64
 
typedef tvec1< u64, lowp > lowp_u64vec1
 
typedef tvec2< u64, lowp > lowp_u64vec2
 
typedef tvec3< u64, lowp > lowp_u64vec3
 
typedef tvec4< u64, lowp > lowp_u64vec4
 
typedef detail::uint8 lowp_u8
 
typedef tvec1< u8, lowp > lowp_u8vec1
 
typedef tvec2< u8, lowp > lowp_u8vec2
 
typedef tvec3< u8, lowp > lowp_u8vec3
 
typedef tvec4< u8, lowp > lowp_u8vec4
 
typedef detail::uint16 lowp_uint16
 
typedef detail::uint16 lowp_uint16_t
 
typedef detail::uint32 lowp_uint32
 
typedef detail::uint32 lowp_uint32_t
 
typedef detail::uint64 lowp_uint64
 
typedef detail::uint64 lowp_uint64_t
 
typedef detail::uint8 lowp_uint8
 
typedef detail::uint8 lowp_uint8_t
 
typedef tvec1< float, lowp > lowp_vec1
 
typedef float32 mediump_f32
 
typedef mediump_f32mat2x2 mediump_f32mat2
 
typedef tmat2x2< f32, mediump > mediump_f32mat2x2
 
typedef tmat2x3< f32, mediump > mediump_f32mat2x3
 
typedef tmat2x4< f32, mediump > mediump_f32mat2x4
 
typedef mediump_f32mat3x3 mediump_f32mat3
 
typedef tmat3x2< f32, mediump > mediump_f32mat3x2
 
typedef tmat3x3< f32, mediump > mediump_f32mat3x3
 
typedef tmat3x4< f32, mediump > mediump_f32mat3x4
 
typedef mediump_f32mat4x4 mediump_f32mat4
 
typedef tmat4x2< f32, mediump > mediump_f32mat4x2
 
typedef tmat4x3< f32, mediump > mediump_f32mat4x3
 
typedef tmat4x4< f32, mediump > mediump_f32mat4x4
 
typedef tquat< f32, mediump > mediump_f32quat
 
typedef tvec1< f32, mediump > mediump_f32vec1
 
typedef tvec2< f32, mediump > mediump_f32vec2
 
typedef tvec3< f32, mediump > mediump_f32vec3
 
typedef tvec4< f32, mediump > mediump_f32vec4
 
typedef float64 mediump_f64
 
typedef mediump_f64mat2x2 mediump_f64mat2
 
typedef tmat2x2< f64, mediump > mediump_f64mat2x2
 
typedef tmat2x3< f64, mediump > mediump_f64mat2x3
 
typedef tmat2x4< f64, mediump > mediump_f64mat2x4
 
typedef mediump_f64mat3x3 mediump_f64mat3
 
typedef tmat3x2< f64, mediump > mediump_f64mat3x2
 
typedef tmat3x3< f64, mediump > mediump_f64mat3x3
 
typedef tmat3x4< f64, mediump > mediump_f64mat3x4
 
typedef mediump_f64mat4x4 mediump_f64mat4
 
typedef tmat4x2< f64, mediump > mediump_f64mat4x2
 
typedef tmat4x3< f64, mediump > mediump_f64mat4x3
 
typedef tmat4x4< f64, mediump > mediump_f64mat4x4
 
typedef tquat< f64, mediump > mediump_f64quat
 
typedef tvec1< f64, mediump > mediump_f64vec1
 
typedef tvec2< f64, mediump > mediump_f64vec2
 
typedef tvec3< f64, mediump > mediump_f64vec3
 
typedef tvec4< f64, mediump > mediump_f64vec4
 
typedef detail::float32 mediump_float32
 
typedef detail::float32 mediump_float32_t
 
typedef detail::float64 mediump_float64
 
typedef detail::float64 mediump_float64_t
 
typedef mediump_fmat2x2 mediump_fmat2
 
typedef tmat2x2< f32, mediump > mediump_fmat2x2
 
typedef tmat2x3< f32, mediump > mediump_fmat2x3
 
typedef tmat2x4< f32, mediump > mediump_fmat2x4
 
typedef mediump_fmat3x3 mediump_fmat3
 
typedef tmat3x2< f32, mediump > mediump_fmat3x2
 
typedef tmat3x3< f32, mediump > mediump_fmat3x3
 
typedef tmat3x4< f32, mediump > mediump_fmat3x4
 
typedef mediump_fmat4x4 mediump_fmat4
 
typedef tmat4x2< f32, mediump > mediump_fmat4x2
 
typedef tmat4x3< f32, mediump > mediump_fmat4x3
 
typedef tmat4x4< f32, mediump > mediump_fmat4x4
 
typedef tvec1< float, mediump > mediump_fvec1
 
typedef tvec2< float, mediump > mediump_fvec2
 
typedef tvec3< float, mediump > mediump_fvec3
 
typedef tvec4< float, mediump > mediump_fvec4
 
typedef detail::int16 mediump_i16
 
typedef tvec1< i16, mediump > mediump_i16vec1
 
typedef tvec2< i16, mediump > mediump_i16vec2
 
typedef tvec3< i16, mediump > mediump_i16vec3
 
typedef tvec4< i16, mediump > mediump_i16vec4
 
typedef detail::int32 mediump_i32
 
typedef tvec1< i32, mediump > mediump_i32vec1
 
typedef tvec2< i32, mediump > mediump_i32vec2
 
typedef tvec3< i32, mediump > mediump_i32vec3
 
typedef tvec4< i32, mediump > mediump_i32vec4
 
typedef detail::int64 mediump_i64
 
typedef tvec1< i64, mediump > mediump_i64vec1
 
typedef tvec2< i64, mediump > mediump_i64vec2
 
typedef tvec3< i64, mediump > mediump_i64vec3
 
typedef tvec4< i64, mediump > mediump_i64vec4
 
typedef detail::int8 mediump_i8
 
typedef tvec1< i8, mediump > mediump_i8vec1
 
typedef tvec2< i8, mediump > mediump_i8vec2
 
typedef tvec3< i8, mediump > mediump_i8vec3
 
typedef tvec4< i8, mediump > mediump_i8vec4
 
typedef detail::int16 mediump_int16
 
typedef detail::int16 mediump_int16_t
 
typedef detail::int32 mediump_int32
 
typedef detail::int32 mediump_int32_t
 
typedef detail::int64 mediump_int64
 
typedef detail::int64 mediump_int64_t
 
typedef detail::int8 mediump_int8
 
typedef detail::int8 mediump_int8_t
 
typedef detail::uint16 mediump_u16
 
typedef tvec1< u16, mediump > mediump_u16vec1
 
typedef tvec2< u16, mediump > mediump_u16vec2
 
typedef tvec3< u16, mediump > mediump_u16vec3
 
typedef tvec4< u16, mediump > mediump_u16vec4
 
typedef detail::uint32 mediump_u32
 
typedef tvec1< u32, mediump > mediump_u32vec1
 
typedef tvec2< u32, mediump > mediump_u32vec2
 
typedef tvec3< u32, mediump > mediump_u32vec3
 
typedef tvec4< u32, mediump > mediump_u32vec4
 
typedef detail::uint64 mediump_u64
 
typedef tvec1< u64, mediump > mediump_u64vec1
 
typedef tvec2< u64, mediump > mediump_u64vec2
 
typedef tvec3< u64, mediump > mediump_u64vec3
 
typedef tvec4< u64, mediump > mediump_u64vec4
 
typedef detail::uint8 mediump_u8
 
typedef tvec1< u8, mediump > mediump_u8vec1
 
typedef tvec2< u8, mediump > mediump_u8vec2
 
typedef tvec3< u8, mediump > mediump_u8vec3
 
typedef tvec4< u8, mediump > mediump_u8vec4
 
typedef detail::uint16 mediump_uint16
 
typedef detail::uint16 mediump_uint16_t
 
typedef detail::uint32 mediump_uint32
 
typedef detail::uint32 mediump_uint32_t
 
typedef detail::uint64 mediump_uint64
 
typedef detail::uint64 mediump_uint64_t
 
typedef detail::uint8 mediump_uint8
 
typedef detail::uint8 mediump_uint8_t
 
typedef tvec1< float, mediump > mediump_vec1
 
typedef detail::uint16 u16
 
typedef highp_u16vec1 u16vec1
 
typedef highp_u16vec2 u16vec2
 
typedef highp_u16vec3 u16vec3
 
typedef highp_u16vec4 u16vec4
 
typedef detail::uint32 u32
 
typedef highp_u32vec1 u32vec1
 
typedef highp_u32vec2 u32vec2
 
typedef highp_u32vec3 u32vec3
 
typedef highp_u32vec4 u32vec4
 
typedef detail::uint64 u64
 
typedef highp_u64vec1 u64vec1
 
typedef highp_u64vec2 u64vec2
 
typedef highp_u64vec3 u64vec3
 
typedef highp_u64vec4 u64vec4
 
typedef detail::uint8 u8
 
typedef highp_u8vec1 u8vec1
 
typedef highp_u8vec2 u8vec2
 
typedef highp_u8vec3 u8vec3
 
typedef highp_u8vec4 u8vec4
 
typedef detail::uint16 uint16
 
typedef detail::uint16 uint16_t
 
typedef detail::uint32 uint32
 
typedef detail::uint32 uint32_t
 
typedef detail::uint64 uint64
 
typedef detail::uint64 uint64_t
 
typedef detail::uint8 uint8
 
typedef detail::uint8 uint8_t
 

Detailed Description

-

This extension provides a set of function to convert vertors to packed formats.

-

<glm/gtc/packing.hpp> need to be included to use these features.

-

Function Documentation

- +

Defines specific C++-based precision types.

+

Precision types defines types based on GLSL's precision qualifiers. This extension defines types based on explicitly-sized C++ data types.

+

<glm/gtc/type_precision.hpp> need to be included to use these functionalities.

+

Typedef Documentation

+
- - - - - +
GLM_FUNC_DECL uint32 glm::packF2x11_1x10 (vec3 const & v)typedef float32 f32
-

First, converts the first two components of the normalized floating-point value v into 11-bit signless floating-point values.

-

Then, converts the third component of the normalized floating-point value v into a 10-bit signless floating-point value. Then, the results are packed into the returned 32-bit unsigned integer.

-

The first vector component specifies the 11 least-significant bits of the result; the last component specifies the 10 most-significant bits.

-
See Also
GLM_GTC_packing
-
-vec3 unpackF2x11_1x10(uint32 const & p)
+

Default 32 bit single-precision floating-point scalar.

+

32 bit single-precision floating-point scalar.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1537 of file fwd.hpp.

- +
- - - - - +
GLM_FUNC_DECL uint16 glm::packHalf1x16 (float const & v)typedef tmat2x2< f32, defaultp > f32mat2
-

Returns an unsigned integer obtained by converting the components of a floating-point scalar to the 16-bit floating-point representation found in the OpenGL Specification, and then packing this 16-bit value into a 16-bit unsigned integer.

-
See Also
GLM_GTC_packing
+

Default single-precision floating-point 2x2 matrix.

+

Single-precision floating-point 1x1 matrix.

+
See also
GLM_GTC_type_precision
-uint32 packHalf2x16(vec2 const & v)
+GLM_GTC_type_precision Single-precision floating-point 2x2 matrix.
-uint64 packHalf4x16(vec4 const & v)
-
-GLSL packHalf2x16 man page
-
-GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+GLM_GTC_type_precision
+ +

Definition at line 2481 of file fwd.hpp.

- +
- - - - - +
GLM_FUNC_DECL uint64 glm::packHalf4x16 (vec4 const & v)typedef tmat2x2< f32, defaultp > f32mat2x2
-

Returns an unsigned integer obtained by converting the components of a four-component floating-point vector to the 16-bit floating-point representation found in the OpenGL Specification, and then packing these four 16-bit values into a 64-bit unsigned integer.

-

The first vector component specifies the 16 least-significant bits of the result; the forth component specifies the 16 most-significant bits.

-
See Also
GLM_GTC_packing
+

Default single-precision floating-point 2x2 matrix.

+

Single-precision floating-point 1x1 matrix.

+
See also
GLM_GTC_type_precision
-uint16 packHalf1x16(float const & v)
+GLM_GTC_type_precision Single-precision floating-point 2x2 matrix.
-uint32 packHalf2x16(vec2 const & v)
-
-GLSL packHalf2x16 man page
-
-GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+GLM_GTC_type_precision
+ +

Definition at line 2445 of file fwd.hpp.

- +
- - - - - +
GLM_FUNC_DECL uint32 glm::packI3x10_1x2 (ivec4 const & v)typedef tmat2x3< f32, defaultp > f32mat2x3
-

Returns an unsigned integer obtained by converting the components of a four-component signed integer vector to the 10-10-10-2-bit signed integer representation found in the OpenGL Specification, and then packing these four values into a 32-bit unsigned integer.

-

The first vector component specifies the 10 least-significant bits of the result; the forth component specifies the 2 most-significant bits.

-
See Also
GLM_GTC_packing
-
-uint32 packI3x10_1x2(uvec4 const & v)
-
-uint32 packSnorm3x10_1x2(vec4 const & v)
-
-uint32 packUnorm3x10_1x2(vec4 const & v)
-
-ivec4 unpackI3x10_1x2(uint32 const & p)
+

Default single-precision floating-point 2x3 matrix.

+

Single-precision floating-point 2x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2449 of file fwd.hpp.

- +
- - - - - +
GLM_FUNC_DECL uint16 glm::packSnorm1x16 (float const & v)typedef tmat2x4< f32, defaultp > f32mat2x4
-

First, converts the normalized floating-point value v into 16-bit integer value.

-

Then, the results are packed into the returned 16-bit unsigned integer.

-

The conversion to fixed point is done as follows: packSnorm1x8: round(clamp(s, -1, +1) * 32767.0)

-
See Also
GLM_GTC_packing
-
-uint32 packSnorm2x16(vec2 const & v)
-
-uint64 packSnorm4x16(vec4 const & v)
-
-GLSL packSnorm4x8 man page
-
-GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+

Default single-precision floating-point 2x4 matrix.

+

Single-precision floating-point 2x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2453 of file fwd.hpp.

- +
- - - - - +
GLM_FUNC_DECL uint8 glm::packSnorm1x8 (float const & s)typedef tmat3x3< f32, defaultp > f32mat3
-

First, converts the normalized floating-point value v into 8-bit integer value.

-

Then, the results are packed into the returned 8-bit unsigned integer.

-

The conversion to fixed point is done as follows: packSnorm1x8: round(clamp(s, -1, +1) * 127.0)

-
See Also
GLM_GTC_packing
-
-uint16 packSnorm2x8(vec2 const & v)
-
-uint32 packSnorm4x8(vec4 const & v)
-
-GLSL packSnorm4x8 man page
-
-GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+

Default single-precision floating-point 3x3 matrix.

+

Single-precision floating-point 3x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2485 of file fwd.hpp.

- +
- - - - - +
GLM_FUNC_DECL uint16 glm::packSnorm2x8 (vec2 const & v)typedef tmat3x2< f32, defaultp > f32mat3x2
-

First, converts each component of the normalized floating-point value v into 8-bit integer values.

-

Then, the results are packed into the returned 16-bit unsigned integer.

-

The conversion for component c of v to fixed point is done as follows: packSnorm2x8: round(clamp(c, -1, +1) * 127.0)

-

The first component of the vector will be written to the least significant bits of the output; the last component will be written to the most significant bits.

-
See Also
GLM_GTC_packing
-
-uint8 packSnorm1x8(float const & v)
-
-uint32 packSnorm4x8(vec4 const & v)
-
-GLSL packSnorm4x8 man page
-
-GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+

Default single-precision floating-point 3x2 matrix.

+

Single-precision floating-point 3x2 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2457 of file fwd.hpp.

- +
- - - - - +
GLM_FUNC_DECL uint32 glm::packSnorm3x10_1x2 (vec4 const & v)typedef tmat3x3< f32, defaultp > f32mat3x3
-

First, converts the first three components of the normalized floating-point value v into 10-bit signed integer values.

-

Then, converts the forth component of the normalized floating-point value v into 2-bit signed integer values. Then, the results are packed into the returned 32-bit unsigned integer.

-

The conversion for component c of v to fixed point is done as follows: packSnorm3x10_1x2(xyz): round(clamp(c, -1, +1) * 511.0) packSnorm3x10_1x2(w): round(clamp(c, -1, +1) * 1.0)

-

The first vector component specifies the 10 least-significant bits of the result; the forth component specifies the 2 most-significant bits.

-
See Also
GLM_GTC_packing
-
-vec4 unpackSnorm3x10_1x2(uint32 const & p)
-
-uint32 packUnorm3x10_1x2(vec4 const & v)
-
-uint32 packU3x10_1x2(uvec4 const & v)
-
-uint32 packI3x10_1x2(ivec4 const & v)
+

Default single-precision floating-point 3x3 matrix.

+

Single-precision floating-point 3x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2461 of file fwd.hpp.

- +
- - - - - +
GLM_FUNC_DECL uint64 glm::packSnorm4x16 (vec4 const & v)typedef tmat3x4< f32, defaultp > f32mat3x4
-

First, converts each component of the normalized floating-point value v into 16-bit integer values.

-

Then, the results are packed into the returned 64-bit unsigned integer.

-

The conversion for component c of v to fixed point is done as follows: packSnorm2x8: round(clamp(c, -1, +1) * 32767.0)

-

The first component of the vector will be written to the least significant bits of the output; the last component will be written to the most significant bits.

-
See Also
GLM_GTC_packing
-
-uint16 packSnorm1x16(float const & v)
-
-uint32 packSnorm2x16(vec2 const & v)
-
-GLSL packSnorm4x8 man page
-
-GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+

Default single-precision floating-point 3x4 matrix.

+

Single-precision floating-point 3x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2465 of file fwd.hpp.

- +
- - - - - +
GLM_FUNC_DECL uint32 glm::packU3x10_1x2 (uvec4 const & v)typedef tmat4x4< f32, defaultp > f32mat4
-

Returns an unsigned integer obtained by converting the components of a four-component unsigned integer vector to the 10-10-10-2-bit unsigned integer representation found in the OpenGL Specification, and then packing these four values into a 32-bit unsigned integer.

-

The first vector component specifies the 10 least-significant bits of the result; the forth component specifies the 2 most-significant bits.

-
See Also
GLM_GTC_packing
-
-uint32 packI3x10_1x2(ivec4 const & v)
-
-uint32 packSnorm3x10_1x2(vec4 const & v)
-
-uint32 packUnorm3x10_1x2(vec4 const & v)
-
-ivec4 unpackU3x10_1x2(uint32 const & p)
+

Default single-precision floating-point 4x4 matrix.

+

Single-precision floating-point 4x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2489 of file fwd.hpp.

- +
- - - - - +
GLM_FUNC_DECL uint16 glm::packUnorm1x16 (float const & v)typedef tmat4x2< f32, defaultp > f32mat4x2
-

First, converts the normalized floating-point value v into a 16-bit integer value.

-

Then, the results are packed into the returned 16-bit unsigned integer.

-

The conversion for component c of v to fixed point is done as follows: packUnorm1x16: round(clamp(c, 0, +1) * 65535.0)

-
See Also
GLM_GTC_packing
-
-uint16 packSnorm1x16(float const & v)
-
-uint64 packSnorm4x16(vec4 const & v)
-
-GLSL packUnorm4x8 man page
-
-GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+

Default single-precision floating-point 4x2 matrix.

+

Single-precision floating-point 4x2 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2469 of file fwd.hpp.

- +
- - - - - +
GLM_FUNC_DECL uint8 glm::packUnorm1x8 (float const & v)typedef tmat4x3< f32, defaultp > f32mat4x3
-

First, converts the normalized floating-point value v into a 8-bit integer value.

-

Then, the results are packed into the returned 8-bit unsigned integer.

-

The conversion for component c of v to fixed point is done as follows: packUnorm1x8: round(clamp(c, 0, +1) * 255.0)

-
See Also
GLM_GTC_packing
-
-uint16 packUnorm2x8(vec2 const & v)
-
-uint32 packUnorm4x8(vec4 const & v)
-
-GLSL packUnorm4x8 man page
-
-GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+

Default single-precision floating-point 4x3 matrix.

+

Single-precision floating-point 4x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2473 of file fwd.hpp.

- +
- - - - - +
GLM_FUNC_DECL uint16 glm::packUnorm2x8 (vec2 const & v)typedef tmat4x4< f32, defaultp > f32mat4x4
-

First, converts each component of the normalized floating-point value v into 8-bit integer values.

-

Then, the results are packed into the returned 16-bit unsigned integer.

-

The conversion for component c of v to fixed point is done as follows: packUnorm2x8: round(clamp(c, 0, +1) * 255.0)

-

The first component of the vector will be written to the least significant bits of the output; the last component will be written to the most significant bits.

-
See Also
GLM_GTC_packing
-
-uint8 packUnorm1x8(float const & v)
-
-uint32 packUnorm4x8(vec4 const & v)
-
-GLSL packUnorm4x8 man page
-
-GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+

Default single-precision floating-point 4x4 matrix.

+

Single-precision floating-point 4x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2477 of file fwd.hpp.

- +
- - - - - +
GLM_FUNC_DECL uint32 glm::packUnorm3x10_1x2 (vec4 const & v)typedef tquat< f32, defaultp > f32quat
-

First, converts the first three components of the normalized floating-point value v into 10-bit unsigned integer values.

-

Then, converts the forth component of the normalized floating-point value v into 2-bit signed uninteger values. Then, the results are packed into the returned 32-bit unsigned integer.

-

The conversion for component c of v to fixed point is done as follows: packUnorm3x10_1x2(xyz): round(clamp(c, 0, +1) * 1023.0) packUnorm3x10_1x2(w): round(clamp(c, 0, +1) * 3.0)

-

The first vector component specifies the 10 least-significant bits of the result; the forth component specifies the 2 most-significant bits.

-
See Also
GLM_GTC_packing
-
-vec4 unpackUnorm3x10_1x2(uint32 const & p)
-
-uint32 packUnorm3x10_1x2(vec4 const & v)
-
-uint32 packU3x10_1x2(uvec4 const & v)
-
-uint32 packI3x10_1x2(ivec4 const & v)
+

Default single-precision floating-point quaternion.

+

Single-precision floating-point quaternion.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2493 of file fwd.hpp.

- +
- - - - - +
GLM_FUNC_DECL uint64 glm::packUnorm4x16 (vec4 const & v)typedef tvec1< f32, defaultp > f32vec1
-

First, converts each component of the normalized floating-point value v into 16-bit integer values.

-

Then, the results are packed into the returned 64-bit unsigned integer.

-

The conversion for component c of v to fixed point is done as follows: packUnorm4x16: round(clamp(c, 0, +1) * 65535.0)

-

The first component of the vector will be written to the least significant bits of the output; the last component will be written to the most significant bits.

-
See Also
GLM_GTC_packing
-
-uint16 packUnorm1x16(float const & v)
-
-uint32 packUnorm2x16(vec2 const & v)
-
-GLSL packUnorm4x8 man page
-
-GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+

Default single-precision floating-point vector of 1 components.

+

Single-precision floating-point vector of 1 component.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2429 of file fwd.hpp.

- +
- - - - - +
GLM_FUNC_DECL vec3 glm::unpackF2x11_1x10 (uint32 const & p)typedef tvec2< f32, defaultp > f32vec2
-

First, unpacks a single 32-bit unsigned integer p into two 11-bit signless floating-point values and one 10-bit signless floating-point value .

-

Then, each component is converted to a normalized floating-point value to generate the returned three-component vector.

-

The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.

-
See Also
GLM_GTC_packing
-
-uint32 packF2x11_1x10(vec3 const & v)
+

Default single-precision floating-point vector of 2 components.

+

Single-precision floating-point vector of 2 components.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2433 of file fwd.hpp.

- +
- - - - - +
GLM_FUNC_DECL float glm::unpackHalf1x16 (uint16 const & v)typedef tvec3< f32, defaultp > f32vec3
-

Returns a floating-point scalar with components obtained by unpacking a 16-bit unsigned integer into a 16-bit value, interpreted as a 16-bit floating-point number according to the OpenGL Specification, and converting it to 32-bit floating-point values.

-
See Also
GLM_GTC_packing
-
-vec2 unpackHalf2x16(uint32 const & v)
-
-vec4 unpackHalf4x16(uint64 const & v)
-
-GLSL unpackHalf2x16 man page
-
-GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+

Default single-precision floating-point vector of 3 components.

+

Single-precision floating-point vector of 3 components.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2437 of file fwd.hpp.

- +
- - - - - +
GLM_FUNC_DECL vec4 glm::unpackHalf4x16 (uint64 const & p)typedef tvec4< f32, defaultp > f32vec4
-

Returns a four-component floating-point vector with components obtained by unpacking a 64-bit unsigned integer into four 16-bit values, interpreting those values as 16-bit floating-point numbers according to the OpenGL Specification, and converting them to 32-bit floating-point values.

-

The first component of the vector is obtained from the 16 least-significant bits of v; the forth component is obtained from the 16 most-significant bits of v.

-
See Also
GLM_GTC_packing
-
-float unpackHalf1x16(uint16 const & v)
-
-vec2 unpackHalf2x16(uint32 const & v)
-
-GLSL unpackHalf2x16 man page
-
-GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+

Default single-precision floating-point vector of 4 components.

+

Single-precision floating-point vector of 4 components.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2441 of file fwd.hpp.

- +
- - - - - +
GLM_FUNC_DECL ivec4 glm::unpackI3x10_1x2 (uint32 const & p)typedef float64 f64
-

Unpacks a single 32-bit unsigned integer p into three 10-bit and one 2-bit signed integers.

-

The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.

-
See Also
GLM_GTC_packing
-
-uint32 packU3x10_1x2(uvec4 const & v)
-
-vec4 unpackSnorm3x10_1x2(uint32 const & p);
-
-uvec4 unpackI3x10_1x2(uint32 const & p);
+

Default 64 bit double-precision floating-point scalar.

+

64 bit double-precision floating-point scalar.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1541 of file fwd.hpp.

- +
- - - - - +
GLM_FUNC_DECL float glm::unpackSnorm1x16 (uint16 const & p)typedef tmat2x2< f64, defaultp > f64mat2
-

First, unpacks a single 16-bit unsigned integer p into a single 16-bit signed integers.

-

Then, each component is converted to a normalized floating-point value to generate the returned scalar.

-

The conversion for unpacked fixed-point value f to floating point is done as follows: unpackSnorm1x16: clamp(f / 32767.0, -1, +1)

-
See Also
GLM_GTC_packing
+

Default double-precision floating-point 2x2 matrix.

+

Double-precision floating-point 1x1 matrix.

+
See also
GLM_GTC_type_precision
-vec2 unpackSnorm2x16(uint32 p)
+GLM_GTC_type_precision Double-precision floating-point 2x2 matrix.
-vec4 unpackSnorm4x16(uint64 p)
-
-GLSL unpackSnorm4x8 man page
-
-GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+GLM_GTC_type_precision
+ +

Definition at line 2587 of file fwd.hpp.

- +
- - - - - +
GLM_FUNC_DECL float glm::unpackSnorm1x8 (uint8 const & p)typedef tmat2x2< f64, defaultp > f64mat2x2
-

First, unpacks a single 8-bit unsigned integer p into a single 8-bit signed integers.

-

Then, the value is converted to a normalized floating-point value to generate the returned scalar.

-

The conversion for unpacked fixed-point value f to floating point is done as follows: unpackSnorm1x8: clamp(f / 127.0, -1, +1)

-
See Also
GLM_GTC_packing
+

Default double-precision floating-point 2x2 matrix.

+

Double-precision floating-point 1x1 matrix.

+
See also
GLM_GTC_type_precision
-vec2 unpackSnorm2x8(uint16 p)
+GLM_GTC_type_precision Double-precision floating-point 2x2 matrix.
-vec4 unpackSnorm4x8(uint32 p)
-
-GLSL unpackSnorm4x8 man page
-
-GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+GLM_GTC_type_precision
+ +

Definition at line 2551 of file fwd.hpp.

- +
- - - - - +
GLM_FUNC_DECL vec2 glm::unpackSnorm2x8 (uint16 const & p)typedef tmat2x3< f64, defaultp > f64mat2x3
-

First, unpacks a single 16-bit unsigned integer p into a pair of 8-bit signed integers.

-

Then, each component is converted to a normalized floating-point value to generate the returned two-component vector.

-

The conversion for unpacked fixed-point value f to floating point is done as follows: unpackSnorm2x8: clamp(f / 127.0, -1, +1)

-

The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.

-
See Also
GLM_GTC_packing
-
-float unpackSnorm1x8(uint8 p)
-
-vec4 unpackSnorm4x8(uint32 p)
-
-GLSL unpackSnorm4x8 man page
-
-GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+

Default double-precision floating-point 2x3 matrix.

+

Double-precision floating-point 2x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2555 of file fwd.hpp.

- +
- - - - - +
GLM_FUNC_DECL vec4 glm::unpackSnorm3x10_1x2 (uint32 const & p)typedef tmat2x4< f64, defaultp > f64mat2x4
-

First, unpacks a single 32-bit unsigned integer p into four 16-bit signed integers.

-

Then, each component is converted to a normalized floating-point value to generate the returned four-component vector.

-

The conversion for unpacked fixed-point value f to floating point is done as follows: unpackSnorm3x10_1x2(xyz): clamp(f / 511.0, -1, +1) unpackSnorm3x10_1x2(w): clamp(f / 511.0, -1, +1)

-

The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.

-
See Also
GLM_GTC_packing
-
-uint32 packSnorm3x10_1x2(vec4 const & v)
-
-vec4 unpackUnorm3x10_1x2(uint32 const & p))
-
-uvec4 unpackI3x10_1x2(uint32 const & p)
-
-uvec4 unpackU3x10_1x2(uint32 const & p)
+

Default double-precision floating-point 2x4 matrix.

+

Double-precision floating-point 2x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2559 of file fwd.hpp.

- +
- - - - - +
GLM_FUNC_DECL vec4 glm::unpackSnorm4x16 (uint64 const & p)typedef tmat3x3< f64, defaultp > f64mat3
-

First, unpacks a single 64-bit unsigned integer p into four 16-bit signed integers.

-

Then, each component is converted to a normalized floating-point value to generate the returned four-component vector.

-

The conversion for unpacked fixed-point value f to floating point is done as follows: unpackSnorm4x16: clamp(f / 32767.0, -1, +1)

-

The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.

-
See Also
GLM_GTC_packing
-
-float unpackSnorm1x16(uint16 p)
-
-vec2 unpackSnorm2x16(uint32 p)
-
-GLSL unpackSnorm4x8 man page
-
-GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+

Default double-precision floating-point 3x3 matrix.

+

Double-precision floating-point 3x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2591 of file fwd.hpp.

- +
- - - - - +
GLM_FUNC_DECL uvec4 glm::unpackU3x10_1x2 (uint32 const & p)typedef tmat3x2< f64, defaultp > f64mat3x2
-

Unpacks a single 32-bit unsigned integer p into three 10-bit and one 2-bit unsigned integers.

-

The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.

-
See Also
GLM_GTC_packing
-
-uint32 packU3x10_1x2(uvec4 const & v)
-
-vec4 unpackSnorm3x10_1x2(uint32 const & p);
-
-uvec4 unpackI3x10_1x2(uint32 const & p);
+

Default double-precision floating-point 3x2 matrix.

+

Double-precision floating-point 3x2 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2563 of file fwd.hpp.

- +
- - - - - +
GLM_FUNC_DECL float glm::unpackUnorm1x16 (uint16 const & p)typedef tmat3x3< f64, defaultp > f64mat3x3
-

First, unpacks a single 16-bit unsigned integer p into a of 16-bit unsigned integers.

-

Then, the value is converted to a normalized floating-point value to generate the returned scalar.

-

The conversion for unpacked fixed-point value f to floating point is done as follows: unpackUnorm1x16: f / 65535.0

-
See Also
GLM_GTC_packing
-
-vec2 unpackUnorm2x16(uint32 p)
-
-vec4 unpackUnorm4x16(uint64 p)
-
-GLSL unpackUnorm2x16 man page
-
-GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+

Default double-precision floating-point 3x3 matrix.

+

Double-precision floating-point 3x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2567 of file fwd.hpp.

- +
- - - - - +
GLM_FUNC_DECL float glm::unpackUnorm1x8 (uint8 const & p)typedef tmat3x4< f64, defaultp > f64mat3x4
-

Convert a single 8-bit integer to a normalized floating-point value.

-

The conversion for unpacked fixed-point value f to floating point is done as follows: unpackUnorm4x8: f / 255.0

-
See Also
GLM_GTC_packing
-
-vec2 unpackUnorm2x8(uint16 p)
-
-vec4 unpackUnorm4x8(uint32 p)
-
-GLSL unpackUnorm4x8 man page
-
-GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+

Default double-precision floating-point 3x4 matrix.

+

Double-precision floating-point 3x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2571 of file fwd.hpp.

- +
- - - - - +
GLM_FUNC_DECL vec2 glm::unpackUnorm2x8 (uint16 const & p)typedef tmat4x4< f64, defaultp > f64mat4
-

First, unpacks a single 16-bit unsigned integer p into a pair of 8-bit unsigned integers.

-

Then, each component is converted to a normalized floating-point value to generate the returned two-component vector.

-

The conversion for unpacked fixed-point value f to floating point is done as follows: unpackUnorm4x8: f / 255.0

-

The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.

-
See Also
GLM_GTC_packing
-
-float unpackUnorm1x8(uint8 v)
-
-vec4 unpackUnorm4x8(uint32 p)
-
-GLSL unpackUnorm4x8 man page
-
-GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+

Default double-precision floating-point 4x4 matrix.

+

Double-precision floating-point 4x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2595 of file fwd.hpp.

- +
- - - - - +
GLM_FUNC_DECL vec4 glm::unpackUnorm3x10_1x2 (uint32 const & p)typedef tmat4x2< f64, defaultp > f64mat4x2
-

First, unpacks a single 32-bit unsigned integer p into four 16-bit signed integers.

-

Then, each component is converted to a normalized floating-point value to generate the returned four-component vector.

-

The conversion for unpacked fixed-point value f to floating point is done as follows: unpackSnorm3x10_1x2(xyz): clamp(f / 1023.0, 0, +1) unpackSnorm3x10_1x2(w): clamp(f / 3.0, 0, +1)

-

The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.

-
See Also
GLM_GTC_packing
-
-uint32 packSnorm3x10_1x2(vec4 const & v)
-
-vec4 unpackInorm3x10_1x2(uint32 const & p))
-
-uvec4 unpackI3x10_1x2(uint32 const & p)
-
-uvec4 unpackU3x10_1x2(uint32 const & p)
+

Default double-precision floating-point 4x2 matrix.

+

Double-precision floating-point 4x2 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2575 of file fwd.hpp.

- +
- - - - - +
GLM_FUNC_DECL vec4 glm::unpackUnorm4x16 (uint64 const & p)typedef tmat4x3< f64, defaultp > f64mat4x3
-

First, unpacks a single 64-bit unsigned integer p into four 16-bit unsigned integers.

-

Then, each component is converted to a normalized floating-point value to generate the returned four-component vector.

-

The conversion for unpacked fixed-point value f to floating point is done as follows: unpackUnormx4x16: f / 65535.0

-

The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.

-
See Also
GLM_GTC_packing
+

Default double-precision floating-point 4x3 matrix.

+

Double-precision floating-point 4x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2579 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat4x4< f64, defaultp > f64mat4x4
+
+ +

Default double-precision floating-point 4x4 matrix.

+

Double-precision floating-point 4x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2583 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tquat< f64, defaultp > f64quat
+
+ +

Default double-precision floating-point quaternion.

+

Double-precision floating-point quaternion.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2599 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec1< f64, defaultp > f64vec1
+
+ +

Default double-precision floating-point vector of 1 components.

+

Double-precision floating-point vector of 1 component.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2535 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec2< f64, defaultp > f64vec2
+
+ +

Default double-precision floating-point vector of 2 components.

+

Double-precision floating-point vector of 2 components.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2539 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec3< f64, defaultp > f64vec3
+
+ +

Default double-precision floating-point vector of 3 components.

+

Double-precision floating-point vector of 3 components.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2543 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec4< f64, defaultp > f64vec4
+
+ +

Default double-precision floating-point vector of 4 components.

+

Double-precision floating-point vector of 4 components.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2547 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::float32 float32
+
+ +

Default 32 bit single-precision floating-point scalar.

+

32 bit single-precision floating-point scalar.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 84 of file type_float.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::float32 float32_t
+
+ +

Default 32 bit single-precision floating-point scalar.

+

32 bit single-precision floating-point scalar.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1529 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::float64 float64
+
+ +

Default 64 bit double-precision floating-point scalar.

+

64 bit double-precision floating-point scalar.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 85 of file type_float.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::float64 float64_t
+
+ +

Default 64 bit double-precision floating-point scalar.

+

64 bit double-precision floating-point scalar.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1533 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat2x2< f32, defaultp > fmat2
+
+ +

Default single-precision floating-point 2x2 matrix.

+

Single-precision floating-point 1x1 matrix.

+
See also
GLM_GTC_type_precision
-float unpackUnorm1x16(uint16 p)
+GLM_GTC_type_precision Single-precision floating-point 2x2 matrix.
-vec2 unpackUnorm2x16(uint32 p)
+GLM_GTC_type_precision
+ +

Definition at line 2411 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat2x2< f32, defaultp > fmat2x2
+
+ +

Default single-precision floating-point 2x2 matrix.

+

Single-precision floating-point 1x1 matrix.

+
See also
GLM_GTC_type_precision
-GLSL unpackUnorm2x16 man page
+GLM_GTC_type_precision Single-precision floating-point 2x2 matrix.
-GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+GLM_GTC_type_precision + +

Definition at line 2375 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat2x3< f32, defaultp > fmat2x3
+
+ +

Default single-precision floating-point 2x3 matrix.

+

Single-precision floating-point 2x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2379 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat2x4< f32, defaultp > fmat2x4
+
+ +

Default single-precision floating-point 2x4 matrix.

+

Single-precision floating-point 2x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2383 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat3x3< f32, defaultp > fmat3
+
+ +

Default single-precision floating-point 3x3 matrix.

+

Single-precision floating-point 3x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2415 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat3x2< f32, defaultp > fmat3x2
+
+ +

Default single-precision floating-point 3x2 matrix.

+

Single-precision floating-point 3x2 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2387 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat3x3< f32, defaultp > fmat3x3
+
+ +

Default single-precision floating-point 3x3 matrix.

+

Single-precision floating-point 3x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2391 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat3x4< f32, defaultp > fmat3x4
+
+ +

Default single-precision floating-point 3x4 matrix.

+

Single-precision floating-point 3x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2395 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat4x4< f32, defaultp > fmat4
+
+ +

Default single-precision floating-point 4x4 matrix.

+

Single-precision floating-point 4x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2419 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat4x2< f32, defaultp > fmat4x2
+
+ +

Default single-precision floating-point 4x2 matrix.

+

Single-precision floating-point 4x2 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2399 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat4x3< f32, defaultp > fmat4x3
+
+ +

Default single-precision floating-point 4x3 matrix.

+

Single-precision floating-point 4x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2403 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat4x4< f32, defaultp > fmat4x4
+
+ +

Default single-precision floating-point 4x4 matrix.

+

Single-precision floating-point 4x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2407 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef highp_fquat fquat
+
+ +

Quaternion of default single-precision floating-point numbers.

+

Default single-precision floating-point quaternion.

+
See also
GLM_GTC_quaternion
+
+GLM_GTC_type_precision
+ +

Definition at line 90 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec1< float, defaultp > fvec1
+
+ +

Default single-precision floating-point vector of 1 components.

+

Single-precision floating-point vector of 1 component.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2359 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec2< float, defaultp > fvec2
+
+ +

Default single-precision floating-point vector of 2 components.

+

Single-precision floating-point vector of 2 components.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2363 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec3< float, defaultp > fvec3
+
+ +

Default single-precision floating-point vector of 3 components.

+

Single-precision floating-point vector of 3 components.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2367 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec4< float, defaultp > fvec4
+
+ +

Default single-precision floating-point vector of 4 components.

+

Single-precision floating-point vector of 4 components.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2371 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef float32 highp_f32
+
+ +

High 32 bit single-precision floating-point scalar.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1459 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef highp_f32mat2x2 highp_f32mat2
+
+ +

High single-precision floating-point 1x1 matrix.

+
See also
GLM_GTC_type_precision High single-precision floating-point 2x2 matrix.
+
+GLM_GTC_type_precision
+ +

Definition at line 2076 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat2x2<f32, highp> highp_f32mat2x2
+
+ +

High single-precision floating-point 1x1 matrix.

+
See also
GLM_GTC_type_precision High single-precision floating-point 2x2 matrix.
+
+GLM_GTC_type_precision
+ +

Definition at line 2036 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat2x3<f32, highp> highp_f32mat2x3
+
+ +

High single-precision floating-point 2x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2040 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat2x4<f32, highp> highp_f32mat2x4
+
+ +

High single-precision floating-point 2x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2044 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef highp_f32mat3x3 highp_f32mat3
+
+ +

High single-precision floating-point 3x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2080 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat3x2<f32, highp> highp_f32mat3x2
+
+ +

High single-precision floating-point 3x2 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2048 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat3x3<f32, highp> highp_f32mat3x3
+
+ +

High single-precision floating-point 3x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2052 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat3x4<f32, highp> highp_f32mat3x4
+
+ +

High single-precision floating-point 3x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2056 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef highp_f32mat4x4 highp_f32mat4
+
+ +

High single-precision floating-point 4x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2084 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat4x2<f32, highp> highp_f32mat4x2
+
+ +

High single-precision floating-point 4x2 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2060 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat4x3<f32, highp> highp_f32mat4x3
+
+ +

High single-precision floating-point 4x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2064 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat4x4<f32, highp> highp_f32mat4x4
+
+ +

High single-precision floating-point 4x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2068 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tquat<f32, highp> highp_f32quat
+
+ +

High single-precision floating-point quaternion.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2277 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec1<f32, highp> highp_f32vec1
+
+ +

High single-precision floating-point vector of 1 component.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1678 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec2<f32, highp> highp_f32vec2
+
+ +

High single-precision floating-point vector of 2 components.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1682 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec3<f32, highp> highp_f32vec3
+
+ +

High single-precision floating-point vector of 3 components.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1686 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec4<f32, highp> highp_f32vec4
+
+ +

High single-precision floating-point vector of 4 components.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1690 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef float64 highp_f64
+
+ +

High 64 bit double-precision floating-point scalar.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1463 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef highp_f64mat2x2 highp_f64mat2
+
+ +

High double-precision floating-point 1x1 matrix.

+
See also
GLM_GTC_type_precision High double-precision floating-point 2x2 matrix.
+
+GLM_GTC_type_precision
+ +

Definition at line 2246 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat2x2<f64, highp> highp_f64mat2x2
+
+ +

High double-precision floating-point 1x1 matrix.

+
See also
GLM_GTC_type_precision High double-precision floating-point 2x2 matrix.
+
+GLM_GTC_type_precision
+ +

Definition at line 2206 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat2x3<f64, highp> highp_f64mat2x3
+
+ +

High double-precision floating-point 2x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2210 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat2x4<f64, highp> highp_f64mat2x4
+
+ +

High double-precision floating-point 2x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2214 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef highp_f64mat3x3 highp_f64mat3
+
+ +

High double-precision floating-point 3x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2250 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat3x2<f64, highp> highp_f64mat3x2
+
+ +

High double-precision floating-point 3x2 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2218 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat3x3<f64, highp> highp_f64mat3x3
+
+ +

High double-precision floating-point 3x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2222 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat3x4<f64, highp> highp_f64mat3x4
+
+ +

High double-precision floating-point 3x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2226 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef highp_f64mat4x4 highp_f64mat4
+
+ +

High double-precision floating-point 4x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2254 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat4x2<f64, highp> highp_f64mat4x2
+
+ +

High double-precision floating-point 4x2 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2230 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat4x3<f64, highp> highp_f64mat4x3
+
+ +

High double-precision floating-point 4x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2234 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat4x4<f64, highp> highp_f64mat4x4
+
+ +

High double-precision floating-point 4x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2238 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tquat<f64, highp> highp_f64quat
+
+ +

High double-precision floating-point quaternion.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2281 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec1<f64, highp> highp_f64vec1
+
+ +

High double-precision floating-point vector of 1 component.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1727 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec2<f64, highp> highp_f64vec2
+
+ +

High double-precision floating-point vector of 2 components.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1731 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec3<f64, highp> highp_f64vec3
+
+ +

High double-precision floating-point vector of 3 components.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1735 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec4<f64, highp> highp_f64vec4
+
+ +

High double-precision floating-point vector of 4 components.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1739 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::float32 highp_float32
+
+ +

High 32 bit single-precision floating-point scalar.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1443 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::float32 highp_float32_t
+
+ +

High 32 bit single-precision floating-point scalar.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1451 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::float64 highp_float64
+
+ +

High 64 bit double-precision floating-point scalar.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1447 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::float64 highp_float64_t
+
+ +

High 64 bit double-precision floating-point scalar.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1455 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef highp_fmat2x2 highp_fmat2
+
+ +

High single-precision floating-point 1x1 matrix.

+
See also
GLM_GTC_type_precision High single-precision floating-point 2x2 matrix.
+
+GLM_GTC_type_precision
+ +

Definition at line 1905 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat2x2<f32, highp> highp_fmat2x2
+
+ +

High single-precision floating-point 1x1 matrix.

+
See also
GLM_GTC_type_precision High single-precision floating-point 2x2 matrix.
+
+GLM_GTC_type_precision
+ +

Definition at line 1865 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat2x3<f32, highp> highp_fmat2x3
+
+ +

High single-precision floating-point 2x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1869 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat2x4<f32, highp> highp_fmat2x4
+
+ +

High single-precision floating-point 2x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1873 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef highp_fmat3x3 highp_fmat3
+
+ +

High single-precision floating-point 3x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1909 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat3x2<f32, highp> highp_fmat3x2
+
+ +

High single-precision floating-point 3x2 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1877 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat3x3<f32, highp> highp_fmat3x3
+
+ +

High single-precision floating-point 3x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1881 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat3x4<f32, highp> highp_fmat3x4
+
+ +

High single-precision floating-point 3x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1885 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef highp_fmat4x4 highp_fmat4
+
+ +

High single-precision floating-point 4x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1913 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat4x2<f32, highp> highp_fmat4x2
+
+ +

High single-precision floating-point 4x2 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1889 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat4x3<f32, highp> highp_fmat4x3
+
+ +

High single-precision floating-point 4x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1893 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat4x4<f32, highp> highp_fmat4x4
+
+ +

High single-precision floating-point 4x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1897 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec1<float, highp> highp_fvec1
+
+ +

High single-precision floating-point vector of 1 component.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1629 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec2<float, highp> highp_fvec2
+
+ +

High Single-precision floating-point vector of 2 components.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1633 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec3<float, highp> highp_fvec3
+
+ +

High Single-precision floating-point vector of 3 components.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1637 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec4<float, highp> highp_fvec4
+
+ +

High Single-precision floating-point vector of 4 components.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1641 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int16 highp_i16
+
+ +

High precision 16 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 264 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec1<i16, highp> highp_i16vec1
+
+ +

High precision 16 bit signed integer scalar type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 448 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec2<i16, highp> highp_i16vec2
+
+ +

High precision 16 bit signed integer vector of 2 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 452 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec3<i16, highp> highp_i16vec3
+
+ +

High precision 16 bit signed integer vector of 3 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 456 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec4<i16, highp> highp_i16vec4
+
+ +

High precision 16 bit signed integer vector of 4 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 460 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int32 highp_i32
+
+ +

High precision 32 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 268 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec1< i32, highp > highp_i32vec1
+
+ +

High precision 32 bit signed integer scalar type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 528 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec2< i32, highp > highp_i32vec2
+
+ +

High precision 32 bit signed integer vector of 2 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 532 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec3< i32, highp > highp_i32vec3
+
+ +

High precision 32 bit signed integer vector of 3 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 536 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec4< i32, highp > highp_i32vec4
+
+ +

High precision 32 bit signed integer vector of 4 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 540 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int64 highp_i64
+
+ +

High precision 64 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 272 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec1<i64, highp> highp_i64vec1
+
+ +

High precision 64 bit signed integer scalar type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 687 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec2<i64, highp> highp_i64vec2
+
+ +

High precision 64 bit signed integer vector of 2 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 691 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec3<i64, highp> highp_i64vec3
+
+ +

High precision 64 bit signed integer vector of 3 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 695 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec4<i64, highp> highp_i64vec4
+
+ +

High precision 64 bit signed integer vector of 4 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 699 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int8 highp_i8
+
+ +

High precision 8 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 260 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec1<i8, highp> highp_i8vec1
+
+ +

High precision 8 bit signed integer scalar type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 369 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec2<i8, highp> highp_i8vec2
+
+ +

High precision 8 bit signed integer vector of 2 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 373 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec3<i8, highp> highp_i8vec3
+
+ +

High precision 8 bit signed integer vector of 3 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 377 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec4<i8, highp> highp_i8vec4
+
+ +

High precision 8 bit signed integer vector of 4 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 381 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int16 highp_int16
+
+ +

High precision 16 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 232 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int16 highp_int16_t
+
+ +

High precision 16 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 248 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int32 highp_int32
+
+ +

High precision 32 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 236 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int32 highp_int32_t
+
+ +

32 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 252 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int64 highp_int64
+
+ +

High precision 64 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 240 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int64 highp_int64_t
+
+ +

High precision 64 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 256 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int8 highp_int8
+
+ +

High precision 8 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 228 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int8 highp_int8_t
+
+ +

High precision 8 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 244 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint16 highp_u16
+
+ +

Medium precision 16 bit unsigned integer type.

+

High precision 16 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 873 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec1<u16, highp> highp_u16vec1
+
+ +

High precision 16 bit unsigned integer scalar type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1057 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec2<u16, highp> highp_u16vec2
+
+ +

High precision 16 bit unsigned integer vector of 2 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1061 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec3<u16, highp> highp_u16vec3
+
+ +

High precision 16 bit unsigned integer vector of 3 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1065 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec4<u16, highp> highp_u16vec4
+
+ +

High precision 16 bit unsigned integer vector of 4 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1069 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint32 highp_u32
+
+ +

Medium precision 32 bit unsigned integer type.

+

High precision 32 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 877 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec1< u32, highp > highp_u32vec1
+
+ +

High precision 32 bit unsigned integer scalar type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1137 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec2< u32, highp > highp_u32vec2
+
+ +

High precision 32 bit unsigned integer vector of 2 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1141 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec3< u32, highp > highp_u32vec3
+
+ +

High precision 32 bit unsigned integer vector of 3 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1145 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec4< u32, highp > highp_u32vec4
+
+ +

High precision 32 bit unsigned integer vector of 4 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1149 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint64 highp_u64
+
+ +

Medium precision 64 bit unsigned integer type.

+

High precision 64 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 881 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec1<u64, highp> highp_u64vec1
+
+ +

High precision 64 bit unsigned integer scalar type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1296 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec2<u64, highp> highp_u64vec2
+
+ +

High precision 64 bit unsigned integer vector of 2 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1300 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec3<u64, highp> highp_u64vec3
+
+ +

High precision 64 bit unsigned integer vector of 3 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1304 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec4<u64, highp> highp_u64vec4
+
+ +

High precision 64 bit unsigned integer vector of 4 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1308 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint8 highp_u8
+
+ +

Medium precision 8 bit unsigned integer type.

+

High precision 8 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 869 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec1<u8, highp> highp_u8vec1
+
+ +

High precision 8 bit unsigned integer scalar type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 978 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec2<u8, highp> highp_u8vec2
+
+ +

High precision 8 bit unsigned integer vector of 2 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 982 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec3<u8, highp> highp_u8vec3
+
+ +

High precision 8 bit unsigned integer vector of 3 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 986 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec4<u8, highp> highp_u8vec4
+
+ +

High precision 8 bit unsigned integer vector of 4 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 990 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint16 highp_uint16
+
+ +

Medium precision 16 bit unsigned integer type.

+

High precision 16 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 841 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint16 highp_uint16_t
+
+ +

Medium precision 16 bit unsigned integer type.

+

High precision 16 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 857 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint32 highp_uint32
+
+ +

Medium precision 32 bit unsigned integer type.

+

High precision 32 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 845 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint32 highp_uint32_t
+
+ +

Medium precision 32 bit unsigned integer type.

+

High precision 32 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 861 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint64 highp_uint64
+
+ +

Medium precision 64 bit unsigned integer type.

+

High precision 64 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 849 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint64 highp_uint64_t
+
+ +

Medium precision 64 bit unsigned integer type.

+

High precision 64 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 865 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint8 highp_uint8
+
+ +

Medium precision 8 bit unsigned integer type.

+

High precision 8 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 837 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint8 highp_uint8_t
+
+ +

Medium precision 8 bit unsigned integer type.

+

High precision 8 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 853 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef highp_vec1_t highp_vec1
+
+ +

High single-precision floating-point vector of 1 component.

+

1 component vector of high precision floating-point numbers.

+
See also
GLM_GTC_type_precision
+

There is no guarantee on the actual precision.

See also
GLM_GTC_vec1 extension.
+ +

Definition at line 1613 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int16 i16
+
+ +

16 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 321 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec1< i16, defaultp > i16vec1
+
+ +

Default precision 16 bit signed integer scalar type.

+

16 bit signed integer scalar type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 476 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec2< i16, defaultp > i16vec2
+
+ +

Default precision 16 bit signed integer vector of 2 components type.

+

16 bit signed integer vector of 2 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 480 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec3< i16, defaultp > i16vec3
+
+ +

Default precision 16 bit signed integer vector of 3 components type.

+

16 bit signed integer vector of 3 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 484 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec4< i16, defaultp > i16vec4
+
+ +

Default precision 16 bit signed integer vector of 4 components type.

+

16 bit signed integer vector of 4 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 488 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int32 i32
+
+ +

32 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 325 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec1< i32, defaultp > i32vec1
+
+ +

Default precision 32 bit signed integer scalar type.

+

32 bit signed integer scalar type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 555 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec2< i32, defaultp > i32vec2
+
+ +

Default precision 32 bit signed integer vector of 2 components type.

+

32 bit signed integer vector of 2 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 559 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec3< i32, defaultp > i32vec3
+
+ +

Default precision 32 bit signed integer vector of 3 components type.

+

32 bit signed integer vector of 3 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 563 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec4< i32, defaultp > i32vec4
+
+ +

Default precision 32 bit signed integer vector of 4 components type.

+

32 bit signed integer vector of 4 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 567 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int64 i64
+
+ +

64 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 329 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec1< i64, defaultp > i64vec1
+
+ +

Default precision 64 bit signed integer scalar type.

+

64 bit signed integer scalar type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 714 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec2< i64, defaultp > i64vec2
+
+ +

Default precision 64 bit signed integer vector of 2 components type.

+

64 bit signed integer vector of 2 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 718 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec3< i64, defaultp > i64vec3
+
+ +

Default precision 64 bit signed integer vector of 3 components type.

+

64 bit signed integer vector of 3 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 722 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec4< i64, defaultp > i64vec4
+
+ +

Default precision 64 bit signed integer vector of 4 components type.

+

64 bit signed integer vector of 4 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 726 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int8 i8
+
+ +

8 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 317 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec1< i8, defaultp > i8vec1
+
+ +

Default precision 8 bit signed integer scalar type.

+

8 bit signed integer scalar type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 396 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec2< i8, defaultp > i8vec2
+
+ +

Default precision 8 bit signed integer vector of 2 components type.

+

8 bit signed integer vector of 2 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 400 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec3< i8, defaultp > i8vec3
+
+ +

Default precision 8 bit signed integer vector of 3 components type.

+

8 bit signed integer vector of 3 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 404 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec4< i8, defaultp > i8vec4
+
+ +

Default precision 8 bit signed integer vector of 4 components type.

+

8 bit signed integer vector of 4 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 408 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int16 int16
+
+ +

16 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 225 of file type_int.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int16 int16_t
+
+ +

16 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 304 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int32 int32
+
+ +

32 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 226 of file type_int.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int32 int32_t
+
+ +

32 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 308 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int64 int64
+
+ +

64 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 227 of file type_int.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int64 int64_t
+
+ +

64 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 312 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int8 int8
+
+ +

8 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 224 of file type_int.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int8 int8_t
+
+ +

8 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 300 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef float32 lowp_f32
+
+ +

Low 32 bit single-precision floating-point scalar.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1360 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef lowp_f32mat2x2 lowp_f32mat2
+
+ +

Low single-precision floating-point 1x1 matrix.

+
See also
GLM_GTC_type_precision Low single-precision floating-point 2x2 matrix.
+
+GLM_GTC_type_precision
+ +

Definition at line 1962 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat2x2<f32, lowp> lowp_f32mat2x2
+
+ +

Low single-precision floating-point 1x1 matrix.

+
See also
GLM_GTC_type_precision Low single-precision floating-point 2x2 matrix.
+
+GLM_GTC_type_precision
+ +

Definition at line 1922 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat2x3<f32, lowp> lowp_f32mat2x3
+
+ +

Low single-precision floating-point 2x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1926 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat2x4<f32, lowp> lowp_f32mat2x4
+
+ +

Low single-precision floating-point 2x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1930 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef lowp_f32mat3x3 lowp_f32mat3
+
+ +

Low single-precision floating-point 3x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1966 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat3x2<f32, lowp> lowp_f32mat3x2
+
+ +

Low single-precision floating-point 3x2 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1934 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat3x3<f32, lowp> lowp_f32mat3x3
+
+ +

Low single-precision floating-point 3x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1938 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat3x4<f32, lowp> lowp_f32mat3x4
+
+ +

Low single-precision floating-point 3x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1942 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef lowp_f32mat4x4 lowp_f32mat4
+
+ +

Low single-precision floating-point 4x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1970 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat4x2<f32, lowp> lowp_f32mat4x2
+
+ +

Low single-precision floating-point 4x2 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1946 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat4x3<f32, lowp> lowp_f32mat4x3
+
+ +

Low single-precision floating-point 4x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1950 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat4x4<f32, lowp> lowp_f32mat4x4
+
+ +

Low single-precision floating-point 4x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1954 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tquat<f32, lowp> lowp_f32quat
+
+ +

Low single-precision floating-point quaternion.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2261 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec1<f32, lowp> lowp_f32vec1
+
+ +

Low single-precision floating-point vector of 1 component.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1646 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec2<f32, lowp> lowp_f32vec2
+
+ +

Low single-precision floating-point vector of 2 components.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1650 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec3<f32, lowp> lowp_f32vec3
+
+ +

Low single-precision floating-point vector of 3 components.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1654 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec4<f32, lowp> lowp_f32vec4
+
+ +

Low single-precision floating-point vector of 4 components.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1658 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef float64 lowp_f64
+
+ +

Low 64 bit double-precision floating-point scalar.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1364 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef lowp_f64mat2x2 lowp_f64mat2
+
+ +

Low double-precision floating-point 1x1 matrix.

+
See also
GLM_GTC_type_precision Low double-precision floating-point 2x2 matrix.
+
+GLM_GTC_type_precision
+ +

Definition at line 2133 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat2x2<f64, lowp> lowp_f64mat2x2
+
+ +

Low double-precision floating-point 1x1 matrix.

+
See also
GLM_GTC_type_precision Low double-precision floating-point 2x2 matrix.
+
+GLM_GTC_type_precision
+ +

Definition at line 2093 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat2x3<f64, lowp> lowp_f64mat2x3
+
+ +

Low double-precision floating-point 2x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2097 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat2x4<f64, lowp> lowp_f64mat2x4
+
+ +

Low double-precision floating-point 2x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2101 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef lowp_f64mat3x3 lowp_f64mat3
+
+ +

Low double-precision floating-point 3x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2137 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat3x2<f64, lowp> lowp_f64mat3x2
+
+ +

Low double-precision floating-point 3x2 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2105 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat3x3<f64, lowp> lowp_f64mat3x3
+
+ +

Low double-precision floating-point 3x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2109 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat3x4<f64, lowp> lowp_f64mat3x4
+
+ +

Low double-precision floating-point 3x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2113 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef lowp_f64mat4x4 lowp_f64mat4
+
+ +

Low double-precision floating-point 4x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2141 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat4x2<f64, lowp> lowp_f64mat4x2
+
+ +

Low double-precision floating-point 4x2 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2117 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat4x3<f64, lowp> lowp_f64mat4x3
+
+ +

Low double-precision floating-point 4x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2121 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat4x4<f64, lowp> lowp_f64mat4x4
+
+ +

Low double-precision floating-point 4x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2125 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tquat<f64, lowp> lowp_f64quat
+
+ +

Low double-precision floating-point quaternion.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2265 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec1<f64, lowp> lowp_f64vec1
+
+ +

Low double-precision floating-point vector of 1 component.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1695 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec2<f64, lowp> lowp_f64vec2
+
+ +

Low double-precision floating-point vector of 2 components.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1699 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec3<f64, lowp> lowp_f64vec3
+
+ +

Low double-precision floating-point vector of 3 components.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1703 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec4<f64, lowp> lowp_f64vec4
+
+ +

Low double-precision floating-point vector of 4 components.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1707 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::float32 lowp_float32
+
+ +

Low 32 bit single-precision floating-point scalar.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1344 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::float32 lowp_float32_t
+
+ +

Low 32 bit single-precision floating-point scalar.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1352 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::float64 lowp_float64
+
+ +

Low 64 bit double-precision floating-point scalar.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1348 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::float64 lowp_float64_t
+
+ +

Low 64 bit double-precision floating-point scalar.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1356 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef lowp_fmat2x2 lowp_fmat2
+
+ +

Low single-precision floating-point 1x1 matrix.

+
See also
GLM_GTC_type_precision Low single-precision floating-point 2x2 matrix.
+
+GLM_GTC_type_precision
+ +

Definition at line 1791 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat2x2<f32, lowp> lowp_fmat2x2
+
+ +

Low single-precision floating-point 1x1 matrix.

+
See also
GLM_GTC_type_precision Low single-precision floating-point 2x2 matrix.
+
+GLM_GTC_type_precision
+ +

Definition at line 1751 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat2x3<f32, lowp> lowp_fmat2x3
+
+ +

Low single-precision floating-point 2x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1755 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat2x4<f32, lowp> lowp_fmat2x4
+
+ +

Low single-precision floating-point 2x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1759 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef lowp_fmat3x3 lowp_fmat3
+
+ +

Low single-precision floating-point 3x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1795 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat3x2<f32, lowp> lowp_fmat3x2
+
+ +

Low single-precision floating-point 3x2 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1763 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat3x3<f32, lowp> lowp_fmat3x3
+
+ +

Low single-precision floating-point 3x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1767 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat3x4<f32, lowp> lowp_fmat3x4
+
+ +

Low single-precision floating-point 3x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1771 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef lowp_fmat4x4 lowp_fmat4
+
+ +

Low single-precision floating-point 4x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1799 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat4x2<f32, lowp> lowp_fmat4x2
+
+ +

Low single-precision floating-point 4x2 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1775 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat4x3<f32, lowp> lowp_fmat4x3
+
+ +

Low single-precision floating-point 4x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1779 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat4x4<f32, lowp> lowp_fmat4x4
+
+ +

Low single-precision floating-point 4x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1783 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec1<float, lowp> lowp_fvec1
+
+ +

Low single-precision floating-point vector of 1 component.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1563 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec2<float, lowp> lowp_fvec2
+
+ +

Low single-precision floating-point vector of 2 components.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1567 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec3<float, lowp> lowp_fvec3
+
+ +

Low single-precision floating-point vector of 3 components.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1571 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec4<float, lowp> lowp_fvec4
+
+ +

Low single-precision floating-point vector of 4 components.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1575 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int16 lowp_i16
+
+ +

Low precision 16 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 168 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec1<i16, lowp> lowp_i16vec1
+
+ +

Low precision 16 bit signed integer scalar type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 414 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec2<i16, lowp> lowp_i16vec2
+
+ +

Low precision 16 bit signed integer vector of 2 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 418 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec3<i16, lowp> lowp_i16vec3
+
+ +

Low precision 16 bit signed integer vector of 3 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 422 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec4<i16, lowp> lowp_i16vec4
+
+ +

Low precision 16 bit signed integer vector of 4 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 426 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int32 lowp_i32
+
+ +

Low precision 32 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 172 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec1< i32, lowp > lowp_i32vec1
+
+ +

Low precision 32 bit signed integer scalar type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 494 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec2< i32, lowp > lowp_i32vec2
+
+ +

Low precision 32 bit signed integer vector of 2 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 498 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec3< i32, lowp > lowp_i32vec3
+
+ +

Low precision 32 bit signed integer vector of 3 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 502 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec4< i32, lowp > lowp_i32vec4
+
+ +

Low precision 32 bit signed integer vector of 4 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 506 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int64 lowp_i64
+
+ +

Low precision 64 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 176 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec1<i64, lowp> lowp_i64vec1
+
+ +

Low precision 64 bit signed integer scalar type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 653 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec2<i64, lowp> lowp_i64vec2
+
+ +

Low precision 64 bit signed integer vector of 2 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 657 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec3<i64, lowp> lowp_i64vec3
+
+ +

Low precision 64 bit signed integer vector of 3 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 661 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec4<i64, lowp> lowp_i64vec4
+
+ +

Low precision 64 bit signed integer vector of 4 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 665 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int8 lowp_i8
+
+ +

Low precision 8 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 164 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec1<i8, lowp> lowp_i8vec1
+
+ +

Low precision 8 bit signed integer scalar type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 335 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec2<i8, lowp> lowp_i8vec2
+
+ +

Low precision 8 bit signed integer vector of 2 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 339 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec3<i8, lowp> lowp_i8vec3
+
+ +

Low precision 8 bit signed integer vector of 3 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 343 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec4<i8, lowp> lowp_i8vec4
+
+ +

Low precision 8 bit signed integer vector of 4 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 347 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int16 lowp_int16
+
+ +

Low precision 16 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 136 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int16 lowp_int16_t
+
+ +

Low precision 16 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 152 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int32 lowp_int32
+
+ +

Low precision 32 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 140 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int32 lowp_int32_t
+
+ +

Low precision 32 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 156 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int64 lowp_int64
+
+ +

Low precision 64 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 144 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int64 lowp_int64_t
+
+ +

Low precision 64 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 160 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int8 lowp_int8
+
+ +

Low precision 8 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 132 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int8 lowp_int8_t
+
+ +

Low precision 8 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 148 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint16 lowp_u16
+
+ +

Low precision 16 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 773 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec1<u16, lowp> lowp_u16vec1
+
+ +

Low precision 16 bit unsigned integer scalar type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1023 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec2<u16, lowp> lowp_u16vec2
+
+ +

Low precision 16 bit unsigned integer vector of 2 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1027 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec3<u16, lowp> lowp_u16vec3
+
+ +

Low precision 16 bit unsigned integer vector of 3 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1031 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec4<u16, lowp> lowp_u16vec4
+
+ +

Low precision 16 bit unsigned integer vector of 4 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1035 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint32 lowp_u32
+
+ +

Low precision 32 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 777 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec1< u32, lowp > lowp_u32vec1
+
+ +

Low precision 32 bit unsigned integer scalar type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1103 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec2< u32, lowp > lowp_u32vec2
+
+ +

Low precision 32 bit unsigned integer vector of 2 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1107 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec3< u32, lowp > lowp_u32vec3
+
+ +

Low precision 32 bit unsigned integer vector of 3 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1111 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec4< u32, lowp > lowp_u32vec4
+
+ +

Low precision 32 bit unsigned integer vector of 4 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1115 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint64 lowp_u64
+
+ +

Low precision 64 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 781 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec1<u64, lowp> lowp_u64vec1
+
+ +

Low precision 64 bit unsigned integer scalar type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1262 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec2<u64, lowp> lowp_u64vec2
+
+ +

Low precision 64 bit unsigned integer vector of 2 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1266 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec3<u64, lowp> lowp_u64vec3
+
+ +

Low precision 64 bit unsigned integer vector of 3 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1270 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec4<u64, lowp> lowp_u64vec4
+
+ +

Low precision 64 bit unsigned integer vector of 4 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1274 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint8 lowp_u8
+
+ +

Low precision 8 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 769 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec1<u8, lowp> lowp_u8vec1
+
+ +

Low precision 8 bit unsigned integer scalar type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 944 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec2<u8, lowp> lowp_u8vec2
+
+ +

Low precision 8 bit unsigned integer vector of 2 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 948 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec3<u8, lowp> lowp_u8vec3
+
+ +

Low precision 8 bit unsigned integer vector of 3 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 952 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec4<u8, lowp> lowp_u8vec4
+
+ +

Low precision 8 bit unsigned integer vector of 4 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 956 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint16 lowp_uint16
+
+ +

Low precision 16 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 739 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint16 lowp_uint16_t
+
+ +

Low precision 16 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 756 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint32 lowp_uint32
+
+ +

Low precision 32 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 743 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint32 lowp_uint32_t
+
+ +

Low precision 32 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 760 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint64 lowp_uint64
+
+ +

Low precision 64 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 747 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint64 lowp_uint64_t
+
+ +

Low precision 64 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 764 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint8 lowp_uint8
+
+ +

Low precision 8 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 735 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint8 lowp_uint8_t
+
+ +

Low precision 8 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 752 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef lowp_vec1_t lowp_vec1
+
+ +

Low single-precision floating-point vector of 1 component.

+

1 component vector of low precision floating-point numbers.

+
See also
GLM_GTC_type_precision
+

There is no guarantee on the actual precision.

See also
GLM_GTC_vec1 extension.
+ +

Definition at line 1547 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef float32 mediump_f32
+
+ +

Medium 32 bit single-precision floating-point scalar.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1434 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mediump_f32mat2x2 mediump_f32mat2
+
+ +

Medium single-precision floating-point 1x1 matrix.

+
See also
GLM_GTC_type_precision Medium single-precision floating-point 2x2 matrix.
+
+GLM_GTC_type_precision
+ +

Definition at line 2019 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat2x2<f32, mediump> mediump_f32mat2x2
+
+ +

High single-precision floating-point 1x1 matrix.

+
See also
GLM_GTC_type_precision Low single-precision floating-point 2x2 matrix.
+
+GLM_GTC_type_precision
+ +

Definition at line 1979 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat2x3<f32, mediump> mediump_f32mat2x3
+
+ +

Medium single-precision floating-point 2x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1983 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat2x4<f32, mediump> mediump_f32mat2x4
+
+ +

Medium single-precision floating-point 2x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1987 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mediump_f32mat3x3 mediump_f32mat3
+
+ +

Medium single-precision floating-point 3x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2023 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat3x2<f32, mediump> mediump_f32mat3x2
+
+ +

Medium single-precision floating-point 3x2 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1991 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat3x3<f32, mediump> mediump_f32mat3x3
+
+ +

Medium single-precision floating-point 3x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1995 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat3x4<f32, mediump> mediump_f32mat3x4
+
+ +

Medium single-precision floating-point 3x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1999 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mediump_f32mat4x4 mediump_f32mat4
+
+ +

Medium single-precision floating-point 4x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2027 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat4x2<f32, mediump> mediump_f32mat4x2
+
+ +

Medium single-precision floating-point 4x2 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2003 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat4x3<f32, mediump> mediump_f32mat4x3
+
+ +

Medium single-precision floating-point 4x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2007 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat4x4<f32, mediump> mediump_f32mat4x4
+
+ +

Medium single-precision floating-point 4x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2011 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tquat<f32, mediump> mediump_f32quat
+
+ +

Medium single-precision floating-point quaternion.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2269 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec1<f32, mediump> mediump_f32vec1
+
+ +

Medium single-precision floating-point vector of 1 component.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1662 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec2<f32, mediump> mediump_f32vec2
+
+ +

Medium single-precision floating-point vector of 2 components.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1666 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec3<f32, mediump> mediump_f32vec3
+
+ +

Medium single-precision floating-point vector of 3 components.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1670 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec4<f32, mediump> mediump_f32vec4
+
+ +

Medium single-precision floating-point vector of 4 components.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1674 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef float64 mediump_f64
+
+ +

Medium 64 bit double-precision floating-point scalar.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1438 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mediump_f64mat2x2 mediump_f64mat2
+
+ +

Medium double-precision floating-point 1x1 matrix.

+
See also
GLM_GTC_type_precision Medium double-precision floating-point 2x2 matrix.
+
+GLM_GTC_type_precision
+ +

Definition at line 2190 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat2x2<f64, mediump> mediump_f64mat2x2
+
+ +

Medium double-precision floating-point 1x1 matrix.

+
See also
GLM_GTC_type_precision Medium double-precision floating-point 2x2 matrix.
+
+GLM_GTC_type_precision
+ +

Definition at line 2150 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat2x3<f64, mediump> mediump_f64mat2x3
+
+ +

Medium double-precision floating-point 2x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2154 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat2x4<f64, mediump> mediump_f64mat2x4
+
+ +

Medium double-precision floating-point 2x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2158 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mediump_f64mat3x3 mediump_f64mat3
+
+ +

Medium double-precision floating-point 3x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2194 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat3x2<f64, mediump> mediump_f64mat3x2
+
+ +

Medium double-precision floating-point 3x2 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2162 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat3x3<f64, mediump> mediump_f64mat3x3
+
+ +

Medium double-precision floating-point 3x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2166 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat3x4<f64, mediump> mediump_f64mat3x4
+
+ +

Medium double-precision floating-point 3x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2170 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mediump_f64mat4x4 mediump_f64mat4
+
+ +

Medium double-precision floating-point 4x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2198 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat4x2<f64, mediump> mediump_f64mat4x2
+
+ +

Medium double-precision floating-point 4x2 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2174 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat4x3<f64, mediump> mediump_f64mat4x3
+
+ +

Medium double-precision floating-point 4x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2178 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat4x4<f64, mediump> mediump_f64mat4x4
+
+ +

Medium double-precision floating-point 4x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2182 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tquat<f64, mediump> mediump_f64quat
+
+ +

Medium double-precision floating-point quaternion.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 2273 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec1<f64, mediump> mediump_f64vec1
+
+ +

Medium double-precision floating-point vector of 1 component.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1711 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec2<f64, mediump> mediump_f64vec2
+
+ +

Medium double-precision floating-point vector of 2 components.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1715 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec3<f64, mediump> mediump_f64vec3
+
+ +

Medium double-precision floating-point vector of 3 components.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1719 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec4<f64, mediump> mediump_f64vec4
+
+ +

Medium double-precision floating-point vector of 4 components.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1723 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::float32 mediump_float32
+
+ +

Medium 32 bit single-precision floating-point scalar.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1418 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::float32 mediump_float32_t
+
+ +

Medium 32 bit single-precision floating-point scalar.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1426 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::float64 mediump_float64
+
+ +

Medium 64 bit double-precision floating-point scalar.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1422 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::float64 mediump_float64_t
+
+ +

Medium 64 bit double-precision floating-point scalar.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1430 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mediump_fmat2x2 mediump_fmat2
+
+ +

Medium single-precision floating-point 1x1 matrix.

+
See also
GLM_GTC_type_precision Medium single-precision floating-point 2x2 matrix.
+
+GLM_GTC_type_precision
+ +

Definition at line 1848 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat2x2<f32, mediump> mediump_fmat2x2
+
+ +

Medium single-precision floating-point 1x1 matrix.

+
See also
GLM_GTC_type_precision Medium single-precision floating-point 2x2 matrix.
+
+GLM_GTC_type_precision
+ +

Definition at line 1808 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat2x3<f32, mediump> mediump_fmat2x3
+
+ +

Medium single-precision floating-point 2x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1812 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat2x4<f32, mediump> mediump_fmat2x4
+
+ +

Medium single-precision floating-point 2x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1816 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mediump_fmat3x3 mediump_fmat3
+
+ +

Medium single-precision floating-point 3x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1852 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat3x2<f32, mediump> mediump_fmat3x2
+
+ +

Medium single-precision floating-point 3x2 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1820 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat3x3<f32, mediump> mediump_fmat3x3
+
+ +

Medium single-precision floating-point 3x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1824 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat3x4<f32, mediump> mediump_fmat3x4
+
+ +

Medium single-precision floating-point 3x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1828 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mediump_fmat4x4 mediump_fmat4
+
+ +

Medium single-precision floating-point 4x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1856 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat4x2<f32, mediump> mediump_fmat4x2
+
+ +

Medium single-precision floating-point 4x2 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1832 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat4x3<f32, mediump> mediump_fmat4x3
+
+ +

Medium single-precision floating-point 4x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1836 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tmat4x4<f32, mediump> mediump_fmat4x4
+
+ +

Medium single-precision floating-point 4x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1840 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec1<float, mediump> mediump_fvec1
+
+ +

Medium single-precision floating-point vector of 1 component.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1596 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec2<float, mediump> mediump_fvec2
+
+ +

Medium Single-precision floating-point vector of 2 components.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1600 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec3<float, mediump> mediump_fvec3
+
+ +

Medium Single-precision floating-point vector of 3 components.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1604 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec4<float, mediump> mediump_fvec4
+
+ +

Medium Single-precision floating-point vector of 4 components.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1608 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int16 mediump_i16
+
+ +

Medium precision 16 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 216 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec1<i16, mediump> mediump_i16vec1
+
+ +

Medium precision 16 bit signed integer scalar type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 431 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec2<i16, mediump> mediump_i16vec2
+
+ +

Medium precision 16 bit signed integer vector of 2 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 435 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec3<i16, mediump> mediump_i16vec3
+
+ +

Medium precision 16 bit signed integer vector of 3 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 439 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec4<i16, mediump> mediump_i16vec4
+
+ +

Medium precision 16 bit signed integer vector of 4 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 443 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int32 mediump_i32
+
+ +

Medium precision 32 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 220 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec1< i32, mediump > mediump_i32vec1
+
+ +

Medium precision 32 bit signed integer scalar type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 511 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec2< i32, mediump > mediump_i32vec2
+
+ +

Medium precision 32 bit signed integer vector of 2 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 515 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec3< i32, mediump > mediump_i32vec3
+
+ +

Medium precision 32 bit signed integer vector of 3 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 519 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec4< i32, mediump > mediump_i32vec4
+
+ +

Medium precision 32 bit signed integer vector of 4 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 523 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int64 mediump_i64
+
+ +

Medium precision 64 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 224 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec1<i64, mediump> mediump_i64vec1
+
+ +

Medium precision 64 bit signed integer scalar type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 670 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec2<i64, mediump> mediump_i64vec2
+
+ +

Medium precision 64 bit signed integer vector of 2 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 674 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec3<i64, mediump> mediump_i64vec3
+
+ +

Medium precision 64 bit signed integer vector of 3 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 678 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec4<i64, mediump> mediump_i64vec4
+
+ +

Medium precision 64 bit signed integer vector of 4 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 682 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int8 mediump_i8
+
+ +

Medium precision 8 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 212 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec1<i8, mediump> mediump_i8vec1
+
+ +

Medium precision 8 bit signed integer scalar type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 352 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec2<i8, mediump> mediump_i8vec2
+
+ +

Medium precision 8 bit signed integer vector of 2 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 356 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec3<i8, mediump> mediump_i8vec3
+
+ +

Medium precision 8 bit signed integer vector of 3 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 360 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec4<i8, mediump> mediump_i8vec4
+
+ +

Medium precision 8 bit signed integer vector of 4 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 364 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int16 mediump_int16
+
+ +

Medium precision 16 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 184 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int16 mediump_int16_t
+
+ +

Medium precision 16 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 200 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int32 mediump_int32
+
+ +

Medium precision 32 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 188 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int32 mediump_int32_t
+
+ +

Medium precision 32 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 204 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int64 mediump_int64
+
+ +

Medium precision 64 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 192 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int64 mediump_int64_t
+
+ +

Medium precision 64 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 208 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int8 mediump_int8
+
+ +

Medium precision 8 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 180 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int8 mediump_int8_t
+
+ +

Medium precision 8 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 196 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint16 mediump_u16
+
+ +

Medium precision 16 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 823 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec1<u16, mediump> mediump_u16vec1
+
+ +

Medium precision 16 bit unsigned integer scalar type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1040 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec2<u16, mediump> mediump_u16vec2
+
+ +

Medium precision 16 bit unsigned integer vector of 2 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1044 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec3<u16, mediump> mediump_u16vec3
+
+ +

Medium precision 16 bit unsigned integer vector of 3 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1048 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec4<u16, mediump> mediump_u16vec4
+
+ +

Medium precision 16 bit unsigned integer vector of 4 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1052 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint32 mediump_u32
+
+ +

Medium precision 32 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 827 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec1< u32, mediump > mediump_u32vec1
+
+ +

Medium precision 32 bit unsigned integer scalar type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1120 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec2< u32, mediump > mediump_u32vec2
+
+ +

Medium precision 32 bit unsigned integer vector of 2 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1124 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec3< u32, mediump > mediump_u32vec3
+
+ +

Medium precision 32 bit unsigned integer vector of 3 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1128 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec4< u32, mediump > mediump_u32vec4
+
+ +

Medium precision 32 bit unsigned integer vector of 4 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1132 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint64 mediump_u64
+
+ +

Medium precision 64 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 831 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec1<u64, mediump> mediump_u64vec1
+
+ +

Medium precision 64 bit unsigned integer scalar type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1279 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec2<u64, mediump> mediump_u64vec2
+
+ +

Medium precision 64 bit unsigned integer vector of 2 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1283 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec3<u64, mediump> mediump_u64vec3
+
+ +

Medium precision 64 bit unsigned integer vector of 3 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1287 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec4<u64, mediump> mediump_u64vec4
+
+ +

Medium precision 64 bit unsigned integer vector of 4 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1291 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint8 mediump_u8
+
+ +

Medium precision 8 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 819 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec1<u8, mediump> mediump_u8vec1
+
+ +

Medium precision 8 bit unsigned integer scalar type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 961 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec2<u8, mediump> mediump_u8vec2
+
+ +

Medium precision 8 bit unsigned integer vector of 2 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 965 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec3<u8, mediump> mediump_u8vec3
+
+ +

Medium precision 8 bit unsigned integer vector of 3 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 969 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec4<u8, mediump> mediump_u8vec4
+
+ +

Medium precision 8 bit unsigned integer vector of 4 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 973 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint16 mediump_uint16
+
+ +

Medium precision 16 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 791 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint16 mediump_uint16_t
+
+ +

Medium precision 16 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 807 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint32 mediump_uint32
+
+ +

Medium precision 32 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 795 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint32 mediump_uint32_t
+
+ +

Medium precision 32 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 811 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint64 mediump_uint64
+
+ +

Medium precision 64 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 799 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint64 mediump_uint64_t
+
+ +

Medium precision 64 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 815 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint8 mediump_uint8
+
+ +

Medium precision 8 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 787 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint8 mediump_uint8_t
+
+ +

Medium precision 8 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 803 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mediump_vec1_t mediump_vec1
+
+ +

Medium single-precision floating-point vector of 1 component.

+

1 component vector of medium precision floating-point numbers.

+
See also
GLM_GTC_type_precision
+

There is no guarantee on the actual precision.

See also
GLM_GTC_vec1 extension.
+ +

Definition at line 1580 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint16 u16
+
+ +

16 bit unsigned integer type.

+

Default precision 16 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 930 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec1< u16, defaultp > u16vec1
+
+ +

Default precision 16 bit unsigned integer scalar type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1085 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec2< u16, defaultp > u16vec2
+
+ +

Default precision 16 bit unsigned integer vector of 2 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1089 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec3< u16, defaultp > u16vec3
+
+ +

Default precision 16 bit unsigned integer vector of 3 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1093 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec4< u16, defaultp > u16vec4
+
+ +

Default precision 16 bit unsigned integer vector of 4 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1097 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint32 u32
+
+ +

32 bit unsigned integer type.

+

Default precision 32 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 934 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec1< u32, defaultp > u32vec1
+
+ +

Default precision 32 bit unsigned integer scalar type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1164 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec2< u32, defaultp > u32vec2
+
+ +

Default precision 32 bit unsigned integer vector of 2 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1168 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec3< u32, defaultp > u32vec3
+
+ +

Default precision 32 bit unsigned integer vector of 3 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1172 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec4< u32, defaultp > u32vec4
+
+ +

Default precision 32 bit unsigned integer vector of 4 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1176 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint64 u64
+
+ +

64 bit unsigned integer type.

+

Default precision 64 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 938 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec1< u64, defaultp > u64vec1
+
+ +

Default precision 64 bit unsigned integer scalar type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1323 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec2< u64, defaultp > u64vec2
+
+ +

Default precision 64 bit unsigned integer vector of 2 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1327 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec3< u64, defaultp > u64vec3
+
+ +

Default precision 64 bit unsigned integer vector of 3 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1331 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec4< u64, defaultp > u64vec4
+
+ +

Default precision 64 bit unsigned integer vector of 4 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1335 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint8 u8
+
+ +

8 bit unsigned integer type.

+

Default precision 8 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 926 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec1< u8, defaultp > u8vec1
+
+ +

Default precision 8 bit unsigned integer scalar type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1005 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec2< u8, defaultp > u8vec2
+
+ +

Default precision 8 bit unsigned integer vector of 2 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1009 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec3< u8, defaultp > u8vec3
+
+ +

Default precision 8 bit unsigned integer vector of 3 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1013 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec4< u8, defaultp > u8vec4
+
+ +

Default precision 8 bit unsigned integer vector of 4 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 1017 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint16 uint16
+
+ +

16 bit unsigned integer type.

+

Default precision 16 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 230 of file type_int.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint16 uint16_t
+
+ +

16 bit unsigned integer type.

+

Default precision 16 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 913 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint32 uint32
+
+ +

32 bit unsigned integer type.

+

Default precision 32 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 231 of file type_int.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint32 uint32_t
+
+ +

32 bit unsigned integer type.

+

Default precision 32 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 917 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint64 uint64
+
+ +

64 bit unsigned integer type.

+

Default precision 64 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 232 of file type_int.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint64 uint64_t
+
+ +

64 bit unsigned integer type.

+

Default precision 64 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 921 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint8 uint8
+
+ +

8 bit unsigned integer type.

+

Default precision 8 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 229 of file type_int.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint8 uint8_t
+
+ +

8 bit unsigned integer type.

+

Default precision 8 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 909 of file fwd.hpp.

@@ -972,7 +8809,7 @@ float unpackUnorm1x16(uint16 p) diff --git a/doc/api/a00179.html b/doc/api/a00179.html index fc0f1180..3f543e87 100644 --- a/doc/api/a00179.html +++ b/doc/api/a00179.html @@ -3,8 +3,8 @@ - -GLM: GLM_GTC_quaternion + +0.9.6: GLM_GTC_type_ptr @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -41,848 +39,411 @@
Functions
-
GLM_GTC_quaternion
+
GLM_GTC_type_ptr
GTC Extensions (Stable)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Functions

template<typename T , precision P>
GLM_FUNC_DECL T angle (detail::tquat< T, P > const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tquat< T, P > angleAxis (T const &angle, detail::tvec3< T, P > const &axis)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tvec3< T, P > axis (detail::tquat< T, P > const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tquat< T, P > conjugate (detail::tquat< T, P > const &q)
 
template<typename T , precision P, template< typename, precision > class quatType>
GLM_FUNC_DECL T dot (quatType< T, P > const &x, quatType< T, P > const &y)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tvec4
-< bool, P > 
equal (detail::tquat< T, P > const &x, detail::tquat< T, P > const &y)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tvec3< T, P > eulerAngles (detail::tquat< T, P > const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tvec4
-< bool, P > 
greaterThan (detail::tquat< T, P > const &x, detail::tquat< T, P > const &y)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tvec4
-< bool, P > 
greaterThanEqual (detail::tquat< T, P > const &x, detail::tquat< T, P > const &y)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tquat< T, P > inverse (detail::tquat< T, P > const &q)
 
template<typename T , precision P>
GLM_FUNC_DECL T length (detail::tquat< T, P > const &q)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tquat< T, P > lerp (detail::tquat< T, P > const &x, detail::tquat< T, P > const &y, T const &a)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tvec4
-< bool, P > 
lessThan (detail::tquat< T, P > const &x, detail::tquat< T, P > const &y)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tvec4
-< bool, P > 
lessThanEqual (detail::tquat< T, P > const &x, detail::tquat< T, P > const &y)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tmat3x3
-< T, P > 
mat3_cast (detail::tquat< T, P > const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tmat4x4
-< T, P > 
mat4_cast (detail::tquat< T, P > const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tquat< T, P > mix (detail::tquat< T, P > const &x, detail::tquat< T, P > const &y, T const &a)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tquat< T, P > normalize (detail::tquat< T, P > const &q)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tvec4
-< bool, P > 
notEqual (detail::tquat< T, P > const &x, detail::tquat< T, P > const &y)
 
template<typename T , precision P>
GLM_FUNC_DECL T pitch (detail::tquat< T, P > const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tquat< T, P > quat_cast (detail::tmat3x3< T, P > const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tquat< T, P > quat_cast (detail::tmat4x4< T, P > const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL T roll (detail::tquat< T, P > const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tquat< T, P > rotate (detail::tquat< T, P > const &q, T const &angle, detail::tvec3< T, P > const &axis)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tquat< T, P > slerp (detail::tquat< T, P > const &x, detail::tquat< T, P > const &y, T const &a)
 
template<typename T , precision P>
GLM_FUNC_DECL T yaw (detail::tquat< T, P > const &x)
 
template<typename T >
GLM_FUNC_DECL tmat2x2< T,
+defaultp > 
make_mat2 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL tmat2x2< T,
+defaultp > 
make_mat2x2 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL tmat2x3< T,
+defaultp > 
make_mat2x3 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL tmat2x4< T,
+defaultp > 
make_mat2x4 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL tmat3x3< T,
+defaultp > 
make_mat3 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL tmat3x2< T,
+defaultp > 
make_mat3x2 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL tmat3x3< T,
+defaultp > 
make_mat3x3 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL tmat3x4< T,
+defaultp > 
make_mat3x4 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL tmat4x4< T,
+defaultp > 
make_mat4 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL tmat4x2< T,
+defaultp > 
make_mat4x2 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL tmat4x3< T,
+defaultp > 
make_mat4x3 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL tmat4x4< T,
+defaultp > 
make_mat4x4 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL tquat< T, defaultp > make_quat (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL tvec2< T, defaultp > make_vec2 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL tvec3< T, defaultp > make_vec3 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL tvec4< T, defaultp > make_vec4 (T const *const ptr)
 
template<typename genType >
GLM_FUNC_DECL
+genType::value_type const * 
value_ptr (genType const &vec)
 

Detailed Description

-

Defines a templated quaternion type and several quaternion operations.

-

<glm/gtc/quaternion.hpp> need to be included to use these functionalities.

+

Handles the interaction between pointers and vector, matrix types.

+

This extension defines an overloaded function, glm::value_ptr, which takes any of the core template types. It returns a pointer to the memory layout of the object. Matrix types store their values in column-major order.

+

This is useful for uploading data to matrices or copying data to buffer objects.

+

Example:

#include <glm/glm.hpp>
+ +
+
glm::vec3 aVector(3);
+
glm::mat4 someMatrix(1.0);
+
+
glUniform3fv(uniformLoc, 1, glm::value_ptr(aVector));
+
glUniformMatrix4fv(uniformMatrixLoc, 1, GL_FALSE, glm::value_ptr(someMatrix));
+

<glm/gtc/type_ptr.hpp> need to be included to use these functionalities.

Function Documentation

- +
- + - - + +
GLM_FUNC_DECL T glm::angle GLM_FUNC_DECL tmat2x2<T, defaultp> glm::make_mat2 (detail::tquat< T, P > const & x)T const *const ptr)
-

Returns the quaternion rotation angle.

-
See Also
GLM_GTC_quaternion
+

Build a matrix from a pointer.

+
See also
GLM_GTC_type_ptr
- +
- + - - - - - - - - - - - - - - -
GLM_FUNC_DECL detail::tquat<T, P> glm::angleAxis GLM_FUNC_DECL tmat2x2<T, defaultp> glm::make_mat2x2 (T const & angle,
detail::tvec3< T, P > const & axis 
)
-
- -

Build a quaternion from an angle and a normalized axis.

-
Parameters
- - - -
angleAngle expressed in radians if GLM_FORCE_RADIANS is define or degrees otherwise.
axisAxis of the quaternion, must be normalized.
-
-
-
See Also
GLM_GTC_quaternion
- -
-
- -
-
- - - - - - + +
GLM_FUNC_DECL detail::tvec3<T, P> glm::axis (detail::tquat< T, P > const & x)T const *const ptr)
-

Returns the q rotation axis.

-
See Also
GLM_GTC_quaternion
+

Build a matrix from a pointer.

+
See also
GLM_GTC_type_ptr
- +
- + - - + +
GLM_FUNC_DECL detail::tquat<T, P> glm::conjugate GLM_FUNC_DECL tmat2x3<T, defaultp> glm::make_mat2x3 (detail::tquat< T, P > const & q)T const *const ptr)
-

Returns the q conjugate.

-
See Also
GLM_GTC_quaternion
+

Build a matrix from a pointer.

+
See also
GLM_GTC_type_ptr
- +
- + - - - - - - - - - - - - - - -
GLM_FUNC_DECL T glm::dot GLM_FUNC_DECL tmat2x4<T, defaultp> glm::make_mat2x4 (quatType< T, P > const & x,
quatType< T, P > const & y 
)
-
- -

Returns dot product of q1 and q2, i.e., q1[0] * q2[0] + q1[1] * q2[1] + ...

-
See Also
GLM_GTC_quaternion
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL detail::tvec4<bool, P> glm::equal (detail::tquat< T, P > const & x,
detail::tquat< T, P > const & y 
)
-
- -

Returns the component-wise comparison of result x == y.

-
Template Parameters
- - -
quatTypeFloating-point quaternion types.
-
-
-
See Also
GLM_GTC_quaternion
- -
-
- -
-
- - - - - - + +
GLM_FUNC_DECL detail::tvec3<T, P> glm::eulerAngles (detail::tquat< T, P > const & x)T const *const ptr)
-

Returns euler angles, yitch as x, yaw as y, roll as z.

-

The result is expressed in radians if GLM_FORCE_RADIANS is defined or degrees otherwise.

-
See Also
GLM_GTC_quaternion
+

Build a matrix from a pointer.

+
See also
GLM_GTC_type_ptr
- +
- + - - - - - - - - - - - - - - -
GLM_FUNC_DECL detail::tvec4<bool, P> glm::greaterThan GLM_FUNC_DECL tmat3x3<T, defaultp> glm::make_mat3 (detail::tquat< T, P > const & x,
detail::tquat< T, P > const & y 
)
-
- -

Returns the component-wise comparison of result x > y.

-
Template Parameters
- - -
quatTypeFloating-point quaternion types.
-
-
-
See Also
GLM_GTC_quaternion
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL detail::tvec4<bool, P> glm::greaterThanEqual (detail::tquat< T, P > const & x,
detail::tquat< T, P > const & y 
)
-
- -

Returns the component-wise comparison of result x >= y.

-
Template Parameters
- - -
quatTypeFloating-point quaternion types.
-
-
-
See Also
GLM_GTC_quaternion
- -
-
- -
-
- - - - - - + +
GLM_FUNC_DECL detail::tquat<T, P> glm::inverse (detail::tquat< T, P > const & q)T const *const ptr)
-

Returns the q inverse.

-
See Also
GLM_GTC_quaternion
+

Build a matrix from a pointer.

+
See also
GLM_GTC_type_ptr
- +
- + - - + +
GLM_FUNC_DECL T glm::length GLM_FUNC_DECL tmat3x2<T, defaultp> glm::make_mat3x2 (detail::tquat< T, P > const & q)T const *const ptr)
-

Returns the length of the quaternion.

-
See Also
GLM_GTC_quaternion
+

Build a matrix from a pointer.

+
See also
GLM_GTC_type_ptr
- +
- + - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL detail::tquat<T, P> glm::lerp GLM_FUNC_DECL tmat3x3<T, defaultp> glm::make_mat3x3 (detail::tquat< T, P > const & x,
detail::tquat< T, P > const & y,
T const & a 
)
-
- -

Linear interpolation of two quaternions.

-

The interpolation is oriented.

-
Parameters
- - - - -
xA quaternion
yA quaternion
aInterpolation factor. The interpolation is defined in the range [0, 1].
-
-
-
Template Parameters
- - -
TValue type used to build the quaternion. Supported: half, float or double.
-
-
-
See Also
GLM_GTC_quaternion
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL detail::tvec4<bool, P> glm::lessThan (detail::tquat< T, P > const & x,
detail::tquat< T, P > const & y 
)
-
- -

Returns the component-wise comparison result of x < y.

-
Template Parameters
- - -
quatTypeFloating-point quaternion types.
-
-
-
See Also
GLM_GTC_quaternion
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL detail::tvec4<bool, P> glm::lessThanEqual (detail::tquat< T, P > const & x,
detail::tquat< T, P > const & y 
)
-
- -

Returns the component-wise comparison of result x <= y.

-
Template Parameters
- - -
quatTypeFloating-point quaternion types.
-
-
-
See Also
GLM_GTC_quaternion
- -
-
- -
-
- - - - - - + +
GLM_FUNC_DECL detail::tmat3x3<T, P> glm::mat3_cast (detail::tquat< T, P > const & x)T const *const ptr)
-

Converts a quaternion to a 3 * 3 matrix.

-
See Also
GLM_GTC_quaternion
- -

Referenced by glm::toMat3().

+

Build a matrix from a pointer.

+
See also
GLM_GTC_type_ptr
- +
- + - - + +
GLM_FUNC_DECL detail::tmat4x4<T, P> glm::mat4_cast GLM_FUNC_DECL tmat3x4<T, defaultp> glm::make_mat3x4 (detail::tquat< T, P > const & x)T const *const ptr)
-

Converts a quaternion to a 4 * 4 matrix.

-
See Also
GLM_GTC_quaternion
- -

Referenced by glm::toMat4().

+

Build a matrix from a pointer.

+
See also
GLM_GTC_type_ptr
- +
- + - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL detail::tquat<T, P> glm::mix GLM_FUNC_DECL tmat4x4<T, defaultp> glm::make_mat4 (detail::tquat< T, P > const & x,
detail::tquat< T, P > const & y,
T const & a 
)
-
- -

Spherical linear interpolation of two quaternions.

-

The interpolation is oriented and the rotation is performed at constant speed. For short path spherical linear interpolation, use the slerp function.

-
Parameters
- - - - -
xA quaternion
yA quaternion
aInterpolation factor. The interpolation is defined beyond the range [0, 1].
-
-
-
Template Parameters
- - -
TValue type used to build the quaternion. Supported: half, float or double.
-
-
-
See Also
GLM_GTC_quaternion
-
-- slerp(detail::tquat<T, P> const & x, detail::tquat<T, P> const & y, T const & a)
- -
-
- -
-
- - - - - - + +
GLM_FUNC_DECL detail::tquat<T, P> glm::normalize (detail::tquat< T, P > const & q)T const *const ptr)
-

Returns the normalized quaternion.

-
See Also
GLM_GTC_quaternion
+

Build a matrix from a pointer.

+
See also
GLM_GTC_type_ptr
- +
- + - - - - - - - - - - - - - - -
GLM_FUNC_DECL detail::tvec4<bool, P> glm::notEqual GLM_FUNC_DECL tmat4x2<T, defaultp> glm::make_mat4x2 (detail::tquat< T, P > const & x,
detail::tquat< T, P > const & y 
)
-
- -

Returns the component-wise comparison of result x != y.

-
Template Parameters
- - -
quatTypeFloating-point quaternion types.
-
-
-
See Also
GLM_GTC_quaternion
- -
-
- -
-
- - - - - - + +
GLM_FUNC_DECL T glm::pitch (detail::tquat< T, P > const & x)T const *const ptr)
-

Returns pitch value of euler angles expressed in radians if GLM_FORCE_RADIANS is defined or degrees otherwise.

-
See Also
GLM_GTX_quaternion
+

Build a matrix from a pointer.

+
See also
GLM_GTC_type_ptr
- +
- + - - + +
GLM_FUNC_DECL detail::tquat<T, P> glm::quat_cast GLM_FUNC_DECL tmat4x3<T, defaultp> glm::make_mat4x3 (detail::tmat3x3< T, P > const & x)T const *const ptr)
-

Converts a 3 * 3 matrix to a quaternion.

-
See Also
GLM_GTC_quaternion
- -

Referenced by glm::toQuat().

+

Build a matrix from a pointer.

+
See also
GLM_GTC_type_ptr
- +
- + - - + +
GLM_FUNC_DECL detail::tquat<T, P> glm::quat_cast GLM_FUNC_DECL tmat4x4<T, defaultp> glm::make_mat4x4 (detail::tmat4x4< T, P > const & x)T const *const ptr)
-

Converts a 4 * 4 matrix to a quaternion.

-
See Also
GLM_GTC_quaternion
+

Build a matrix from a pointer.

+
See also
GLM_GTC_type_ptr
- +
- + - - + +
GLM_FUNC_DECL T glm::roll GLM_FUNC_DECL tquat<T, defaultp> glm::make_quat (detail::tquat< T, P > const & x)T const *const ptr)
-

Returns roll value of euler angles expressed in radians if GLM_FORCE_RADIANS is defined or degrees otherwise.

-
See Also
GLM_GTX_quaternion
+

Build a quaternion from a pointer.

+
See also
GLM_GTC_type_ptr
- +
- + - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL detail::tquat<T, P> glm::rotate GLM_FUNC_DECL tvec2<T, defaultp> glm::make_vec2 (detail::tquat< T, P > const & q,
T const & angle,
detail::tvec3< T, P > const & axis 
)
-
- -

Rotates a quaternion from a vector of 3 components axis and an angle.

-
Parameters
- - - - -
qSource orientation
angleAngle expressed in radians if GLM_FORCE_RADIANS is define or degrees otherwise.
axisAxis of the rotation
-
-
-
See Also
GLM_GTC_quaternion
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL detail::tquat<T, P> glm::slerp (detail::tquat< T, P > const & x,
detail::tquat< T, P > const & y,
T const & a 
)
-
- -

Spherical linear interpolation of two quaternions.

-

The interpolation always take the short path and the rotation is performed at constant speed.

-
Parameters
- - - - -
xA quaternion
yA quaternion
aInterpolation factor. The interpolation is defined beyond the range [0, 1].
-
-
-
Template Parameters
- - -
TValue type used to build the quaternion. Supported: half, float or double.
-
-
-
See Also
GLM_GTC_quaternion
-

Spherical linear interpolation of two quaternions.

- -

Definition at line 73 of file compatibility.hpp.

- -

References glm::mix().

- -
-
- -
-
- - - - - - + +
GLM_FUNC_DECL T glm::yaw (detail::tquat< T, P > const & x)T const *const ptr)
-

Returns yaw value of euler angles expressed in radians if GLM_FORCE_RADIANS is defined or degrees otherwise.

-
See Also
GLM_GTX_quaternion
+

Build a vector from a pointer.

+
See also
GLM_GTC_type_ptr
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL tvec3<T, defaultp> glm::make_vec3 (T const *const ptr)
+
+ +

Build a vector from a pointer.

+
See also
GLM_GTC_type_ptr
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL tvec4<T, defaultp> glm::make_vec4 (T const *const ptr)
+
+ +

Build a vector from a pointer.

+
See also
GLM_GTC_type_ptr
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL genType::value_type const* glm::value_ptr (genType const & vec)
+
+ +

Return the constant address to the data of the input parameter.

+
See also
GLM_GTC_type_ptr
@@ -891,7 +452,7 @@ Functions diff --git a/doc/api/a00180.html b/doc/api/a00180.html index f7944c46..e6a773eb 100644 --- a/doc/api/a00180.html +++ b/doc/api/a00180.html @@ -3,8 +3,8 @@ - -GLM: GLM_GTC_random + +0.9.6: GLM_GTC_ulp @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -41,129 +39,50 @@
Functions
-
GLM_GTC_random
+
GLM_GTC_ulp
GTC Extensions (Stable)
- - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + +

Functions

template<typename T >
GLM_FUNC_DECL detail::tvec3< T,
-defaultp > 
ballRand (T const &Radius)
 
template<typename T >
GLM_FUNC_DECL detail::tvec2< T,
-defaultp > 
circularRand (T const &Radius)
 
template<typename T >
GLM_FUNC_DECL detail::tvec2< T,
-defaultp > 
diskRand (T const &Radius)
 
template<typename genType >
GLM_FUNC_DECL genType gaussRand (genType const &Mean, genType const &Deviation)
 
template<typename genType >
GLM_FUNC_DECL genType linearRand (genType const &Min, genType const &Max)
 
template<typename T >
GLM_FUNC_DECL detail::tvec3< T,
-defaultp > 
sphericalRand (T const &Radius)
 
template<typename T >
GLM_FUNC_DECL uint float_distance (T const &x, T const &y)
 
template<typename T , template< typename > class vecType>
GLM_FUNC_DECL vecType< uint > float_distance (vecType< T > const &x, vecType< T > const &y)
 
template<typename genType >
GLM_FUNC_DECL genType next_float (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType next_float (genType const &x, uint const &Distance)
 
template<typename genType >
GLM_FUNC_DECL genType prev_float (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType prev_float (genType const &x, uint const &Distance)
 

Detailed Description

-

Generate random number from various distribution methods.

-

<glm/gtc/random.hpp> need to be included to use these functionalities.

+

Allow the measurement of the accuracy of a function against a reference implementation.

+

This extension works on floating-point data and provide results in ULP. <glm/gtc/ulp.hpp> need to be included to use these features.

Function Documentation

- +
- + - - - -
GLM_FUNC_DECL detail::tvec3<T, defaultp> glm::ballRand GLM_FUNC_DECL uint glm::float_distance ( T const & Radius)
-
- -

Generate a random 3D vector which coordinates are regulary distributed within the volume of a ball of a given radius.

-
Parameters
- - -
Radius
-
-
-
See Also
GLM_GTC_random
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL detail::tvec2<T, defaultp> glm::circularRand (T const & Radius)
-
- -

Generate a random 2D vector which coordinates are regulary distributed on a circle of a given radius.

-
Parameters
- - -
Radius
-
-
-
See Also
GLM_GTC_random
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL detail::tvec2<T, defaultp> glm::diskRand (T const & Radius)
-
- -

Generate a random 2D vector which coordinates are regulary distributed within the area of a disk of a given radius.

-
Parameters
- - -
Radius
-
-
-
See Also
GLM_GTC_random
- -
-
- -
-
- - - - - - + - - + + @@ -173,33 +92,26 @@ defaultp >  diff --git a/doc/api/a00186.html b/doc/api/a00186.html index c9c7595a..be5e329e 100644 --- a/doc/api/a00186.html +++ b/doc/api/a00186.html @@ -3,8 +3,8 @@ - -GLM: GLM_GTX_bit + +0.9.6: GLM_GTX_color_space_YCoCg @@ -16,9 +16,9 @@
GLM_FUNC_DECL genType glm::gaussRand (genType const & Mean, x,
genType const & Deviation T const & y 
-

Generate random numbers in the interval [Min, Max], according a gaussian distribution.

-
Parameters
- - - -
Mean
Deviation
-
-
-
See Also
GLM_GTC_random
+

Return the distance in the number of ULP between 2 scalars.

+
See also
GLM_GTC_ulp
- +
- + - - + + - - + + @@ -209,46 +121,104 @@ defaultp >  diff --git a/doc/api/a00185.html b/doc/api/a00185.html index 4f4ff986..d833ada5 100644 --- a/doc/api/a00185.html +++ b/doc/api/a00185.html @@ -3,8 +3,8 @@ - -GLM: GLM_GTX_associated_min_max + +0.9.6: GLM_GTX_color_space @@ -16,9 +16,9 @@
GLM_FUNC_DECL genType glm::linearRand GLM_FUNC_DECL vecType<uint> glm::float_distance (genType const & Min, vecType< T > const & x,
genType const & Max vecType< T > const & y 
-

Generate random numbers in the interval [Min, Max], according a linear distribution.

-
Parameters
- - - -
Min
Max
-
-
-
Template Parameters
- - -
genTypeValue type. Currently supported: half (not recommanded), float or double scalars and vectors.
-
-
-
See Also
GLM_GTC_random
+

Return the distance in the number of ULP between 2 vectors.

+
See also
GLM_GTC_ulp
- +
- + - - + +
GLM_FUNC_DECL detail::tvec3<T, defaultp> glm::sphericalRand GLM_FUNC_DECL genType glm::next_float (T const & Radius)genType const & x)
-

Generate a random 3D vector which coordinates are regulary distributed on a sphere of a given radius.

-
Parameters
- - -
Radius
-
-
-
See Also
GLM_GTC_random
+

Return the next ULP value(s) after the input value(s).

+
See also
GLM_GTC_ulp
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL genType glm::next_float (genType const & x,
uint const & Distance 
)
+
+ +

Return the value(s) ULP distance after the input value(s).

+
See also
GLM_GTC_ulp
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL genType glm::prev_float (genType const & x)
+
+ +

Return the previous ULP value(s) before the input value(s).

+
See also
GLM_GTC_ulp
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL genType glm::prev_float (genType const & x,
uint const & Distance 
)
+
+ +

Return the value(s) ULP distance before the input value(s).

+
See also
GLM_GTC_ulp
@@ -257,7 +227,7 @@ defaultp > 
diff --git a/doc/api/a00181.html b/doc/api/a00181.html index f9253c02..5b5dc92c 100644 --- a/doc/api/a00181.html +++ b/doc/api/a00181.html @@ -3,8 +3,8 @@ - -GLM: GLM_GTC_reciprocal + +0.9.6: GLM_GTC_vec1 @@ -16,9 +16,9 @@ + @@ -26,305 +26,28 @@
-
GLM -  0.9.5 +
0.9.6
- +
-
-
GLM_GTC_reciprocal
+
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename genType >
GLM_FUNC_DECL genType acot (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType acoth (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType acsc (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType acsch (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType asec (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType asech (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType cot (genType const &angle)
 
template<typename genType >
GLM_FUNC_DECL genType coth (genType const &angle)
 
template<typename genType >
GLM_FUNC_DECL genType csc (genType const &angle)
 
template<typename genType >
GLM_FUNC_DECL genType csch (genType const &angle)
 
template<typename genType >
GLM_FUNC_DECL genType sec (genType const &angle)
 
template<typename genType >
GLM_FUNC_DECL genType sech (genType const &angle)
 
-

Detailed Description

-

Define secant, cosecant and cotangent functions.

-

<glm/gtc/reciprocal.hpp> need to be included to use these features.

-

Function Documentation

- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::acot (genType const & x)
-
- -

Inverse cotangent function.

-
See Also
GLM_GTC_reciprocal
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::acoth (genType const & x)
-
- -

Inverse cotangent hyperbolic function.

-
See Also
GLM_GTC_reciprocal
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::acsc (genType const & x)
-
- -

Inverse cosecant function.

-
See Also
GLM_GTC_reciprocal
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::acsch (genType const & x)
-
- -

Inverse cosecant hyperbolic function.

-
See Also
GLM_GTC_reciprocal
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::asec (genType const & x)
-
- -

Inverse secant function.

-
See Also
GLM_GTC_reciprocal
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::asech (genType const & x)
-
- -

Inverse secant hyperbolic function.

-
See Also
GLM_GTC_reciprocal
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::cot (genType const & angle)
-
- -

Cotangent function.

-

adjacent / opposite or 1 / tan(x)

-
See Also
GLM_GTC_reciprocal
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::coth (genType const & angle)
-
- -

Cotangent hyperbolic function.

-
See Also
GLM_GTC_reciprocal
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::csc (genType const & angle)
-
- -

Cosecant function.

-

hypotenuse / opposite or 1 / sin(x)

-
See Also
GLM_GTC_reciprocal
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::csch (genType const & angle)
-
- -

Cosecant hyperbolic function.

-
See Also
GLM_GTC_reciprocal
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::sec (genType const & angle)
-
- -

Secant function.

-

hypotenuse / adjacent or 1 / cos(x)

-
See Also
GLM_GTC_reciprocal
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::sech (genType const & angle)
-
- -

Secant hyperbolic function.

-
See Also
GLM_GTC_reciprocal
- -
-
+

Add vec1, ivec1, uvec1 and bvec1 types.

+

<glm/gtc/vec1.hpp> need to be included to use these functionalities.

diff --git a/doc/api/a00182.html b/doc/api/a00182.html index 388110e5..215cffff 100644 --- a/doc/api/a00182.html +++ b/doc/api/a00182.html @@ -3,8 +3,8 @@ - -GLM: GLM_GTC_type_precision + +0.9.6: GLM_GTX_associated_min_max @@ -16,9 +16,9 @@ + @@ -26,8924 +26,1259 @@
-
GLM -  0.9.5 +
0.9.6
- +
-
GLM_GTC_type_precision
+
GLM_GTX_associated_min_max
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

-Typedefs

typedef highp_float32_t f32
 
typedef f32mat2x2 f32mat2
 
typedef highp_f32mat2x2 f32mat2x2
 
typedef highp_f32mat2x3 f32mat2x3
 
typedef highp_f32mat2x4 f32mat2x4
 
typedef f32mat3x3 f32mat3
 
typedef highp_f32mat3x2 f32mat3x2
 
typedef highp_f32mat3x3 f32mat3x3
 
typedef highp_f32mat3x4 f32mat3x4
 
typedef f32mat4x4 f32mat4
 
typedef highp_f32mat4x2 f32mat4x2
 
typedef highp_f32mat4x3 f32mat4x3
 
typedef highp_f32mat4x4 f32mat4x4
 
typedef highp_f32quat f32quat
 
typedef highp_f32vec1 f32vec1
 
typedef highp_f32vec2 f32vec2
 
typedef highp_f32vec3 f32vec3
 
typedef highp_f32vec4 f32vec4
 
typedef highp_float64_t f64
 
typedef f64mat2x2 f64mat2
 
typedef highp_f64mat2x2 f64mat2x2
 
typedef highp_f64mat2x3 f64mat2x3
 
typedef highp_f64mat2x4 f64mat2x4
 
typedef f64mat3x3 f64mat3
 
typedef highp_f64mat3x2 f64mat3x2
 
typedef highp_f64mat3x3 f64mat3x3
 
typedef highp_f64mat3x4 f64mat3x4
 
typedef f64mat4x4 f64mat4
 
typedef highp_f64mat4x2 f64mat4x2
 
typedef highp_f64mat4x3 f64mat4x3
 
typedef highp_f64mat4x4 f64mat4x4
 
typedef highp_f64quat f64quat
 
typedef highp_f64vec1 f64vec1
 
typedef highp_f64vec2 f64vec2
 
typedef highp_f64vec3 f64vec3
 
typedef highp_f64vec4 f64vec4
 
typedef float float32
 
typedef highp_float32_t float32_t
 
typedef double float64
 
typedef highp_float64_t float64_t
 
typedef fmat2x2 fmat2
 
typedef highp_f32mat2x2 fmat2x2
 
typedef highp_f32mat2x3 fmat2x3
 
typedef highp_f32mat2x4 fmat2x4
 
typedef fmat3x3 fmat3
 
typedef highp_f32mat3x2 fmat3x2
 
typedef highp_f32mat3x3 fmat3x3
 
typedef highp_f32mat3x4 fmat3x4
 
typedef fmat4x4 fmat4
 
typedef highp_f32mat4x2 fmat4x2
 
typedef highp_f32mat4x3 fmat4x3
 
typedef highp_f32mat4x4 fmat4x4
 
typedef quat fquat
 
typedef highp_f32vec1 fvec1
 
typedef highp_f32vec2 fvec2
 
typedef highp_f32vec3 fvec3
 
typedef highp_f32vec4 fvec4
 
typedef float32 highp_f32
 
typedef highp_f32mat2x2 highp_f32mat2
 
typedef detail::tmat2x2< f32,
-highp > 
highp_f32mat2x2
 
typedef detail::tmat2x3< f32,
-highp > 
highp_f32mat2x3
 
typedef detail::tmat2x4< f32,
-highp > 
highp_f32mat2x4
 
typedef highp_f32mat3x3 highp_f32mat3
 
typedef detail::tmat3x2< f32,
-highp > 
highp_f32mat3x2
 
typedef detail::tmat3x3< f32,
-highp > 
highp_f32mat3x3
 
typedef detail::tmat3x4< f32,
-highp > 
highp_f32mat3x4
 
typedef highp_f32mat4x4 highp_f32mat4
 
typedef detail::tmat4x2< f32,
-highp > 
highp_f32mat4x2
 
typedef detail::tmat4x3< f32,
-highp > 
highp_f32mat4x3
 
typedef detail::tmat4x4< f32,
-highp > 
highp_f32mat4x4
 
typedef detail::tquat< f32, highp > highp_f32quat
 
typedef detail::tvec1< f32, highp > highp_f32vec1
 
typedef detail::tvec2< f32, highp > highp_f32vec2
 
typedef detail::tvec3< f32, highp > highp_f32vec3
 
typedef detail::tvec4< f32, highp > highp_f32vec4
 
typedef float64 highp_f64
 
typedef highp_f64mat2x2 highp_f64mat2
 
typedef detail::tmat2x2< f64,
-highp > 
highp_f64mat2x2
 
typedef detail::tmat2x3< f64,
-highp > 
highp_f64mat2x3
 
typedef detail::tmat2x4< f64,
-highp > 
highp_f64mat2x4
 
typedef highp_f64mat3x3 highp_f64mat3
 
typedef detail::tmat3x2< f64,
-highp > 
highp_f64mat3x2
 
typedef detail::tmat3x3< f64,
-highp > 
highp_f64mat3x3
 
typedef detail::tmat3x4< f64,
-highp > 
highp_f64mat3x4
 
typedef highp_f64mat4x4 highp_f64mat4
 
typedef detail::tmat4x2< f64,
-highp > 
highp_f64mat4x2
 
typedef detail::tmat4x3< f64,
-highp > 
highp_f64mat4x3
 
typedef detail::tmat4x4< f64,
-highp > 
highp_f64mat4x4
 
typedef detail::tquat< f64, highp > highp_f64quat
 
typedef detail::tvec1< f64, highp > highp_f64vec1
 
typedef detail::tvec2< f64, highp > highp_f64vec2
 
typedef detail::tvec3< f64, highp > highp_f64vec3
 
typedef detail::tvec4< f64, highp > highp_f64vec4
 
typedef detail::float32 highp_float32
 
typedef detail::float32 highp_float32_t
 
typedef detail::float64 highp_float64
 
typedef detail::float64 highp_float64_t
 
typedef highp_fmat2x2 highp_fmat2
 
typedef detail::tmat2x2< f32,
-highp > 
highp_fmat2x2
 
typedef detail::tmat2x3< f32,
-highp > 
highp_fmat2x3
 
typedef detail::tmat2x4< f32,
-highp > 
highp_fmat2x4
 
typedef highp_fmat3x3 highp_fmat3
 
typedef detail::tmat3x2< f32,
-highp > 
highp_fmat3x2
 
typedef detail::tmat3x3< f32,
-highp > 
highp_fmat3x3
 
typedef detail::tmat3x4< f32,
-highp > 
highp_fmat3x4
 
typedef highp_fmat4x4 highp_fmat4
 
typedef detail::tmat4x2< f32,
-highp > 
highp_fmat4x2
 
typedef detail::tmat4x3< f32,
-highp > 
highp_fmat4x3
 
typedef detail::tmat4x4< f32,
-highp > 
highp_fmat4x4
 
typedef detail::tvec1< float,
-highp > 
highp_fvec1
 
typedef detail::tvec2< float,
-highp > 
highp_fvec2
 
typedef detail::tvec3< float,
-highp > 
highp_fvec3
 
typedef detail::tvec4< float,
-highp > 
highp_fvec4
 
typedef detail::int16 highp_i16
 
typedef detail::tvec1< i16, highp > highp_i16vec1
 
typedef detail::tvec2< i16, highp > highp_i16vec2
 
typedef detail::tvec3< i16, highp > highp_i16vec3
 
typedef detail::tvec4< i16, highp > highp_i16vec4
 
typedef detail::int32 highp_i32
 
typedef detail::tvec1< i32, highp > highp_i32vec1
 
typedef detail::tvec2< i32, highp > highp_i32vec2
 
typedef detail::tvec3< i32, highp > highp_i32vec3
 
typedef detail::tvec4< i32, highp > highp_i32vec4
 
typedef detail::int64 highp_i64
 
typedef detail::tvec1< i64, highp > highp_i64vec1
 
typedef detail::tvec2< i64, highp > highp_i64vec2
 
typedef detail::tvec3< i64, highp > highp_i64vec3
 
typedef detail::tvec4< i64, highp > highp_i64vec4
 
typedef detail::int8 highp_i8
 
typedef detail::tvec1< i8, highp > highp_i8vec1
 
typedef detail::tvec2< i8, highp > highp_i8vec2
 
typedef detail::tvec3< i8, highp > highp_i8vec3
 
typedef detail::tvec4< i8, highp > highp_i8vec4
 
typedef detail::int16 highp_int16
 
typedef detail::int16 highp_int16_t
 
typedef detail::int32 highp_int32
 
typedef detail::int32 highp_int32_t
 
typedef detail::int64 highp_int64
 
typedef detail::int64 highp_int64_t
 
typedef detail::int8 highp_int8
 
typedef detail::int8 highp_int8_t
 
typedef detail::uint16 highp_u16
 
typedef detail::tvec1< u16, highp > highp_u16vec1
 
typedef detail::tvec2< u16, highp > highp_u16vec2
 
typedef detail::tvec3< u16, highp > highp_u16vec3
 
typedef detail::tvec4< u16, highp > highp_u16vec4
 
typedef detail::uint32 highp_u32
 
typedef detail::tvec1< u32, highp > highp_u32vec1
 
typedef detail::tvec2< u32, highp > highp_u32vec2
 
typedef detail::tvec3< u32, highp > highp_u32vec3
 
typedef detail::tvec4< u32, highp > highp_u32vec4
 
typedef detail::uint64 highp_u64
 
typedef detail::tvec1< u64, highp > highp_u64vec1
 
typedef detail::tvec2< u64, highp > highp_u64vec2
 
typedef detail::tvec3< u64, highp > highp_u64vec3
 
typedef detail::tvec4< u64, highp > highp_u64vec4
 
typedef detail::uint8 highp_u8
 
typedef detail::tvec1< u8, highp > highp_u8vec1
 
typedef detail::tvec2< u8, highp > highp_u8vec2
 
typedef detail::tvec3< u8, highp > highp_u8vec3
 
typedef detail::tvec4< u8, highp > highp_u8vec4
 
typedef detail::uint16 highp_uint16
 
typedef detail::uint16 highp_uint16_t
 
typedef detail::uint32 highp_uint32
 
typedef detail::uint32 highp_uint32_t
 
typedef detail::uint64 highp_uint64
 
typedef detail::uint64 highp_uint64_t
 
typedef detail::uint8 highp_uint8
 
typedef detail::uint8 highp_uint8_t
 
typedef detail::tvec1< float,
-highp > 
highp_vec1
 
typedef detail::int16 i16
 
typedef highp_i16vec1 i16vec1
 
typedef highp_i16vec2 i16vec2
 
typedef highp_i16vec3 i16vec3
 
typedef highp_i16vec4 i16vec4
 
typedef detail::int32 i32
 
typedef highp_i32vec1 i32vec1
 
typedef highp_i32vec2 i32vec2
 
typedef highp_i32vec3 i32vec3
 
typedef highp_i32vec4 i32vec4
 
typedef detail::int64 i64
 
typedef highp_i64vec1 i64vec1
 
typedef highp_i64vec2 i64vec2
 
typedef highp_i64vec3 i64vec3
 
typedef highp_i64vec4 i64vec4
 
typedef detail::int8 i8
 
typedef highp_i8vec1 i8vec1
 
typedef highp_i8vec2 i8vec2
 
typedef highp_i8vec3 i8vec3
 
typedef highp_i8vec4 i8vec4
 
typedef detail::int16 int16
 
typedef detail::int16 int16_t
 
typedef detail::int32 int32
 
typedef detail::int32 int32_t
 
typedef detail::int64 int64
 
typedef detail::int64 int64_t
 
typedef detail::int8 int8
 
typedef detail::int8 int8_t
 
typedef float32 lowp_f32
 
typedef lowp_f32mat2x2 lowp_f32mat2
 
typedef detail::tmat2x2< f32,
-lowp > 
lowp_f32mat2x2
 
typedef detail::tmat2x3< f32,
-lowp > 
lowp_f32mat2x3
 
typedef detail::tmat2x4< f32,
-lowp > 
lowp_f32mat2x4
 
typedef lowp_f32mat3x3 lowp_f32mat3
 
typedef detail::tmat3x2< f32,
-lowp > 
lowp_f32mat3x2
 
typedef detail::tmat3x3< f32,
-lowp > 
lowp_f32mat3x3
 
typedef detail::tmat3x4< f32,
-lowp > 
lowp_f32mat3x4
 
typedef lowp_f32mat4x4 lowp_f32mat4
 
typedef detail::tmat4x2< f32,
-lowp > 
lowp_f32mat4x2
 
typedef detail::tmat4x3< f32,
-lowp > 
lowp_f32mat4x3
 
typedef detail::tmat4x4< f32,
-lowp > 
lowp_f32mat4x4
 
typedef detail::tquat< f32, lowp > lowp_f32quat
 
typedef detail::tvec1< f32, lowp > lowp_f32vec1
 
typedef detail::tvec2< f32, lowp > lowp_f32vec2
 
typedef detail::tvec3< f32, lowp > lowp_f32vec3
 
typedef detail::tvec4< f32, lowp > lowp_f32vec4
 
typedef float64 lowp_f64
 
typedef lowp_f64mat2x2 lowp_f64mat2
 
typedef detail::tmat2x2< f64,
-lowp > 
lowp_f64mat2x2
 
typedef detail::tmat2x3< f64,
-lowp > 
lowp_f64mat2x3
 
typedef detail::tmat2x4< f64,
-lowp > 
lowp_f64mat2x4
 
typedef lowp_f64mat3x3 lowp_f64mat3
 
typedef detail::tmat3x2< f64,
-lowp > 
lowp_f64mat3x2
 
typedef detail::tmat3x3< f64,
-lowp > 
lowp_f64mat3x3
 
typedef detail::tmat3x4< f64,
-lowp > 
lowp_f64mat3x4
 
typedef lowp_f64mat4x4 lowp_f64mat4
 
typedef detail::tmat4x2< f64,
-lowp > 
lowp_f64mat4x2
 
typedef detail::tmat4x3< f64,
-lowp > 
lowp_f64mat4x3
 
typedef detail::tmat4x4< f64,
-lowp > 
lowp_f64mat4x4
 
typedef detail::tquat< f64, lowp > lowp_f64quat
 
typedef detail::tvec1< f64, lowp > lowp_f64vec1
 
typedef detail::tvec2< f64, lowp > lowp_f64vec2
 
typedef detail::tvec3< f64, lowp > lowp_f64vec3
 
typedef detail::tvec4< f64, lowp > lowp_f64vec4
 
typedef detail::float32 lowp_float32
 
typedef detail::float32 lowp_float32_t
 
typedef detail::float64 lowp_float64
 
typedef detail::float64 lowp_float64_t
 
typedef lowp_fmat2x2 lowp_fmat2
 
typedef detail::tmat2x2< f32,
-lowp > 
lowp_fmat2x2
 
typedef detail::tmat2x3< f32,
-lowp > 
lowp_fmat2x3
 
typedef detail::tmat2x4< f32,
-lowp > 
lowp_fmat2x4
 
typedef lowp_fmat3x3 lowp_fmat3
 
typedef detail::tmat3x2< f32,
-lowp > 
lowp_fmat3x2
 
typedef detail::tmat3x3< f32,
-lowp > 
lowp_fmat3x3
 
typedef detail::tmat3x4< f32,
-lowp > 
lowp_fmat3x4
 
typedef lowp_fmat4x4 lowp_fmat4
 
typedef detail::tmat4x2< f32,
-lowp > 
lowp_fmat4x2
 
typedef detail::tmat4x3< f32,
-lowp > 
lowp_fmat4x3
 
typedef detail::tmat4x4< f32,
-lowp > 
lowp_fmat4x4
 
typedef detail::tvec1< float,
-lowp > 
lowp_fvec1
 
typedef detail::tvec2< float,
-lowp > 
lowp_fvec2
 
typedef detail::tvec3< float,
-lowp > 
lowp_fvec3
 
typedef detail::tvec4< float,
-lowp > 
lowp_fvec4
 
typedef detail::int16 lowp_i16
 
typedef detail::tvec1< i16, lowp > lowp_i16vec1
 
typedef detail::tvec2< i16, lowp > lowp_i16vec2
 
typedef detail::tvec3< i16, lowp > lowp_i16vec3
 
typedef detail::tvec4< i16, lowp > lowp_i16vec4
 
typedef detail::int32 lowp_i32
 
typedef detail::tvec1< i32, lowp > lowp_i32vec1
 
typedef detail::tvec2< i32, lowp > lowp_i32vec2
 
typedef detail::tvec3< i32, lowp > lowp_i32vec3
 
typedef detail::tvec4< i32, lowp > lowp_i32vec4
 
typedef detail::int64 lowp_i64
 
typedef detail::tvec1< i64, lowp > lowp_i64vec1
 
typedef detail::tvec2< i64, lowp > lowp_i64vec2
 
typedef detail::tvec3< i64, lowp > lowp_i64vec3
 
typedef detail::tvec4< i64, lowp > lowp_i64vec4
 
typedef detail::int8 lowp_i8
 
typedef detail::tvec1< i8, lowp > lowp_i8vec1
 
typedef detail::tvec2< i8, lowp > lowp_i8vec2
 
typedef detail::tvec3< i8, lowp > lowp_i8vec3
 
typedef detail::tvec4< i8, lowp > lowp_i8vec4
 
typedef detail::int16 lowp_int16
 
typedef detail::int16 lowp_int16_t
 
typedef detail::int32 lowp_int32
 
typedef detail::int32 lowp_int32_t
 
typedef detail::int64 lowp_int64
 
typedef detail::int64 lowp_int64_t
 
typedef detail::int8 lowp_int8
 
typedef detail::int8 lowp_int8_t
 
typedef detail::uint16 lowp_u16
 
typedef detail::tvec1< u16, lowp > lowp_u16vec1
 
typedef detail::tvec2< u16, lowp > lowp_u16vec2
 
typedef detail::tvec3< u16, lowp > lowp_u16vec3
 
typedef detail::tvec4< u16, lowp > lowp_u16vec4
 
typedef detail::uint32 lowp_u32
 
typedef detail::tvec1< u32, lowp > lowp_u32vec1
 
typedef detail::tvec2< u32, lowp > lowp_u32vec2
 
typedef detail::tvec3< u32, lowp > lowp_u32vec3
 
typedef detail::tvec4< u32, lowp > lowp_u32vec4
 
typedef detail::uint64 lowp_u64
 
typedef detail::tvec1< u64, lowp > lowp_u64vec1
 
typedef detail::tvec2< u64, lowp > lowp_u64vec2
 
typedef detail::tvec3< u64, lowp > lowp_u64vec3
 
typedef detail::tvec4< u64, lowp > lowp_u64vec4
 
typedef detail::uint8 lowp_u8
 
typedef detail::tvec1< u8, lowp > lowp_u8vec1
 
typedef detail::tvec2< u8, lowp > lowp_u8vec2
 
typedef detail::tvec3< u8, lowp > lowp_u8vec3
 
typedef detail::tvec4< u8, lowp > lowp_u8vec4
 
typedef detail::uint16 lowp_uint16
 
typedef detail::uint16 lowp_uint16_t
 
typedef detail::uint32 lowp_uint32
 
typedef detail::uint32 lowp_uint32_t
 
typedef detail::uint64 lowp_uint64
 
typedef detail::uint64 lowp_uint64_t
 
typedef detail::uint8 lowp_uint8
 
typedef detail::uint8 lowp_uint8_t
 
typedef detail::tvec1< float,
-lowp > 
lowp_vec1
 
typedef float32 mediump_f32
 
typedef mediump_f32mat2x2 mediump_f32mat2
 
typedef detail::tmat2x2< f32,
-mediump > 
mediump_f32mat2x2
 
typedef detail::tmat2x3< f32,
-mediump > 
mediump_f32mat2x3
 
typedef detail::tmat2x4< f32,
-mediump > 
mediump_f32mat2x4
 
typedef mediump_f32mat3x3 mediump_f32mat3
 
typedef detail::tmat3x2< f32,
-mediump > 
mediump_f32mat3x2
 
typedef detail::tmat3x3< f32,
-mediump > 
mediump_f32mat3x3
 
typedef detail::tmat3x4< f32,
-mediump > 
mediump_f32mat3x4
 
typedef mediump_f32mat4x4 mediump_f32mat4
 
typedef detail::tmat4x2< f32,
-mediump > 
mediump_f32mat4x2
 
typedef detail::tmat4x3< f32,
-mediump > 
mediump_f32mat4x3
 
typedef detail::tmat4x4< f32,
-mediump > 
mediump_f32mat4x4
 
typedef detail::tquat< f32,
-mediump > 
mediump_f32quat
 
typedef detail::tvec1< f32,
-mediump > 
mediump_f32vec1
 
typedef detail::tvec2< f32,
-mediump > 
mediump_f32vec2
 
typedef detail::tvec3< f32,
-mediump > 
mediump_f32vec3
 
typedef detail::tvec4< f32,
-mediump > 
mediump_f32vec4
 
typedef float64 mediump_f64
 
typedef mediump_f64mat2x2 mediump_f64mat2
 
typedef detail::tmat2x2< f64,
-mediump > 
mediump_f64mat2x2
 
typedef detail::tmat2x3< f64,
-mediump > 
mediump_f64mat2x3
 
typedef detail::tmat2x4< f64,
-mediump > 
mediump_f64mat2x4
 
typedef mediump_f64mat3x3 mediump_f64mat3
 
typedef detail::tmat3x2< f64,
-mediump > 
mediump_f64mat3x2
 
typedef detail::tmat3x3< f64,
-mediump > 
mediump_f64mat3x3
 
typedef detail::tmat3x4< f64,
-mediump > 
mediump_f64mat3x4
 
typedef mediump_f64mat4x4 mediump_f64mat4
 
typedef detail::tmat4x2< f64,
-mediump > 
mediump_f64mat4x2
 
typedef detail::tmat4x3< f64,
-mediump > 
mediump_f64mat4x3
 
typedef detail::tmat4x4< f64,
-mediump > 
mediump_f64mat4x4
 
typedef detail::tquat< f64,
-mediump > 
mediump_f64quat
 
typedef detail::tvec1< f64,
-mediump > 
mediump_f64vec1
 
typedef detail::tvec2< f64,
-mediump > 
mediump_f64vec2
 
typedef detail::tvec3< f64,
-mediump > 
mediump_f64vec3
 
typedef detail::tvec4< f64,
-mediump > 
mediump_f64vec4
 
typedef detail::float32 mediump_float32
 
typedef detail::float32 mediump_float32_t
 
typedef detail::float64 mediump_float64
 
typedef detail::float64 mediump_float64_t
 
typedef mediump_fmat2x2 mediump_fmat2
 
typedef detail::tmat2x2< f32,
-mediump > 
mediump_fmat2x2
 
typedef detail::tmat2x3< f32,
-mediump > 
mediump_fmat2x3
 
typedef detail::tmat2x4< f32,
-mediump > 
mediump_fmat2x4
 
typedef mediump_fmat3x3 mediump_fmat3
 
typedef detail::tmat3x2< f32,
-mediump > 
mediump_fmat3x2
 
typedef detail::tmat3x3< f32,
-mediump > 
mediump_fmat3x3
 
typedef detail::tmat3x4< f32,
-mediump > 
mediump_fmat3x4
 
typedef mediump_fmat4x4 mediump_fmat4
 
typedef detail::tmat4x2< f32,
-mediump > 
mediump_fmat4x2
 
typedef detail::tmat4x3< f32,
-mediump > 
mediump_fmat4x3
 
typedef detail::tmat4x4< f32,
-mediump > 
mediump_fmat4x4
 
typedef detail::tvec1< float,
-mediump > 
mediump_fvec1
 
typedef detail::tvec2< float,
-mediump > 
mediump_fvec2
 
typedef detail::tvec3< float,
-mediump > 
mediump_fvec3
 
typedef detail::tvec4< float,
-mediump > 
mediump_fvec4
 
typedef detail::int16 mediump_i16
 
typedef detail::tvec1< i16,
-mediump > 
mediump_i16vec1
 
typedef detail::tvec2< i16,
-mediump > 
mediump_i16vec2
 
typedef detail::tvec3< i16,
-mediump > 
mediump_i16vec3
 
typedef detail::tvec4< i16,
-mediump > 
mediump_i16vec4
 
typedef detail::int32 mediump_i32
 
typedef detail::tvec1< i32,
-mediump > 
mediump_i32vec1
 
typedef detail::tvec2< i32,
-mediump > 
mediump_i32vec2
 
typedef detail::tvec3< i32,
-mediump > 
mediump_i32vec3
 
typedef detail::tvec4< i32,
-mediump > 
mediump_i32vec4
 
typedef detail::int64 mediump_i64
 
typedef detail::tvec1< i64,
-mediump > 
mediump_i64vec1
 
typedef detail::tvec2< i64,
-mediump > 
mediump_i64vec2
 
typedef detail::tvec3< i64,
-mediump > 
mediump_i64vec3
 
typedef detail::tvec4< i64,
-mediump > 
mediump_i64vec4
 
typedef detail::int8 mediump_i8
 
typedef detail::tvec1< i8,
-mediump > 
mediump_i8vec1
 
typedef detail::tvec2< i8,
-mediump > 
mediump_i8vec2
 
typedef detail::tvec3< i8,
-mediump > 
mediump_i8vec3
 
typedef detail::tvec4< i8,
-mediump > 
mediump_i8vec4
 
typedef detail::int16 mediump_int16
 
typedef detail::int16 mediump_int16_t
 
typedef detail::int32 mediump_int32
 
typedef detail::int32 mediump_int32_t
 
typedef detail::int64 mediump_int64
 
typedef detail::int64 mediump_int64_t
 
typedef detail::int8 mediump_int8
 
typedef detail::int8 mediump_int8_t
 
typedef detail::uint16 mediump_u16
 
typedef detail::tvec1< u16,
-mediump > 
mediump_u16vec1
 
typedef detail::tvec2< u16,
-mediump > 
mediump_u16vec2
 
typedef detail::tvec3< u16,
-mediump > 
mediump_u16vec3
 
typedef detail::tvec4< u16,
-mediump > 
mediump_u16vec4
 
typedef detail::uint32 mediump_u32
 
typedef detail::tvec1< u32,
-mediump > 
mediump_u32vec1
 
typedef detail::tvec2< u32,
-mediump > 
mediump_u32vec2
 
typedef detail::tvec3< u32,
-mediump > 
mediump_u32vec3
 
typedef detail::tvec4< u32,
-mediump > 
mediump_u32vec4
 
typedef detail::uint64 mediump_u64
 
typedef detail::tvec1< u64,
-mediump > 
mediump_u64vec1
 
typedef detail::tvec2< u64,
-mediump > 
mediump_u64vec2
 
typedef detail::tvec3< u64,
-mediump > 
mediump_u64vec3
 
typedef detail::tvec4< u64,
-mediump > 
mediump_u64vec4
 
typedef detail::uint8 mediump_u8
 
typedef detail::tvec1< u8,
-mediump > 
mediump_u8vec1
 
typedef detail::tvec2< u8,
-mediump > 
mediump_u8vec2
 
typedef detail::tvec3< u8,
-mediump > 
mediump_u8vec3
 
typedef detail::tvec4< u8,
-mediump > 
mediump_u8vec4
 
typedef detail::uint16 mediump_uint16
 
typedef detail::uint16 mediump_uint16_t
 
typedef detail::uint32 mediump_uint32
 
typedef detail::uint32 mediump_uint32_t
 
typedef detail::uint64 mediump_uint64
 
typedef detail::uint64 mediump_uint64_t
 
typedef detail::uint8 mediump_uint8
 
typedef detail::uint8 mediump_uint8_t
 
typedef detail::tvec1< float,
-mediump > 
mediump_vec1
 
typedef detail::uint16 u16
 
typedef highp_u16vec1 u16vec1
 
typedef highp_u16vec2 u16vec2
 
typedef highp_u16vec3 u16vec3
 
typedef highp_u16vec4 u16vec4
 
typedef detail::uint32 u32
 
typedef highp_u32vec1 u32vec1
 
typedef highp_u32vec2 u32vec2
 
typedef highp_u32vec3 u32vec3
 
typedef highp_u32vec4 u32vec4
 
typedef detail::uint64 u64
 
typedef highp_u64vec1 u64vec1
 
typedef highp_u64vec2 u64vec2
 
typedef highp_u64vec3 u64vec3
 
typedef highp_u64vec4 u64vec4
 
typedef detail::uint8 u8
 
typedef highp_u8vec1 u8vec1
 
typedef highp_u8vec2 u8vec2
 
typedef highp_u8vec3 u8vec3
 
typedef highp_u8vec4 u8vec4
 
typedef detail::uint16 uint16
 
typedef detail::uint16 uint16_t
 
typedef detail::uint32 uint32
 
typedef detail::uint32 uint32_t
 
typedef detail::uint64 uint64
 
typedef detail::uint64 uint64_t
 
typedef detail::uint8 uint8
 
typedef detail::uint8 uint8_t
 

+Functions

template<typename T , typename U >
GLM_FUNC_DECL U associatedMax (T x, U a, T y, U b)
 
template<typename T , typename U , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL tvec2< U, P > associatedMax (vecType< T, P > const &x, vecType< U, P > const &a, vecType< T, P > const &y, vecType< U, P > const &b)
 
template<typename T , typename U , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > associatedMax (T x, vecType< U, P > const &a, T y, vecType< U, P > const &b)
 
template<typename T , typename U , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< U, P > associatedMax (vecType< T, P > const &x, U a, vecType< T, P > const &y, U b)
 
template<typename T , typename U >
GLM_FUNC_DECL U associatedMax (T x, U a, T y, U b, T z, U c)
 
template<typename T , typename U , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< U, P > associatedMax (vecType< T, P > const &x, vecType< U, P > const &a, vecType< T, P > const &y, vecType< U, P > const &b, vecType< T, P > const &z, vecType< U, P > const &c)
 
template<typename T , typename U , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > associatedMax (T x, vecType< U, P > const &a, T y, vecType< U, P > const &b, T z, vecType< U, P > const &c)
 
template<typename T , typename U , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< U, P > associatedMax (vecType< T, P > const &x, U a, vecType< T, P > const &y, U b, vecType< T, P > const &z, U c)
 
template<typename T , typename U >
GLM_FUNC_DECL U associatedMax (T x, U a, T y, U b, T z, U c, T w, U d)
 
template<typename T , typename U , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< U, P > associatedMax (vecType< T, P > const &x, vecType< U, P > const &a, vecType< T, P > const &y, vecType< U, P > const &b, vecType< T, P > const &z, vecType< U, P > const &c, vecType< T, P > const &w, vecType< U, P > const &d)
 
template<typename T , typename U , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< U, P > associatedMax (T x, vecType< U, P > const &a, T y, vecType< U, P > const &b, T z, vecType< U, P > const &c, T w, vecType< U, P > const &d)
 
template<typename T , typename U , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< U, P > associatedMax (vecType< T, P > const &x, U a, vecType< T, P > const &y, U b, vecType< T, P > const &z, U c, vecType< T, P > const &w, U d)
 
template<typename T , typename U , precision P>
GLM_FUNC_DECL U associatedMin (T x, U a, T y, U b)
 
template<typename T , typename U , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL tvec2< U, P > associatedMin (vecType< T, P > const &x, vecType< U, P > const &a, vecType< T, P > const &y, vecType< U, P > const &b)
 
template<typename T , typename U , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< U, P > associatedMin (T x, const vecType< U, P > &a, T y, const vecType< U, P > &b)
 
template<typename T , typename U , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< U, P > associatedMin (vecType< T, P > const &x, U a, vecType< T, P > const &y, U b)
 
template<typename T , typename U >
GLM_FUNC_DECL U associatedMin (T x, U a, T y, U b, T z, U c)
 
template<typename T , typename U , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< U, P > associatedMin (vecType< T, P > const &x, vecType< U, P > const &a, vecType< T, P > const &y, vecType< U, P > const &b, vecType< T, P > const &z, vecType< U, P > const &c)
 
template<typename T , typename U >
GLM_FUNC_DECL U associatedMin (T x, U a, T y, U b, T z, U c, T w, U d)
 
template<typename T , typename U , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< U, P > associatedMin (vecType< T, P > const &x, vecType< U, P > const &a, vecType< T, P > const &y, vecType< U, P > const &b, vecType< T, P > const &z, vecType< U, P > const &c, vecType< T, P > const &w, vecType< U, P > const &d)
 
template<typename T , typename U , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< U, P > associatedMin (T x, vecType< U, P > const &a, T y, vecType< U, P > const &b, T z, vecType< U, P > const &c, T w, vecType< U, P > const &d)
 
template<typename T , typename U , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< U, P > associatedMin (vecType< T, P > const &x, U a, vecType< T, P > const &y, U b, vecType< T, P > const &z, U c, vecType< T, P > const &w, U d)
 

Detailed Description

-

Defines specific C++-based precision types.

-

Precision types defines types based on GLSL's precision qualifiers. This extension defines types based on explicitly-sized C++ data types.

-

<glm/gtc/type_precision.hpp> need to be included to use these functionalities.

-

Typedef Documentation

- +

Min and max functions that return associated values not the compared onces.

+

<glm/gtx/associated_min_max.hpp> need to be included to use these functionalities.

+

Function Documentation

+
- + + + + + + + + + + + + + + + + + + + + + + + + + + +
typedef float32 f32GLM_FUNC_DECL U glm::associatedMax (x,
a,
y,
b 
)
-

Default 32 bit single-precision floating-point scalar.

-

32 bit single-precision floating-point scalar.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1523 of file fwd.hpp.

+

Maximum comparison between 2 variables and returns 2 associated variable values.

+
See also
GLM_GTX_associated_min_max
- +
- + + + + + + + + + + + + + + + + + + + + + + + + + + +
typedef detail::tmat2x2< f32, defaultp > f32mat2GLM_FUNC_DECL tvec2<U, P> glm::associatedMax (vecType< T, P > const & x,
vecType< U, P > const & a,
vecType< T, P > const & y,
vecType< U, P > const & b 
)
-

Default single-precision floating-point 2x2 matrix.

-

Single-precision floating-point 1x1 matrix.

-
See Also
GLM_GTC_type_precision
-
-GLM_GTC_type_precision Single-precision floating-point 2x2 matrix.
-
-GLM_GTC_type_precision
- -

Definition at line 2475 of file fwd.hpp.

+

Maximum comparison between 2 variables and returns 2 associated variable values.

+
See also
GLM_GTX_associated_min_max
- +
- + + + + + + + + + + + + + + + + + + + + + + + + + + +
typedef detail::tmat2x2< f32, defaultp > f32mat2x2GLM_FUNC_DECL vecType<T, P> glm::associatedMax (x,
vecType< U, P > const & a,
y,
vecType< U, P > const & b 
)
-

Default single-precision floating-point 2x2 matrix.

-

Single-precision floating-point 1x1 matrix.

-
See Also
GLM_GTC_type_precision
-
-GLM_GTC_type_precision Single-precision floating-point 2x2 matrix.
-
-GLM_GTC_type_precision
- -

Definition at line 2439 of file fwd.hpp.

+

Maximum comparison between 2 variables and returns 2 associated variable values.

+
See also
GLM_GTX_associated_min_max
- +
- + + + + + + + + + + + + + + + + + + + + + + + + + + +
typedef detail::tmat2x3< f32, defaultp > f32mat2x3GLM_FUNC_DECL vecType<U, P> glm::associatedMax (vecType< T, P > const & x,
a,
vecType< T, P > const & y,
b 
)
-

Default single-precision floating-point 2x3 matrix.

-

Single-precision floating-point 2x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2443 of file fwd.hpp.

+

Maximum comparison between 2 variables and returns 2 associated variable values.

+
See also
GLM_GTX_associated_min_max
- +
- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
typedef detail::tmat2x4< f32, defaultp > f32mat2x4GLM_FUNC_DECL U glm::associatedMax (x,
a,
y,
b,
z,
c 
)
-

Default single-precision floating-point 2x4 matrix.

-

Single-precision floating-point 2x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2447 of file fwd.hpp.

+

Maximum comparison between 3 variables and returns 3 associated variable values.

+
See also
GLM_GTX_associated_min_max
- +
- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
typedef detail::tmat3x3< f32, defaultp > f32mat3GLM_FUNC_DECL vecType<U, P> glm::associatedMax (vecType< T, P > const & x,
vecType< U, P > const & a,
vecType< T, P > const & y,
vecType< U, P > const & b,
vecType< T, P > const & z,
vecType< U, P > const & c 
)
-

Default single-precision floating-point 3x3 matrix.

-

Single-precision floating-point 3x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2479 of file fwd.hpp.

+

Maximum comparison between 3 variables and returns 3 associated variable values.

+
See also
GLM_GTX_associated_min_max
- +
- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
typedef detail::tmat3x2< f32, defaultp > f32mat3x2GLM_FUNC_DECL vecType<T, P> glm::associatedMax (x,
vecType< U, P > const & a,
y,
vecType< U, P > const & b,
z,
vecType< U, P > const & c 
)
-

Default single-precision floating-point 3x2 matrix.

-

Single-precision floating-point 3x2 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2451 of file fwd.hpp.

+

Maximum comparison between 3 variables and returns 3 associated variable values.

+
See also
GLM_GTX_associated_min_max
- +
- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
typedef detail::tmat3x3< f32, defaultp > f32mat3x3GLM_FUNC_DECL vecType<U, P> glm::associatedMax (vecType< T, P > const & x,
a,
vecType< T, P > const & y,
b,
vecType< T, P > const & z,
c 
)
-

Default single-precision floating-point 3x3 matrix.

-

Single-precision floating-point 3x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2455 of file fwd.hpp.

+

Maximum comparison between 3 variables and returns 3 associated variable values.

+
See also
GLM_GTX_associated_min_max
- +
- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
typedef detail::tmat3x4< f32, defaultp > f32mat3x4GLM_FUNC_DECL U glm::associatedMax (x,
a,
y,
b,
z,
c,
w,
d 
)
-

Default single-precision floating-point 3x4 matrix.

-

Single-precision floating-point 3x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2459 of file fwd.hpp.

+

Maximum comparison between 4 variables and returns 4 associated variable values.

+
See also
GLM_GTX_associated_min_max
- +
- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
typedef detail::tmat4x4< f32, defaultp > f32mat4GLM_FUNC_DECL vecType<U, P> glm::associatedMax (vecType< T, P > const & x,
vecType< U, P > const & a,
vecType< T, P > const & y,
vecType< U, P > const & b,
vecType< T, P > const & z,
vecType< U, P > const & c,
vecType< T, P > const & w,
vecType< U, P > const & d 
)
-

Default single-precision floating-point 4x4 matrix.

-

Single-precision floating-point 4x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2483 of file fwd.hpp.

+

Maximum comparison between 4 variables and returns 4 associated variable values.

+
See also
GLM_GTX_associated_min_max
- +
- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
typedef detail::tmat4x2< f32, defaultp > f32mat4x2GLM_FUNC_DECL vecType<U, P> glm::associatedMax (x,
vecType< U, P > const & a,
y,
vecType< U, P > const & b,
z,
vecType< U, P > const & c,
w,
vecType< U, P > const & d 
)
-

Default single-precision floating-point 4x2 matrix.

-

Single-precision floating-point 4x2 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2463 of file fwd.hpp.

+

Maximum comparison between 4 variables and returns 4 associated variable values.

+
See also
GLM_GTX_associated_min_max
- +
- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
typedef detail::tmat4x3< f32, defaultp > f32mat4x3GLM_FUNC_DECL vecType<U, P> glm::associatedMax (vecType< T, P > const & x,
a,
vecType< T, P > const & y,
b,
vecType< T, P > const & z,
c,
vecType< T, P > const & w,
d 
)
-

Default single-precision floating-point 4x3 matrix.

-

Single-precision floating-point 4x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2467 of file fwd.hpp.

+

Maximum comparison between 4 variables and returns 4 associated variable values.

+
See also
GLM_GTX_associated_min_max
- +
- + + + + + + + + + + + + + + + + + + + + + + + + + + +
typedef detail::tmat4x4< f32, defaultp > f32mat4x4GLM_FUNC_DECL U glm::associatedMin (x,
a,
y,
b 
)
-

Default single-precision floating-point 4x4 matrix.

-

Single-precision floating-point 4x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2471 of file fwd.hpp.

+

Minimum comparison between 2 variables and returns 2 associated variable values.

+
See also
GLM_GTX_associated_min_max
- +
- + + + + + + + + + + + + + + + + + + + + + + + + + + +
typedef detail::tquat< f32, defaultp > f32quatGLM_FUNC_DECL tvec2<U, P> glm::associatedMin (vecType< T, P > const & x,
vecType< U, P > const & a,
vecType< T, P > const & y,
vecType< U, P > const & b 
)
-

Default single-precision floating-point quaternion.

-

Single-precision floating-point quaternion.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2487 of file fwd.hpp.

+

Minimum comparison between 2 variables and returns 2 associated variable values.

+
See also
GLM_GTX_associated_min_max
- +
- + + + + + + + + + + + + + + + + + + + + + + + + + + +
typedef detail::tvec1< f32, defaultp > f32vec1GLM_FUNC_DECL vecType<U, P> glm::associatedMin (x,
const vecType< U, P > & a,
y,
const vecType< U, P > & b 
)
-

Default single-precision floating-point vector of 1 components.

-

Single-precision floating-point vector of 1 component.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2423 of file fwd.hpp.

+

Minimum comparison between 2 variables and returns 2 associated variable values.

+
See also
GLM_GTX_associated_min_max
- +
- + + + + + + + + + + + + + + + + + + + + + + + + + + +
typedef detail::tvec2< f32, defaultp > f32vec2GLM_FUNC_DECL vecType<U, P> glm::associatedMin (vecType< T, P > const & x,
a,
vecType< T, P > const & y,
b 
)
-

Default single-precision floating-point vector of 2 components.

-

Single-precision floating-point vector of 2 components.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2427 of file fwd.hpp.

+

Minimum comparison between 2 variables and returns 2 associated variable values.

+
See also
GLM_GTX_associated_min_max
- +
- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
typedef detail::tvec3< f32, defaultp > f32vec3GLM_FUNC_DECL U glm::associatedMin (x,
a,
y,
b,
z,
c 
)
-

Default single-precision floating-point vector of 3 components.

-

Single-precision floating-point vector of 3 components.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2431 of file fwd.hpp.

+

Minimum comparison between 3 variables and returns 3 associated variable values.

+
See also
GLM_GTX_associated_min_max
- +
- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
typedef detail::tvec4< f32, defaultp > f32vec4GLM_FUNC_DECL vecType<U, P> glm::associatedMin (vecType< T, P > const & x,
vecType< U, P > const & a,
vecType< T, P > const & y,
vecType< U, P > const & b,
vecType< T, P > const & z,
vecType< U, P > const & c 
)
-

Default single-precision floating-point vector of 4 components.

-

Single-precision floating-point vector of 4 components.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2435 of file fwd.hpp.

+

Minimum comparison between 3 variables and returns 3 associated variable values.

+
See also
GLM_GTX_associated_min_max
- +
- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
typedef float64 f64GLM_FUNC_DECL U glm::associatedMin (x,
a,
y,
b,
z,
c,
w,
d 
)
-

Default 64 bit double-precision floating-point scalar.

-

64 bit double-precision floating-point scalar.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1527 of file fwd.hpp.

+

Minimum comparison between 4 variables and returns 4 associated variable values.

+
See also
GLM_GTX_associated_min_max
- +
- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
typedef detail::tmat2x2< f64, defaultp > f64mat2GLM_FUNC_DECL vecType<U, P> glm::associatedMin (vecType< T, P > const & x,
vecType< U, P > const & a,
vecType< T, P > const & y,
vecType< U, P > const & b,
vecType< T, P > const & z,
vecType< U, P > const & c,
vecType< T, P > const & w,
vecType< U, P > const & d 
)
-

Default double-precision floating-point 2x2 matrix.

-

Double-precision floating-point 1x1 matrix.

-
See Also
GLM_GTC_type_precision
-
-GLM_GTC_type_precision Double-precision floating-point 2x2 matrix.
-
-GLM_GTC_type_precision
- -

Definition at line 2582 of file fwd.hpp.

+

Minimum comparison between 4 variables and returns 4 associated variable values.

+
See also
GLM_GTX_associated_min_max
- +
- + + + + -
typedef detail::tmat2x2< f64, defaultp > f64mat2x2GLM_FUNC_DECL vecType<U, P> glm::associatedMin (x,
-
- -

Default double-precision floating-point 2x2 matrix.

-

Double-precision floating-point 1x1 matrix.

-
See Also
GLM_GTC_type_precision
-
-GLM_GTC_type_precision Double-precision floating-point 2x2 matrix.
-
-GLM_GTC_type_precision
- -

Definition at line 2546 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x3< f64, defaultp > f64mat2x3
-
- -

Default double-precision floating-point 2x3 matrix.

-

Double-precision floating-point 2x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2550 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x4< f64, defaultp > f64mat2x4
-
- -

Default double-precision floating-point 2x4 matrix.

-

Double-precision floating-point 2x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2554 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x3< f64, defaultp > f64mat3
-
- -

Default double-precision floating-point 3x3 matrix.

-

Double-precision floating-point 3x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2586 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x2< f64, defaultp > f64mat3x2
-
- -

Default double-precision floating-point 3x2 matrix.

-

Double-precision floating-point 3x2 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2558 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x3< f64, defaultp > f64mat3x3
-
- -

Default double-precision floating-point 3x3 matrix.

-

Double-precision floating-point 3x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2562 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x4< f64, defaultp > f64mat3x4
-
- -

Default double-precision floating-point 3x4 matrix.

-

Double-precision floating-point 3x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2566 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x4< f64, defaultp > f64mat4
-
- -

Default double-precision floating-point 4x4 matrix.

-

Double-precision floating-point 4x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2590 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x2< f64, defaultp > f64mat4x2
-
- -

Default double-precision floating-point 4x2 matrix.

-

Double-precision floating-point 4x2 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2570 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x3< f64, defaultp > f64mat4x3
-
- -

Default double-precision floating-point 4x3 matrix.

-

Double-precision floating-point 4x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2574 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x4< f64, defaultp > f64mat4x4
-
- -

Default double-precision floating-point 4x4 matrix.

-

Double-precision floating-point 4x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2578 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tquat< f64, defaultp > f64quat
-
- -

Default double-precision floating-point quaternion.

-

Double-precision floating-point quaternion.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2594 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec1< f64, defaultp > f64vec1
-
- -

Default double-precision floating-point vector of 1 components.

-

Double-precision floating-point vector of 1 component.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2530 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2< f64, defaultp > f64vec2
-
- -

Default double-precision floating-point vector of 2 components.

-

Double-precision floating-point vector of 2 components.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2534 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3< f64, defaultp > f64vec3
-
- -

Default double-precision floating-point vector of 3 components.

-

Double-precision floating-point vector of 3 components.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2538 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4< f64, defaultp > f64vec4
-
- -

Default double-precision floating-point vector of 4 components.

-

Double-precision floating-point vector of 4 components.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2542 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::float32 float32
-
- -

Default 32 bit single-precision floating-point scalar.

-

32 bit single-precision floating-point scalar.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 81 of file type_float.hpp.

- -
-
- -
-
- - - - -
typedef detail::float32 float32_t
-
- -

Default 32 bit single-precision floating-point scalar.

-

32 bit single-precision floating-point scalar.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1515 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::float64 float64
-
- -

Default 64 bit double-precision floating-point scalar.

-

64 bit double-precision floating-point scalar.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 82 of file type_float.hpp.

- -
-
- -
-
- - - - -
typedef detail::float64 float64_t
-
- -

Default 64 bit double-precision floating-point scalar.

-

64 bit double-precision floating-point scalar.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1519 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x2< f32, defaultp > fmat2
-
- -

Default single-precision floating-point 2x2 matrix.

-

Single-precision floating-point 1x1 matrix.

-
See Also
GLM_GTC_type_precision
-
-GLM_GTC_type_precision Single-precision floating-point 2x2 matrix.
-
-GLM_GTC_type_precision
- -

Definition at line 2405 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x2< f32, defaultp > fmat2x2
-
- -

Default single-precision floating-point 2x2 matrix.

-

Single-precision floating-point 1x1 matrix.

-
See Also
GLM_GTC_type_precision
-
-GLM_GTC_type_precision Single-precision floating-point 2x2 matrix.
-
-GLM_GTC_type_precision
- -

Definition at line 2369 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x3< f32, defaultp > fmat2x3
-
- -

Default single-precision floating-point 2x3 matrix.

-

Single-precision floating-point 2x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2373 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x4< f32, defaultp > fmat2x4
-
- -

Default single-precision floating-point 2x4 matrix.

-

Single-precision floating-point 2x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2377 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x3< f32, defaultp > fmat3
-
- -

Default single-precision floating-point 3x3 matrix.

-

Single-precision floating-point 3x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2409 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x2< f32, defaultp > fmat3x2
-
- -

Default single-precision floating-point 3x2 matrix.

-

Single-precision floating-point 3x2 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2381 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x3< f32, defaultp > fmat3x3
-
- -

Default single-precision floating-point 3x3 matrix.

-

Single-precision floating-point 3x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2385 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x4< f32, defaultp > fmat3x4
-
- -

Default single-precision floating-point 3x4 matrix.

-

Single-precision floating-point 3x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2389 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x4< f32, defaultp > fmat4
-
- -

Default single-precision floating-point 4x4 matrix.

-

Single-precision floating-point 4x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2413 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x2< f32, defaultp > fmat4x2
-
- -

Default single-precision floating-point 4x2 matrix.

-

Single-precision floating-point 4x2 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2393 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x3< f32, defaultp > fmat4x3
-
- -

Default single-precision floating-point 4x3 matrix.

-

Single-precision floating-point 4x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2397 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x4< f32, defaultp > fmat4x4
-
- -

Default single-precision floating-point 4x4 matrix.

-

Single-precision floating-point 4x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2401 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef highp_fquat fquat
-
- -

Quaternion of default single-precision floating-point numbers.

-

Default single-precision floating-point quaternion.

-
See Also
GLM_GTC_quaternion
-
-GLM_GTC_type_precision
- -

Definition at line 90 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec1< float, defaultp > fvec1
-
- -

Default single-precision floating-point vector of 1 components.

-

Single-precision floating-point vector of 1 component.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2353 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2< float, defaultp > fvec2
-
- -

Default single-precision floating-point vector of 2 components.

-

Single-precision floating-point vector of 2 components.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2357 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3< float, defaultp > fvec3
-
- -

Default single-precision floating-point vector of 3 components.

-

Single-precision floating-point vector of 3 components.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2361 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4< float, defaultp > fvec4
-
- -

Default single-precision floating-point vector of 4 components.

-

Single-precision floating-point vector of 4 components.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2365 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef float32 highp_f32
-
- -

High 32 bit single-precision floating-point scalar.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1445 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef highp_f32mat2x2 highp_f32mat2
-
- -

High single-precision floating-point 1x1 matrix.

-
See Also
GLM_GTC_type_precision High single-precision floating-point 2x2 matrix.
-
-GLM_GTC_type_precision
- -

Definition at line 2068 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x2<f32, highp> highp_f32mat2x2
-
- -

High single-precision floating-point 1x1 matrix.

-
See Also
GLM_GTC_type_precision High single-precision floating-point 2x2 matrix.
-
-GLM_GTC_type_precision
- -

Definition at line 2028 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x3<f32, highp> highp_f32mat2x3
-
- -

High single-precision floating-point 2x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2032 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x4<f32, highp> highp_f32mat2x4
-
- -

High single-precision floating-point 2x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2036 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef highp_f32mat3x3 highp_f32mat3
-
- -

High single-precision floating-point 3x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2072 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x2<f32, highp> highp_f32mat3x2
-
- -

High single-precision floating-point 3x2 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2040 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x3<f32, highp> highp_f32mat3x3
-
- -

High single-precision floating-point 3x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2044 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x4<f32, highp> highp_f32mat3x4
-
- -

High single-precision floating-point 3x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2048 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef highp_f32mat4x4 highp_f32mat4
-
- -

High single-precision floating-point 4x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2076 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x2<f32, highp> highp_f32mat4x2
-
- -

High single-precision floating-point 4x2 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2052 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x3<f32, highp> highp_f32mat4x3
-
- -

High single-precision floating-point 4x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2056 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x4<f32, highp> highp_f32mat4x4
-
- -

High single-precision floating-point 4x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2060 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tquat<f32, highp> highp_f32quat
-
- -

High single-precision floating-point quaternion.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2271 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec1<f32, highp> highp_f32vec1
-
- -

High single-precision floating-point vector of 1 component.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1666 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2<f32, highp> highp_f32vec2
-
- -

High single-precision floating-point vector of 2 components.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1670 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3<f32, highp> highp_f32vec3
-
- -

High single-precision floating-point vector of 3 components.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1674 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4<f32, highp> highp_f32vec4
-
- -

High single-precision floating-point vector of 4 components.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1678 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef float64 highp_f64
-
- -

High 64 bit double-precision floating-point scalar.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1449 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef highp_f64mat2x2 highp_f64mat2
-
- -

High double-precision floating-point 1x1 matrix.

-
See Also
GLM_GTC_type_precision High double-precision floating-point 2x2 matrix.
-
-GLM_GTC_type_precision
- -

Definition at line 2240 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x2<f64, highp> highp_f64mat2x2
-
- -

High double-precision floating-point 1x1 matrix.

-
See Also
GLM_GTC_type_precision High double-precision floating-point 2x2 matrix.
-
-GLM_GTC_type_precision
- -

Definition at line 2200 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x3<f64, highp> highp_f64mat2x3
-
- -

High double-precision floating-point 2x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2204 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x4<f64, highp> highp_f64mat2x4
-
- -

High double-precision floating-point 2x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2208 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef highp_f64mat3x3 highp_f64mat3
-
- -

High double-precision floating-point 3x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2244 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x2<f64, highp> highp_f64mat3x2
-
- -

High double-precision floating-point 3x2 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2212 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x3<f64, highp> highp_f64mat3x3
-
- -

High double-precision floating-point 3x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2216 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x4<f64, highp> highp_f64mat3x4
-
- -

High double-precision floating-point 3x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2220 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef highp_f64mat4x4 highp_f64mat4
-
- -

High double-precision floating-point 4x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2248 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x2<f64, highp> highp_f64mat4x2
-
- -

High double-precision floating-point 4x2 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2224 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x3<f64, highp> highp_f64mat4x3
-
- -

High double-precision floating-point 4x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2228 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x4<f64, highp> highp_f64mat4x4
-
- -

High double-precision floating-point 4x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2232 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tquat<f64, highp> highp_f64quat
-
- -

High double-precision floating-point quaternion.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2275 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec1<f64, highp> highp_f64vec1
-
- -

High double-precision floating-point vector of 1 component.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1715 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2<f64, highp> highp_f64vec2
-
- -

High double-precision floating-point vector of 2 components.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1719 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3<f64, highp> highp_f64vec3
-
- -

High double-precision floating-point vector of 3 components.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1723 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4<f64, highp> highp_f64vec4
-
- -

High double-precision floating-point vector of 4 components.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1727 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::float32 highp_float32
-
- -

High 32 bit single-precision floating-point scalar.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1429 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::float32 highp_float32_t
-
- -

High 32 bit single-precision floating-point scalar.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1437 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::float64 highp_float64
-
- -

High 64 bit double-precision floating-point scalar.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1433 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::float64 highp_float64_t
-
- -

High 64 bit double-precision floating-point scalar.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1441 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef highp_fmat2x2 highp_fmat2
-
- -

High single-precision floating-point 1x1 matrix.

-
See Also
GLM_GTC_type_precision High single-precision floating-point 2x2 matrix.
-
-GLM_GTC_type_precision
- -

Definition at line 1894 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x2<f32, highp> highp_fmat2x2
-
- -

High single-precision floating-point 1x1 matrix.

-
See Also
GLM_GTC_type_precision High single-precision floating-point 2x2 matrix.
-
-GLM_GTC_type_precision
- -

Definition at line 1854 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x3<f32, highp> highp_fmat2x3
-
- -

High single-precision floating-point 2x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1858 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x4<f32, highp> highp_fmat2x4
-
- -

High single-precision floating-point 2x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1862 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef highp_fmat3x3 highp_fmat3
-
- -

High single-precision floating-point 3x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1898 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x2<f32, highp> highp_fmat3x2
-
- -

High single-precision floating-point 3x2 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1866 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x3<f32, highp> highp_fmat3x3
-
- -

High single-precision floating-point 3x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1870 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x4<f32, highp> highp_fmat3x4
-
- -

High single-precision floating-point 3x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1874 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef highp_fmat4x4 highp_fmat4
-
- -

High single-precision floating-point 4x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1902 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x2<f32, highp> highp_fmat4x2
-
- -

High single-precision floating-point 4x2 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1878 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x3<f32, highp> highp_fmat4x3
-
- -

High single-precision floating-point 4x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1882 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x4<f32, highp> highp_fmat4x4
-
- -

High single-precision floating-point 4x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1886 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec1<float, highp> highp_fvec1
-
- -

High single-precision floating-point vector of 1 component.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1617 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2<float, highp> highp_fvec2
-
- -

High Single-precision floating-point vector of 2 components.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1621 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3<float, highp> highp_fvec3
-
- -

High Single-precision floating-point vector of 3 components.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1625 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4<float, highp> highp_fvec4
-
- -

High Single-precision floating-point vector of 4 components.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1629 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int16 highp_i16
-
- -

High precision 16 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 264 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec1<i16, highp> highp_i16vec1
-
- -

High precision 16 bit signed integer scalar type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 440 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2<i16, highp> highp_i16vec2
-
- -

High precision 16 bit signed integer vector of 2 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 444 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3<i16, highp> highp_i16vec3
-
- -

High precision 16 bit signed integer vector of 3 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 448 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4<i16, highp> highp_i16vec4
-
- -

High precision 16 bit signed integer vector of 4 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 452 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int32 highp_i32
-
- -

High precision 32 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 268 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec1< i32, highp > highp_i32vec1
-
- -

High precision 32 bit signed integer scalar type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 520 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2< i32, highp > highp_i32vec2
-
- -

High precision 32 bit signed integer vector of 2 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 524 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3< i32, highp > highp_i32vec3
-
- -

High precision 32 bit signed integer vector of 3 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 528 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4< i32, highp > highp_i32vec4
-
- -

High precision 32 bit signed integer vector of 4 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 532 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int64 highp_i64
-
- -

High precision 64 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 272 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec1<i64, highp> highp_i64vec1
-
- -

High precision 64 bit signed integer scalar type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 679 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2<i64, highp> highp_i64vec2
-
- -

High precision 64 bit signed integer vector of 2 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 683 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3<i64, highp> highp_i64vec3
-
- -

High precision 64 bit signed integer vector of 3 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 687 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4<i64, highp> highp_i64vec4
-
- -

High precision 64 bit signed integer vector of 4 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 691 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int8 highp_i8
-
- -

High precision 8 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 260 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec1<i8, highp> highp_i8vec1
-
- -

High precision 8 bit signed integer scalar type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 361 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2<i8, highp> highp_i8vec2
-
- -

High precision 8 bit signed integer vector of 2 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 365 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3<i8, highp> highp_i8vec3
-
- -

High precision 8 bit signed integer vector of 3 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 369 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4<i8, highp> highp_i8vec4
-
- -

High precision 8 bit signed integer vector of 4 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 373 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int16 highp_int16
-
- -

High precision 16 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 232 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int16 highp_int16_t
-
- -

High precision 16 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 248 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int32 highp_int32
-
- -

High precision 32 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 236 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int32 highp_int32_t
-
- -

32 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 252 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int64 highp_int64
-
- -

High precision 64 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 240 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int64 highp_int64_t
-
- -

High precision 64 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 256 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int8 highp_int8
-
- -

High precision 8 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 228 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int8 highp_int8_t
-
- -

High precision 8 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 244 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint16 highp_u16
-
- -

Medium precision 16 bit unsigned integer type.

-

High precision 16 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 865 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec1<u16, highp> highp_u16vec1
-
- -

High precision 16 bit unsigned integer scalar type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1043 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2<u16, highp> highp_u16vec2
-
- -

High precision 16 bit unsigned integer vector of 2 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1047 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3<u16, highp> highp_u16vec3
-
- -

High precision 16 bit unsigned integer vector of 3 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1051 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4<u16, highp> highp_u16vec4
-
- -

High precision 16 bit unsigned integer vector of 4 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1055 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint32 highp_u32
-
- -

Medium precision 32 bit unsigned integer type.

-

High precision 32 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 869 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec1< u32, highp > highp_u32vec1
-
- -

High precision 32 bit unsigned integer scalar type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1123 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2< u32, highp > highp_u32vec2
-
- -

High precision 32 bit unsigned integer vector of 2 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1127 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3< u32, highp > highp_u32vec3
-
- -

High precision 32 bit unsigned integer vector of 3 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1131 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4< u32, highp > highp_u32vec4
-
- -

High precision 32 bit unsigned integer vector of 4 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1135 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint64 highp_u64
-
- -

Medium precision 64 bit unsigned integer type.

-

High precision 64 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 873 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec1<u64, highp> highp_u64vec1
-
- -

High precision 64 bit unsigned integer scalar type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1282 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2<u64, highp> highp_u64vec2
-
- -

High precision 64 bit unsigned integer vector of 2 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1286 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3<u64, highp> highp_u64vec3
-
- -

High precision 64 bit unsigned integer vector of 3 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1290 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4<u64, highp> highp_u64vec4
-
- -

High precision 64 bit unsigned integer vector of 4 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1294 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint8 highp_u8
-
- -

Medium precision 8 bit unsigned integer type.

-

High precision 8 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 861 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec1<u8, highp> highp_u8vec1
-
- -

High precision 8 bit unsigned integer scalar type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 964 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2<u8, highp> highp_u8vec2
-
- -

High precision 8 bit unsigned integer vector of 2 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 968 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3<u8, highp> highp_u8vec3
-
- -

High precision 8 bit unsigned integer vector of 3 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 972 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4<u8, highp> highp_u8vec4
-
- -

High precision 8 bit unsigned integer vector of 4 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 976 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint16 highp_uint16
-
- -

Medium precision 16 bit unsigned integer type.

-

High precision 16 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 833 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint16 highp_uint16_t
-
- -

Medium precision 16 bit unsigned integer type.

-

High precision 16 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 849 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint32 highp_uint32
-
- -

Medium precision 32 bit unsigned integer type.

-

High precision 32 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 837 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint32 highp_uint32_t
-
- -

Medium precision 32 bit unsigned integer type.

-

High precision 32 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 853 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint64 highp_uint64
-
- -

Medium precision 64 bit unsigned integer type.

-

High precision 64 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 841 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint64 highp_uint64_t
-
- -

Medium precision 64 bit unsigned integer type.

-

High precision 64 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 857 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint8 highp_uint8
-
- -

Medium precision 8 bit unsigned integer type.

-

High precision 8 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 829 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint8 highp_uint8_t
-
- -

Medium precision 8 bit unsigned integer type.

-

High precision 8 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 845 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef highp_vec1_t highp_vec1
-
- -

High single-precision floating-point vector of 1 component.

-

1 component vector of high precision floating-point numbers.

-
See Also
GLM_GTC_type_precision
-

There is no guarantee on the actual precision.

-
See Also
GLM_GTX_vec1 extension.
- -

Definition at line 1601 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int16 i16
-
- -

16 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 313 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec1< i16, defaultp > i16vec1
-
- -

Default precision 16 bit signed integer scalar type.

-

16 bit signed integer scalar type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 468 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2< i16, defaultp > i16vec2
-
- -

Default precision 16 bit signed integer vector of 2 components type.

-

16 bit signed integer vector of 2 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 472 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3< i16, defaultp > i16vec3
-
- -

Default precision 16 bit signed integer vector of 3 components type.

-

16 bit signed integer vector of 3 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 476 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4< i16, defaultp > i16vec4
-
- -

Default precision 16 bit signed integer vector of 4 components type.

-

16 bit signed integer vector of 4 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 480 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int32 i32
-
- -

32 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 317 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec1< i32, defaultp > i32vec1
-
- -

Default precision 32 bit signed integer scalar type.

-

32 bit signed integer scalar type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 547 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2< i32, defaultp > i32vec2
-
- -

Default precision 32 bit signed integer vector of 2 components type.

-

32 bit signed integer vector of 2 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 551 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3< i32, defaultp > i32vec3
-
- -

Default precision 32 bit signed integer vector of 3 components type.

-

32 bit signed integer vector of 3 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 555 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4< i32, defaultp > i32vec4
-
- -

Default precision 32 bit signed integer vector of 4 components type.

-

32 bit signed integer vector of 4 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 559 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int64 i64
-
- -

64 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 321 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec1< i64, defaultp > i64vec1
-
- -

Default precision 64 bit signed integer scalar type.

-

64 bit signed integer scalar type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 706 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2< i64, defaultp > i64vec2
-
- -

Default precision 64 bit signed integer vector of 2 components type.

-

64 bit signed integer vector of 2 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 710 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3< i64, defaultp > i64vec3
-
- -

Default precision 64 bit signed integer vector of 3 components type.

-

64 bit signed integer vector of 3 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 714 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4< i64, defaultp > i64vec4
-
- -

Default precision 64 bit signed integer vector of 4 components type.

-

64 bit signed integer vector of 4 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 718 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int8 i8
-
- -

8 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 309 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec1< i8, defaultp > i8vec1
-
- -

Default precision 8 bit signed integer scalar type.

-

8 bit signed integer scalar type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 388 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2< i8, defaultp > i8vec2
-
- -

Default precision 8 bit signed integer vector of 2 components type.

-

8 bit signed integer vector of 2 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 392 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3< i8, defaultp > i8vec3
-
- -

Default precision 8 bit signed integer vector of 3 components type.

-

8 bit signed integer vector of 3 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 396 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4< i8, defaultp > i8vec4
-
- -

Default precision 8 bit signed integer vector of 4 components type.

-

8 bit signed integer vector of 4 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 400 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int16 int16
-
- -

16 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 90 of file type_int.hpp.

- -
-
- -
-
- - - - -
typedef detail::int16 int16_t
-
- -

16 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 297 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int32 int32
-
- -

32 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 91 of file type_int.hpp.

- -
-
- -
-
- - - - -
typedef detail::int32 int32_t
-
- -

32 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 301 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int64 int64
-
- -

64 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 92 of file type_int.hpp.

- -
-
- -
-
- - - - -
typedef detail::int64 int64_t
-
- -

64 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 305 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int8 int8
-
- -

8 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 89 of file type_int.hpp.

- -
-
- -
-
- - - - -
typedef detail::int8 int8_t
-
- -

8 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 293 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef float32 lowp_f32
-
- -

Low 32 bit single-precision floating-point scalar.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1346 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef lowp_f32mat2x2 lowp_f32mat2
-
- -

Low single-precision floating-point 1x1 matrix.

-
See Also
GLM_GTC_type_precision Low single-precision floating-point 2x2 matrix.
-
-GLM_GTC_type_precision
- -

Definition at line 1951 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x2<f32, lowp> lowp_f32mat2x2
-
- -

Low single-precision floating-point 1x1 matrix.

-
See Also
GLM_GTC_type_precision Low single-precision floating-point 2x2 matrix.
-
-GLM_GTC_type_precision
- -

Definition at line 1911 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x3<f32, lowp> lowp_f32mat2x3
-
- -

Low single-precision floating-point 2x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1915 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x4<f32, lowp> lowp_f32mat2x4
-
- -

Low single-precision floating-point 2x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1919 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef lowp_f32mat3x3 lowp_f32mat3
-
- -

Low single-precision floating-point 3x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1955 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x2<f32, lowp> lowp_f32mat3x2
-
- -

Low single-precision floating-point 3x2 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1923 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x3<f32, lowp> lowp_f32mat3x3
-
- -

Low single-precision floating-point 3x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1927 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x4<f32, lowp> lowp_f32mat3x4
-
- -

Low single-precision floating-point 3x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1931 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef lowp_f32mat4x4 lowp_f32mat4
-
- -

Low single-precision floating-point 4x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1959 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x2<f32, lowp> lowp_f32mat4x2
-
- -

Low single-precision floating-point 4x2 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1935 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x3<f32, lowp> lowp_f32mat4x3
-
- -

Low single-precision floating-point 4x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1939 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x4<f32, lowp> lowp_f32mat4x4
-
- -

Low single-precision floating-point 4x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1943 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tquat<f32, lowp> lowp_f32quat
-
- -

Low single-precision floating-point quaternion.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2255 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec1<f32, lowp> lowp_f32vec1
-
- -

Low single-precision floating-point vector of 1 component.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1634 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2<f32, lowp> lowp_f32vec2
-
- -

Low single-precision floating-point vector of 2 components.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1638 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3<f32, lowp> lowp_f32vec3
-
- -

Low single-precision floating-point vector of 3 components.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1642 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4<f32, lowp> lowp_f32vec4
-
- -

Low single-precision floating-point vector of 4 components.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1646 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef float64 lowp_f64
-
- -

Low 64 bit double-precision floating-point scalar.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1350 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef lowp_f64mat2x2 lowp_f64mat2
-
- -

Low double-precision floating-point 1x1 matrix.

-
See Also
GLM_GTC_type_precision Low double-precision floating-point 2x2 matrix.
-
-GLM_GTC_type_precision
- -

Definition at line 2126 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x2<f64, lowp> lowp_f64mat2x2
-
- -

Low double-precision floating-point 1x1 matrix.

-
See Also
GLM_GTC_type_precision Low double-precision floating-point 2x2 matrix.
-
-GLM_GTC_type_precision
- -

Definition at line 2086 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x3<f64, lowp> lowp_f64mat2x3
-
- -

Low double-precision floating-point 2x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2090 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x4<f64, lowp> lowp_f64mat2x4
-
- -

Low double-precision floating-point 2x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2094 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef lowp_f64mat3x3 lowp_f64mat3
-
- -

Low double-precision floating-point 3x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2130 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x2<f64, lowp> lowp_f64mat3x2
-
- -

Low double-precision floating-point 3x2 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2098 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x3<f64, lowp> lowp_f64mat3x3
-
- -

Low double-precision floating-point 3x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2102 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x4<f64, lowp> lowp_f64mat3x4
-
- -

Low double-precision floating-point 3x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2106 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef lowp_f64mat4x4 lowp_f64mat4
-
- -

Low double-precision floating-point 4x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2134 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x2<f64, lowp> lowp_f64mat4x2
-
- -

Low double-precision floating-point 4x2 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2110 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x3<f64, lowp> lowp_f64mat4x3
-
- -

Low double-precision floating-point 4x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2114 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x4<f64, lowp> lowp_f64mat4x4
-
- -

Low double-precision floating-point 4x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2118 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tquat<f64, lowp> lowp_f64quat
-
- -

Low double-precision floating-point quaternion.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2259 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec1<f64, lowp> lowp_f64vec1
-
- -

Low double-precision floating-point vector of 1 component.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1683 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2<f64, lowp> lowp_f64vec2
-
- -

Low double-precision floating-point vector of 2 components.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1687 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3<f64, lowp> lowp_f64vec3
-
- -

Low double-precision floating-point vector of 3 components.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1691 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4<f64, lowp> lowp_f64vec4
-
- -

Low double-precision floating-point vector of 4 components.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1695 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::float32 lowp_float32
-
- -

Low 32 bit single-precision floating-point scalar.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1330 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::float32 lowp_float32_t
-
- -

Low 32 bit single-precision floating-point scalar.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1338 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::float64 lowp_float64
-
- -

Low 64 bit double-precision floating-point scalar.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1334 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::float64 lowp_float64_t
-
- -

Low 64 bit double-precision floating-point scalar.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1342 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef lowp_fmat2x2 lowp_fmat2
-
- -

Low single-precision floating-point 1x1 matrix.

-
See Also
GLM_GTC_type_precision Low single-precision floating-point 2x2 matrix.
-
-GLM_GTC_type_precision
- -

Definition at line 1779 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x2<f32, lowp> lowp_fmat2x2
-
- -

Low single-precision floating-point 1x1 matrix.

-
See Also
GLM_GTC_type_precision Low single-precision floating-point 2x2 matrix.
-
-GLM_GTC_type_precision
- -

Definition at line 1739 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x3<f32, lowp> lowp_fmat2x3
-
- -

Low single-precision floating-point 2x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1743 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x4<f32, lowp> lowp_fmat2x4
-
- -

Low single-precision floating-point 2x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1747 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef lowp_fmat3x3 lowp_fmat3
-
- -

Low single-precision floating-point 3x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1783 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x2<f32, lowp> lowp_fmat3x2
-
- -

Low single-precision floating-point 3x2 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1751 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x3<f32, lowp> lowp_fmat3x3
-
- -

Low single-precision floating-point 3x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1755 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x4<f32, lowp> lowp_fmat3x4
-
- -

Low single-precision floating-point 3x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1759 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef lowp_fmat4x4 lowp_fmat4
-
- -

Low single-precision floating-point 4x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1787 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x2<f32, lowp> lowp_fmat4x2
-
- -

Low single-precision floating-point 4x2 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1763 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x3<f32, lowp> lowp_fmat4x3
-
- -

Low single-precision floating-point 4x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1767 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x4<f32, lowp> lowp_fmat4x4
-
- -

Low single-precision floating-point 4x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1771 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec1<float, lowp> lowp_fvec1
-
- -

Low single-precision floating-point vector of 1 component.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1549 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2<float, lowp> lowp_fvec2
-
- -

Low single-precision floating-point vector of 2 components.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1553 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3<float, lowp> lowp_fvec3
-
- -

Low single-precision floating-point vector of 3 components.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1557 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4<float, lowp> lowp_fvec4
-
- -

Low single-precision floating-point vector of 4 components.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1561 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int16 lowp_i16
-
- -

Low precision 16 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 168 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec1<i16, lowp> lowp_i16vec1
-
- -

Low precision 16 bit signed integer scalar type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 406 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2<i16, lowp> lowp_i16vec2
-
- -

Low precision 16 bit signed integer vector of 2 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 410 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3<i16, lowp> lowp_i16vec3
-
- -

Low precision 16 bit signed integer vector of 3 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 414 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4<i16, lowp> lowp_i16vec4
-
- -

Low precision 16 bit signed integer vector of 4 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 418 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int32 lowp_i32
-
- -

Low precision 32 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 172 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec1< i32, lowp > lowp_i32vec1
-
- -

Low precision 32 bit signed integer scalar type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 486 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2< i32, lowp > lowp_i32vec2
-
- -

Low precision 32 bit signed integer vector of 2 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 490 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3< i32, lowp > lowp_i32vec3
-
- -

Low precision 32 bit signed integer vector of 3 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 494 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4< i32, lowp > lowp_i32vec4
-
- -

Low precision 32 bit signed integer vector of 4 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 498 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int64 lowp_i64
-
- -

Low precision 64 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 176 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec1<i64, lowp> lowp_i64vec1
-
- -

Low precision 64 bit signed integer scalar type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 645 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2<i64, lowp> lowp_i64vec2
-
- -

Low precision 64 bit signed integer vector of 2 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 649 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3<i64, lowp> lowp_i64vec3
-
- -

Low precision 64 bit signed integer vector of 3 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 653 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4<i64, lowp> lowp_i64vec4
-
- -

Low precision 64 bit signed integer vector of 4 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 657 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int8 lowp_i8
-
- -

Low precision 8 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 164 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec1<i8, lowp> lowp_i8vec1
-
- -

Low precision 8 bit signed integer scalar type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 327 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2<i8, lowp> lowp_i8vec2
-
- -

Low precision 8 bit signed integer vector of 2 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 331 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3<i8, lowp> lowp_i8vec3
-
- -

Low precision 8 bit signed integer vector of 3 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 335 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4<i8, lowp> lowp_i8vec4
-
- -

Low precision 8 bit signed integer vector of 4 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 339 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int16 lowp_int16
-
- -

Low precision 16 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 136 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int16 lowp_int16_t
-
- -

Low precision 16 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 152 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int32 lowp_int32
-
- -

Low precision 32 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 140 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int32 lowp_int32_t
-
- -

Low precision 32 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 156 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int64 lowp_int64
-
- -

Low precision 64 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 144 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int64 lowp_int64_t
-
- -

Low precision 64 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 160 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int8 lowp_int8
-
- -

Low precision 8 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 132 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int8 lowp_int8_t
-
- -

Low precision 8 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 148 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint16 lowp_u16
-
- -

Low precision 16 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 765 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec1<u16, lowp> lowp_u16vec1
-
- -

Low precision 16 bit unsigned integer scalar type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1009 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2<u16, lowp> lowp_u16vec2
-
- -

Low precision 16 bit unsigned integer vector of 2 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1013 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3<u16, lowp> lowp_u16vec3
-
- -

Low precision 16 bit unsigned integer vector of 3 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1017 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4<u16, lowp> lowp_u16vec4
-
- -

Low precision 16 bit unsigned integer vector of 4 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1021 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint32 lowp_u32
-
- -

Low precision 32 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 769 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec1< u32, lowp > lowp_u32vec1
-
- -

Low precision 32 bit unsigned integer scalar type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1089 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2< u32, lowp > lowp_u32vec2
-
- -

Low precision 32 bit unsigned integer vector of 2 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1093 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3< u32, lowp > lowp_u32vec3
-
- -

Low precision 32 bit unsigned integer vector of 3 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1097 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4< u32, lowp > lowp_u32vec4
-
- -

Low precision 32 bit unsigned integer vector of 4 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1101 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint64 lowp_u64
-
- -

Low precision 64 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 773 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec1<u64, lowp> lowp_u64vec1
-
- -

Low precision 64 bit unsigned integer scalar type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1248 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2<u64, lowp> lowp_u64vec2
-
- -

Low precision 64 bit unsigned integer vector of 2 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1252 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3<u64, lowp> lowp_u64vec3
-
- -

Low precision 64 bit unsigned integer vector of 3 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1256 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4<u64, lowp> lowp_u64vec4
-
- -

Low precision 64 bit unsigned integer vector of 4 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1260 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint8 lowp_u8
-
- -

Low precision 8 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 761 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec1<u8, lowp> lowp_u8vec1
-
- -

Low precision 8 bit unsigned integer scalar type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 930 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2<u8, lowp> lowp_u8vec2
-
- -

Low precision 8 bit unsigned integer vector of 2 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 934 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3<u8, lowp> lowp_u8vec3
-
- -

Low precision 8 bit unsigned integer vector of 3 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 938 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4<u8, lowp> lowp_u8vec4
-
- -

Low precision 8 bit unsigned integer vector of 4 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 942 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint16 lowp_uint16
-
- -

Low precision 16 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 731 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint16 lowp_uint16_t
-
- -

Low precision 16 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 748 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint32 lowp_uint32
-
- -

Low precision 32 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 735 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint32 lowp_uint32_t
-
- -

Low precision 32 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 752 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint64 lowp_uint64
-
- -

Low precision 64 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 739 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint64 lowp_uint64_t
-
- -

Low precision 64 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 756 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint8 lowp_uint8
-
- -

Low precision 8 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 727 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint8 lowp_uint8_t
-
- -

Low precision 8 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 744 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef lowp_vec1_t lowp_vec1
-
- -

Low single-precision floating-point vector of 1 component.

-

1 component vector of low precision floating-point numbers.

-
See Also
GLM_GTC_type_precision
-

There is no guarantee on the actual precision.

-
See Also
GLM_GTX_vec1 extension.
- -

Definition at line 1533 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef float32 mediump_f32
-
- -

Medium 32 bit single-precision floating-point scalar.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1420 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mediump_f32mat2x2 mediump_f32mat2
-
- -

Medium single-precision floating-point 1x1 matrix.

-
See Also
GLM_GTC_type_precision Medium single-precision floating-point 2x2 matrix.
-
-GLM_GTC_type_precision
- -

Definition at line 2009 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x2<f32, mediump> mediump_f32mat2x2
-
- -

High single-precision floating-point 1x1 matrix.

-
See Also
GLM_GTC_type_precision Low single-precision floating-point 2x2 matrix.
-
-GLM_GTC_type_precision
- -

Definition at line 1969 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x3<f32, mediump> mediump_f32mat2x3
-
- -

Medium single-precision floating-point 2x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1973 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x4<f32, mediump> mediump_f32mat2x4
-
- -

Medium single-precision floating-point 2x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1977 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mediump_f32mat3x3 mediump_f32mat3
-
- -

Medium single-precision floating-point 3x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2013 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x2<f32, mediump> mediump_f32mat3x2
-
- -

Medium single-precision floating-point 3x2 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1981 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x3<f32, mediump> mediump_f32mat3x3
-
- -

Medium single-precision floating-point 3x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1985 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x4<f32, mediump> mediump_f32mat3x4
-
- -

Medium single-precision floating-point 3x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1989 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mediump_f32mat4x4 mediump_f32mat4
-
- -

Medium single-precision floating-point 4x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2017 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x2<f32, mediump> mediump_f32mat4x2
-
- -

Medium single-precision floating-point 4x2 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1993 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x3<f32, mediump> mediump_f32mat4x3
-
- -

Medium single-precision floating-point 4x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1997 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x4<f32, mediump> mediump_f32mat4x4
-
- -

Medium single-precision floating-point 4x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2001 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tquat<f32, mediump> mediump_f32quat
-
- -

Medium single-precision floating-point quaternion.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2263 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec1<f32, mediump> mediump_f32vec1
-
- -

Medium single-precision floating-point vector of 1 component.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1650 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2<f32, mediump> mediump_f32vec2
-
- -

Medium single-precision floating-point vector of 2 components.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1654 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3<f32, mediump> mediump_f32vec3
-
- -

Medium single-precision floating-point vector of 3 components.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1658 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4<f32, mediump> mediump_f32vec4
-
- -

Medium single-precision floating-point vector of 4 components.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1662 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef float64 mediump_f64
-
- -

Medium 64 bit double-precision floating-point scalar.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1424 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mediump_f64mat2x2 mediump_f64mat2
-
- -

Medium double-precision floating-point 1x1 matrix.

-
See Also
GLM_GTC_type_precision Medium double-precision floating-point 2x2 matrix.
-
-GLM_GTC_type_precision
- -

Definition at line 2184 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x2<f64, mediump> mediump_f64mat2x2
-
- -

Medium double-precision floating-point 1x1 matrix.

-
See Also
GLM_GTC_type_precision Medium double-precision floating-point 2x2 matrix.
-
-GLM_GTC_type_precision
- -

Definition at line 2144 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x3<f64, mediump> mediump_f64mat2x3
-
- -

Medium double-precision floating-point 2x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2148 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x4<f64, mediump> mediump_f64mat2x4
-
- -

Medium double-precision floating-point 2x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2152 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mediump_f64mat3x3 mediump_f64mat3
-
- -

Medium double-precision floating-point 3x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2188 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x2<f64, mediump> mediump_f64mat3x2
-
- -

Medium double-precision floating-point 3x2 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2156 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x3<f64, mediump> mediump_f64mat3x3
-
- -

Medium double-precision floating-point 3x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2160 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x4<f64, mediump> mediump_f64mat3x4
-
- -

Medium double-precision floating-point 3x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2164 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mediump_f64mat4x4 mediump_f64mat4
-
- -

Medium double-precision floating-point 4x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2192 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x2<f64, mediump> mediump_f64mat4x2
-
- -

Medium double-precision floating-point 4x2 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2168 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x3<f64, mediump> mediump_f64mat4x3
-
- -

Medium double-precision floating-point 4x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2172 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x4<f64, mediump> mediump_f64mat4x4
-
- -

Medium double-precision floating-point 4x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2176 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tquat<f64, mediump> mediump_f64quat
-
- -

Medium double-precision floating-point quaternion.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2267 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec1<f64, mediump> mediump_f64vec1
-
- -

Medium double-precision floating-point vector of 1 component.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1699 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2<f64, mediump> mediump_f64vec2
-
- -

Medium double-precision floating-point vector of 2 components.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1703 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3<f64, mediump> mediump_f64vec3
-
- -

Medium double-precision floating-point vector of 3 components.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1707 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4<f64, mediump> mediump_f64vec4
-
- -

Medium double-precision floating-point vector of 4 components.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1711 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::float32 mediump_float32
-
- -

Medium 32 bit single-precision floating-point scalar.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1404 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::float32 mediump_float32_t
-
- -

Medium 32 bit single-precision floating-point scalar.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1412 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::float64 mediump_float64
-
- -

Medium 64 bit double-precision floating-point scalar.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1408 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::float64 mediump_float64_t
-
- -

Medium 64 bit double-precision floating-point scalar.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1416 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mediump_fmat2x2 mediump_fmat2
-
- -

Medium single-precision floating-point 1x1 matrix.

-
See Also
GLM_GTC_type_precision Medium single-precision floating-point 2x2 matrix.
-
-GLM_GTC_type_precision
- -

Definition at line 1836 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x2<f32, mediump> mediump_fmat2x2
-
- -

Medium single-precision floating-point 1x1 matrix.

-
See Also
GLM_GTC_type_precision Medium single-precision floating-point 2x2 matrix.
-
-GLM_GTC_type_precision
- -

Definition at line 1796 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x3<f32, mediump> mediump_fmat2x3
-
- -

Medium single-precision floating-point 2x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1800 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x4<f32, mediump> mediump_fmat2x4
-
- -

Medium single-precision floating-point 2x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1804 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mediump_fmat3x3 mediump_fmat3
-
- -

Medium single-precision floating-point 3x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1840 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x2<f32, mediump> mediump_fmat3x2
-
- -

Medium single-precision floating-point 3x2 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1808 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x3<f32, mediump> mediump_fmat3x3
-
- -

Medium single-precision floating-point 3x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1812 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x4<f32, mediump> mediump_fmat3x4
-
- -

Medium single-precision floating-point 3x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1816 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mediump_fmat4x4 mediump_fmat4
-
- -

Medium single-precision floating-point 4x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1844 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x2<f32, mediump> mediump_fmat4x2
-
- -

Medium single-precision floating-point 4x2 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1820 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x3<f32, mediump> mediump_fmat4x3
-
- -

Medium single-precision floating-point 4x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1824 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x4<f32, mediump> mediump_fmat4x4
-
- -

Medium single-precision floating-point 4x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1828 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec1<float, mediump> mediump_fvec1
-
- -

Medium single-precision floating-point vector of 1 component.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1583 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2<float, mediump> mediump_fvec2
-
- -

Medium Single-precision floating-point vector of 2 components.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1587 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3<float, mediump> mediump_fvec3
-
- -

Medium Single-precision floating-point vector of 3 components.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1591 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4<float, mediump> mediump_fvec4
-
- -

Medium Single-precision floating-point vector of 4 components.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1595 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int16 mediump_i16
-
- -

Medium precision 16 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 216 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec1<i16, mediump> mediump_i16vec1
-
- -

Medium precision 16 bit signed integer scalar type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 423 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2<i16, mediump> mediump_i16vec2
-
- -

Medium precision 16 bit signed integer vector of 2 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 427 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3<i16, mediump> mediump_i16vec3
-
- -

Medium precision 16 bit signed integer vector of 3 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 431 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4<i16, mediump> mediump_i16vec4
-
- -

Medium precision 16 bit signed integer vector of 4 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 435 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int32 mediump_i32
-
- -

Medium precision 32 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 220 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec1< i32, mediump > mediump_i32vec1
-
- -

Medium precision 32 bit signed integer scalar type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 503 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2< i32, mediump > mediump_i32vec2
-
- -

Medium precision 32 bit signed integer vector of 2 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 507 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3< i32, mediump > mediump_i32vec3
-
- -

Medium precision 32 bit signed integer vector of 3 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 511 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4< i32, mediump > mediump_i32vec4
-
- -

Medium precision 32 bit signed integer vector of 4 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 515 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int64 mediump_i64
-
- -

Medium precision 64 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 224 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec1<i64, mediump> mediump_i64vec1
-
- -

Medium precision 64 bit signed integer scalar type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 662 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2<i64, mediump> mediump_i64vec2
-
- -

Medium precision 64 bit signed integer vector of 2 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 666 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3<i64, mediump> mediump_i64vec3
-
- -

Medium precision 64 bit signed integer vector of 3 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 670 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4<i64, mediump> mediump_i64vec4
-
- -

Medium precision 64 bit signed integer vector of 4 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 674 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int8 mediump_i8
-
- -

Medium precision 8 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 212 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec1<i8, mediump> mediump_i8vec1
-
- -

Medium precision 8 bit signed integer scalar type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 344 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2<i8, mediump> mediump_i8vec2
-
- -

Medium precision 8 bit signed integer vector of 2 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 348 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3<i8, mediump> mediump_i8vec3
-
- -

Medium precision 8 bit signed integer vector of 3 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 352 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4<i8, mediump> mediump_i8vec4
-
- -

Medium precision 8 bit signed integer vector of 4 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 356 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int16 mediump_int16
-
- -

Medium precision 16 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 184 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int16 mediump_int16_t
-
- -

Medium precision 16 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 200 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int32 mediump_int32
-
- -

Medium precision 32 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 188 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int32 mediump_int32_t
-
- -

Medium precision 32 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 204 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int64 mediump_int64
-
- -

Medium precision 64 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 192 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int64 mediump_int64_t
-
- -

Medium precision 64 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 208 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int8 mediump_int8
-
- -

Medium precision 8 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 180 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int8 mediump_int8_t
-
- -

Medium precision 8 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 196 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint16 mediump_u16
-
- -

Medium precision 16 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 815 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec1<u16, mediump> mediump_u16vec1
-
- -

Medium precision 16 bit unsigned integer scalar type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1026 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2<u16, mediump> mediump_u16vec2
-
- -

Medium precision 16 bit unsigned integer vector of 2 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1030 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3<u16, mediump> mediump_u16vec3
-
- -

Medium precision 16 bit unsigned integer vector of 3 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1034 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4<u16, mediump> mediump_u16vec4
-
- -

Medium precision 16 bit unsigned integer vector of 4 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1038 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint32 mediump_u32
-
- -

Medium precision 32 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 819 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec1< u32, mediump > mediump_u32vec1
-
- -

Medium precision 32 bit unsigned integer scalar type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1106 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2< u32, mediump > mediump_u32vec2
-
- -

Medium precision 32 bit unsigned integer vector of 2 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1110 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3< u32, mediump > mediump_u32vec3
-
- -

Medium precision 32 bit unsigned integer vector of 3 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1114 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4< u32, mediump > mediump_u32vec4
-
- -

Medium precision 32 bit unsigned integer vector of 4 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1118 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint64 mediump_u64
-
- -

Medium precision 64 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 823 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec1<u64, mediump> mediump_u64vec1
-
- -

Medium precision 64 bit unsigned integer scalar type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1265 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2<u64, mediump> mediump_u64vec2
-
- -

Medium precision 64 bit unsigned integer vector of 2 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1269 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3<u64, mediump> mediump_u64vec3
-
- -

Medium precision 64 bit unsigned integer vector of 3 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1273 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4<u64, mediump> mediump_u64vec4
-
- -

Medium precision 64 bit unsigned integer vector of 4 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1277 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint8 mediump_u8
-
- -

Medium precision 8 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 811 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec1<u8, mediump> mediump_u8vec1
-
- -

Medium precision 8 bit unsigned integer scalar type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 947 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2<u8, mediump> mediump_u8vec2
-
- -

Medium precision 8 bit unsigned integer vector of 2 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 951 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3<u8, mediump> mediump_u8vec3
-
- -

Medium precision 8 bit unsigned integer vector of 3 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 955 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4<u8, mediump> mediump_u8vec4
-
- -

Medium precision 8 bit unsigned integer vector of 4 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 959 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint16 mediump_uint16
-
- -

Medium precision 16 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 783 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint16 mediump_uint16_t
-
- -

Medium precision 16 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 799 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint32 mediump_uint32
-
- -

Medium precision 32 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 787 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint32 mediump_uint32_t
-
- -

Medium precision 32 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 803 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint64 mediump_uint64
-
- -

Medium precision 64 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 791 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint64 mediump_uint64_t
-
- -

Medium precision 64 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 807 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint8 mediump_uint8
-
- -

Medium precision 8 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 779 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint8 mediump_uint8_t
-
- -

Medium precision 8 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 795 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mediump_vec1_t mediump_vec1
-
- -

Medium single-precision floating-point vector of 1 component.

-

1 component vector of medium precision floating-point numbers.

-
See Also
GLM_GTC_type_precision
-

There is no guarantee on the actual precision.

-
See Also
GLM_GTX_vec1 extension.
- -

Definition at line 1567 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint16 u16
-
- -

16 bit unsigned integer type.

-

Default precision 16 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 915 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec1< u16, defaultp > u16vec1
-
- -

Default precision 16 bit unsigned integer scalar type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1071 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2< u16, defaultp > u16vec2
-
- -

Default precision 16 bit unsigned integer vector of 2 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1075 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3< u16, defaultp > u16vec3
-
- -

Default precision 16 bit unsigned integer vector of 3 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1079 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4< u16, defaultp > u16vec4
-
- -

Default precision 16 bit unsigned integer vector of 4 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1083 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint32 u32
-
- -

32 bit unsigned integer type.

-

Default precision 32 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 919 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec1< u32, defaultp > u32vec1
-
- -

Default precision 32 bit unsigned integer scalar type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1150 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2< u32, defaultp > u32vec2
-
- -

Default precision 32 bit unsigned integer vector of 2 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1154 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3< u32, defaultp > u32vec3
-
- -

Default precision 32 bit unsigned integer vector of 3 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1158 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4< u32, defaultp > u32vec4
-
- -

Default precision 32 bit unsigned integer vector of 4 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1162 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint64 u64
-
- -

64 bit unsigned integer type.

-

Default precision 64 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 923 of file fwd.hpp.

- -
-
- -
-
- - + + + + -
typedef detail::tvec1< u64, defaultp > u64vec1vecType< U, P > const & a,
-
- -

Default precision 64 bit unsigned integer scalar type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1309 of file fwd.hpp.

- -
-
- -
-
- - + + + + -
typedef detail::tvec2< u64, defaultp > u64vec2y,
-
- -

Default precision 64 bit unsigned integer vector of 2 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1313 of file fwd.hpp.

- -
-
- -
-
- - + + + + -
typedef detail::tvec3< u64, defaultp > u64vec3vecType< U, P > const & b,
-
- -

Default precision 64 bit unsigned integer vector of 3 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1317 of file fwd.hpp.

- -
-
- -
-
- - + + + + -
typedef detail::tvec4< u64, defaultp > u64vec4z,
-
- -

Default precision 64 bit unsigned integer vector of 4 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1321 of file fwd.hpp.

- -
-
- -
-
- - + + + + -
typedef detail::uint8 u8vecType< U, P > const & c,
-
- -

8 bit unsigned integer type.

-

Default precision 8 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 911 of file fwd.hpp.

- -
-
- -
-
- - + + + + -
typedef detail::tvec1< u8, defaultp > u8vec1w,
-
- -

Default precision 8 bit unsigned integer scalar type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 991 of file fwd.hpp.

- -
-
- -
-
- - + + + + -
typedef detail::tvec2< u8, defaultp > u8vec2vecType< U, P > const & d 
-
- -

Default precision 8 bit unsigned integer vector of 2 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 995 of file fwd.hpp.

- -
-
- -
-
- - + + +
typedef detail::tvec3< u8, defaultp > u8vec3)
-

Default precision 8 bit unsigned integer vector of 3 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 999 of file fwd.hpp.

+

Minimum comparison between 4 variables and returns 4 associated variable values.

+
See also
GLM_GTX_associated_min_max
- +
- + + + + -
typedef detail::tvec4< u8, defaultp > u8vec4GLM_FUNC_DECL vecType<U, P> glm::associatedMin (vecType< T, P > const & x,
-
- -

Default precision 8 bit unsigned integer vector of 4 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1003 of file fwd.hpp.

- -
-
- -
-
- - + + + + -
typedef detail::uint16 uint16a,
-
- -

16 bit unsigned integer type.

-

Default precision 16 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 95 of file type_int.hpp.

- -
-
- -
-
- - + + + + -
typedef detail::uint16 uint16_tvecType< T, P > const & y,
-
- -

16 bit unsigned integer type.

-

Default precision 16 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 899 of file fwd.hpp.

- -
-
- -
-
- - + + + + -
typedef detail::uint32 uint32b,
-
- -

32 bit unsigned integer type.

-

Default precision 32 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 96 of file type_int.hpp.

- -
-
- -
-
- - + + + + -
typedef detail::uint32 uint32_tvecType< T, P > const & z,
-
- -

32 bit unsigned integer type.

-

Default precision 32 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 903 of file fwd.hpp.

- -
-
- -
-
- - + + + + -
typedef detail::uint64 uint64c,
-
- -

64 bit unsigned integer type.

-

Default precision 64 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 97 of file type_int.hpp.

- -
-
- -
-
- - + + + + -
typedef detail::uint64 uint64_tvecType< T, P > const & w,
-
- -

64 bit unsigned integer type.

-

Default precision 64 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 907 of file fwd.hpp.

- -
-
- -
-
- - + + + + -
typedef detail::uint8 uint8d 
-
- -

8 bit unsigned integer type.

-

Default precision 8 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 94 of file type_int.hpp.

- -
-
- -
-
- - + + +
typedef detail::uint8 uint8_t)
-

8 bit unsigned integer type.

-

Default precision 8 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 895 of file fwd.hpp.

+

Minimum comparison between 4 variables and returns 4 associated variable values.

+
See also
GLM_GTX_associated_min_max
@@ -8952,7 +1287,7 @@ mediump > 
diff --git a/doc/api/a00183.html b/doc/api/a00183.html index 1ab2a87d..c2dd9ff0 100644 --- a/doc/api/a00183.html +++ b/doc/api/a00183.html @@ -3,8 +3,8 @@ - -GLM: GLM_GTC_type_ptr + +0.9.6: GLM_GTX_bit @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -41,417 +39,212 @@
-
GLM_GTC_type_ptr
+
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + +

Functions

template<typename T >
GLM_FUNC_DECL detail::tmat2x2
-< T, defaultp > 
make_mat2 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL detail::tmat2x2
-< T, defaultp > 
make_mat2x2 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL detail::tmat2x3
-< T, defaultp > 
make_mat2x3 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL detail::tmat2x4
-< T, defaultp > 
make_mat2x4 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL detail::tmat3x3
-< T, defaultp > 
make_mat3 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL detail::tmat3x2
-< T, defaultp > 
make_mat3x2 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL detail::tmat3x3
-< T, defaultp > 
make_mat3x3 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL detail::tmat3x4
-< T, defaultp > 
make_mat3x4 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL detail::tmat4x4
-< T, defaultp > 
make_mat4 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL detail::tmat4x2
-< T, defaultp > 
make_mat4x2 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL detail::tmat4x3
-< T, defaultp > 
make_mat4x3 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL detail::tmat4x4
-< T, defaultp > 
make_mat4x4 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL detail::tquat< T,
-defaultp > 
make_quat (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL detail::tvec2< T,
-defaultp > 
make_vec2 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL detail::tvec3< T,
-defaultp > 
make_vec3 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL detail::tvec4< T,
-defaultp > 
make_vec4 (T const *const ptr)
 
template<typename genType >
GLM_FUNC_DECL
-genType::value_type const * 
value_ptr (genType const &vec)
 
template<typename genIUType >
GLM_FUNC_DECL genIUType highestBitValue (genIUType Value)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > highestBitValue (vecType< T, P > const &value)
 
template<typename genIUType >
GLM_DEPRECATED GLM_FUNC_DECL
+genIUType 
powerOfTwoAbove (genIUType Value)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_DEPRECATED GLM_FUNC_DECL
+vecType< T, P > 
powerOfTwoAbove (vecType< T, P > const &value)
 
template<typename genIUType >
GLM_DEPRECATED GLM_FUNC_DECL
+genIUType 
powerOfTwoBelow (genIUType Value)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_DEPRECATED GLM_FUNC_DECL
+vecType< T, P > 
powerOfTwoBelow (vecType< T, P > const &value)
 
template<typename genIUType >
GLM_DEPRECATED GLM_FUNC_DECL
+genIUType 
powerOfTwoNearest (genIUType Value)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_DEPRECATED GLM_FUNC_DECL
+vecType< T, P > 
powerOfTwoNearest (vecType< T, P > const &value)
 

Detailed Description

-

Handles the interaction between pointers and vector, matrix types.

-

This extension defines an overloaded function, glm::value_ptr, which takes any of the core template types. It returns a pointer to the memory layout of the object. Matrix types store their values in column-major order.

-

This is useful for uploading data to matrices or copying data to buffer objects.

-

Example:

-
* #include <glm/glm.hpp>
-
* #include <glm/gtc/type_ptr.hpp>
-
*
-
* glm::vec3 aVector(3);
-
* glm::mat4 someMatrix(1.0);
-
*
-
* glUniform3fv(uniformLoc, 1, glm::value_ptr(aVector));
-
* glUniformMatrix4fv(uniformMatrixLoc, 1, GL_FALSE, glm::value_ptr(someMatrix));
-
*
-

<glm/gtc/type_ptr.hpp> need to be included to use these functionalities.

+

Allow to perform bit operations on integer values.

+

<glm/gtx/bit.hpp> need to be included to use these functionalities.

Function Documentation

- +
- + - - + + + + +
GLM_FUNC_DECL detail::tmat2x2<T, defaultp> glm::make_mat2 GLM_FUNC_DECL genIUType glm::highestBitValue (T const *const ptr)genIUType Value)
+
+
See also
GLM_GTX_bit
+ +
+
+ +
+
+ + + + + +
GLM_FUNC_DECL vecType<T, P> glm::highestBitValue (vecType< T, P > const & value)
-

Build a matrix from a pointer.

-
See Also
GLM_GTC_type_ptr
+

Find the highest bit set to 1 in a integer variable and return its value.

+
See also
GLM_GTX_bit
- +
- + - - + +
GLM_FUNC_DECL detail::tmat2x2<T, defaultp> glm::make_mat2x2 GLM_DEPRECATED GLM_FUNC_DECL genIUType glm::powerOfTwoAbove (T const *const ptr)genIUType Value)
-

Build a matrix from a pointer.

-
See Also
GLM_GTC_type_ptr
+

Return the power of two number which value is just higher the input value.

+

Deprecated, use ceilPowerOfTwo from GTC_round instead

+
See also
GLM_GTC_round
+
+GLM_GTX_bit
- +
- + - - + +
GLM_FUNC_DECL detail::tmat2x3<T, defaultp> glm::make_mat2x3 GLM_DEPRECATED GLM_FUNC_DECL vecType<T, P> glm::powerOfTwoAbove (T const *const ptr)vecType< T, P > const & value)
-

Build a matrix from a pointer.

-
See Also
GLM_GTC_type_ptr
+

Return the power of two number which value is just higher the input value.

+

Deprecated, use ceilPowerOfTwo from GTC_round instead

+
See also
GLM_GTC_round
+
+GLM_GTX_bit
- +
- + - - + +
GLM_FUNC_DECL detail::tmat2x4<T, defaultp> glm::make_mat2x4 GLM_DEPRECATED GLM_FUNC_DECL genIUType glm::powerOfTwoBelow (T const *const ptr)genIUType Value)
-

Build a matrix from a pointer.

-
See Also
GLM_GTC_type_ptr
+

Return the power of two number which value is just lower the input value.

+

Deprecated, use floorPowerOfTwo from GTC_round instead

+
See also
GLM_GTC_round
+
+GLM_GTX_bit
- +
- + - - + +
GLM_FUNC_DECL detail::tmat3x3<T, defaultp> glm::make_mat3 GLM_DEPRECATED GLM_FUNC_DECL vecType<T, P> glm::powerOfTwoBelow (T const *const ptr)vecType< T, P > const & value)
-

Build a matrix from a pointer.

-
See Also
GLM_GTC_type_ptr
+

Return the power of two number which value is just lower the input value.

+

Deprecated, use floorPowerOfTwo from GTC_round instead

+
See also
GLM_GTC_round
+
+GLM_GTX_bit
- +
- + - - + +
GLM_FUNC_DECL detail::tmat3x2<T, defaultp> glm::make_mat3x2 GLM_DEPRECATED GLM_FUNC_DECL genIUType glm::powerOfTwoNearest (T const *const ptr)genIUType Value)
-

Build a matrix from a pointer.

-
See Also
GLM_GTC_type_ptr
+

Return the power of two number which value is the closet to the input value.

+

Deprecated, use roundPowerOfTwo from GTC_round instead

+
See also
GLM_GTC_round
+
+GLM_GTX_bit
- +
- + - - + +
GLM_FUNC_DECL detail::tmat3x3<T, defaultp> glm::make_mat3x3 GLM_DEPRECATED GLM_FUNC_DECL vecType<T, P> glm::powerOfTwoNearest (T const *const ptr)vecType< T, P > const & value)
-

Build a matrix from a pointer.

-
See Also
GLM_GTC_type_ptr
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL detail::tmat3x4<T, defaultp> glm::make_mat3x4 (T const *const ptr)
-
- -

Build a matrix from a pointer.

-
See Also
GLM_GTC_type_ptr
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL detail::tmat4x4<T, defaultp> glm::make_mat4 (T const *const ptr)
-
- -

Build a matrix from a pointer.

-
See Also
GLM_GTC_type_ptr
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL detail::tmat4x2<T, defaultp> glm::make_mat4x2 (T const *const ptr)
-
- -

Build a matrix from a pointer.

-
See Also
GLM_GTC_type_ptr
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL detail::tmat4x3<T, defaultp> glm::make_mat4x3 (T const *const ptr)
-
- -

Build a matrix from a pointer.

-
See Also
GLM_GTC_type_ptr
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL detail::tmat4x4<T, defaultp> glm::make_mat4x4 (T const *const ptr)
-
- -

Build a matrix from a pointer.

-
See Also
GLM_GTC_type_ptr
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL detail::tquat<T, defaultp> glm::make_quat (T const *const ptr)
-
- -

Build a quaternion from a pointer.

-
See Also
GLM_GTC_type_ptr
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL detail::tvec2<T, defaultp> glm::make_vec2 (T const *const ptr)
-
- -

Build a vector from a pointer.

-
See Also
GLM_GTC_type_ptr
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL detail::tvec3<T, defaultp> glm::make_vec3 (T const *const ptr)
-
- -

Build a vector from a pointer.

-
See Also
GLM_GTC_type_ptr
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL detail::tvec4<T, defaultp> glm::make_vec4 (T const *const ptr)
-
- -

Build a vector from a pointer.

-
See Also
GLM_GTC_type_ptr
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType::value_type const* glm::value_ptr (genType const & vec)
-
- -

Return the constant address to the data of the input parameter.

-
See Also
GLM_GTC_type_ptr
+

Return the power of two number which value is the closet to the input value.

+

Deprecated, use roundPowerOfTwo from GTC_round instead

+
See also
GLM_GTC_round
+
+GLM_GTX_bit
@@ -460,7 +253,7 @@ genType::value_type const * 
diff --git a/doc/api/a00184.html b/doc/api/a00184.html index 471a38d5..72d0cbf1 100644 --- a/doc/api/a00184.html +++ b/doc/api/a00184.html @@ -3,8 +3,8 @@ - -GLM: GLM_GTC_ulp + +0.9.6: GLM_GTX_closest_point @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -41,50 +39,45 @@ +
GLM_GTX_closest_point
- - - - - - - - - - - - - - - - - - + + + + + +

Functions

template<typename T >
GLM_FUNC_DECL uint float_distance (T const &x, T const &y)
 
template<typename T , template< typename > class vecType>
GLM_FUNC_DECL vecType< uint > float_distance (vecType< T > const &x, vecType< T > const &y)
 
template<typename genType >
GLM_FUNC_DECL genType next_float (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType next_float (genType const &x, uint const &Distance)
 
template<typename genType >
GLM_FUNC_DECL genType prev_float (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType prev_float (genType const &x, uint const &Distance)
 
template<typename T , precision P>
GLM_FUNC_DECL tvec3< T, P > closestPointOnLine (tvec3< T, P > const &point, tvec3< T, P > const &a, tvec3< T, P > const &b)
 
+template<typename T , precision P>
GLM_FUNC_DECL tvec2< T, P > closestPointOnLine (tvec2< T, P > const &point, tvec2< T, P > const &a, tvec2< T, P > const &b)
 

Detailed Description

-

Allow the measurement of the accuracy of a function against a reference implementation.

-

This extension works on floating-point data and provide results in ULP. <glm/gtc/ulp.hpp> need to be included to use these features.

+

Find the point on a straight line which is the closet of a point.

+

<glm/gtx/closest_point.hpp> need to be included to use these functionalities.

Function Documentation

- +
- + - - + + - - + + + + + + + + @@ -94,133 +87,8 @@ Functions
GLM_FUNC_DECL uint glm::float_distance GLM_FUNC_DECL tvec3<T, P> glm::closestPointOnLine (T const & x, tvec3< T, P > const & point,
T const & y tvec3< T, P > const & a,
tvec3< T, P > const & b 
-

Return the distance in the number of ULP between 2 scalars.

-
See Also
GLM_GTC_ulp
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vecType<uint> glm::float_distance (vecType< T > const & x,
vecType< T > const & y 
)
-
- -

Return the distance in the number of ULP between 2 vectors.

-
See Also
GLM_GTC_ulp
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::next_float (genType const & x)
-
- -

Return the next ULP value(s) after the input value(s).

-
See Also
GLM_GTC_ulp
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL genType glm::next_float (genType const & x,
uint const & Distance 
)
-
- -

Return the value(s) ULP distance after the input value(s).

-
See Also
GLM_GTC_ulp
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::prev_float (genType const & x)
-
- -

Return the previous ULP value(s) before the input value(s).

-
See Also
GLM_GTC_ulp
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL genType glm::prev_float (genType const & x,
uint const & Distance 
)
-
- -

Return the value(s) ULP distance before the input value(s).

-
See Also
GLM_GTC_ulp
+

Find the point on a straight line which is the closet of a point.

+
See also
GLM_GTX_closest_point
@@ -229,7 +97,7 @@ Functions
+ @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -41,62 +39,127 @@
-
GLM_GTX_associated_min_max
+
- - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + +

Functions

template<typename genTypeT , typename genTypeU >
genTypeU associatedMax (const genTypeT &x, const genTypeU &a, const genTypeT &y, const genTypeU &b)
 
template<typename genTypeT , typename genTypeU >
genTypeU associatedMax (const genTypeT &x, const genTypeU &a, const genTypeT &y, const genTypeU &b, const genTypeT &z, const genTypeU &c)
 
template<typename genTypeT , typename genTypeU >
genTypeU associatedMax (const genTypeT &x, const genTypeU &a, const genTypeT &y, const genTypeU &b, const genTypeT &z, const genTypeU &c, const genTypeT &w, const genTypeU &d)
 
template<typename genTypeT , typename genTypeU >
genTypeU associatedMin (const genTypeT &x, const genTypeU &a, const genTypeT &y, const genTypeU &b)
 
template<typename genTypeT , typename genTypeU >
genTypeU associatedMin (const genTypeT &x, const genTypeU &a, const genTypeT &y, const genTypeU &b, const genTypeT &z, const genTypeU &c)
 
template<typename genTypeT , typename genTypeU >
genTypeU associatedMin (const genTypeT &x, const genTypeU &a, const genTypeT &y, const genTypeU &b, const genTypeT &z, const genTypeU &c, const genTypeT &w, const genTypeU &d)
 
template<typename T , precision P>
GLM_FUNC_DECL tvec3< T, P > hsvColor (tvec3< T, P > const &rgbValue)
 
template<typename T , precision P>
GLM_FUNC_DECL T luminosity (tvec3< T, P > const &color)
 
template<typename T , precision P>
GLM_FUNC_DECL tvec3< T, P > rgbColor (tvec3< T, P > const &hsvValue)
 
template<typename T >
GLM_FUNC_DECL tmat4x4< T,
+defaultp > 
saturation (T const s)
 
template<typename T , precision P>
GLM_FUNC_DECL tvec3< T, P > saturation (T const s, tvec3< T, P > const &color)
 
template<typename T , precision P>
GLM_FUNC_DECL tvec4< T, P > saturation (T const s, tvec4< T, P > const &color)
 

Detailed Description

-

Min and max functions that return associated values not the compared onces.

-

<glm/gtx/associated_min_max.hpp> need to be included to use these functionalities.

+

Related to RGB to HSV conversions and operations.

+

<glm/gtx/color_space.hpp> need to be included to use these functionalities.

Function Documentation

- +
- + - - + + + + +
genTypeU glm::associatedMax GLM_FUNC_DECL tvec3<T, P> glm::hsvColor (const genTypeT & x, tvec3< T, P > const & rgbValue)
+
+ +

Converts a color from RGB color space to its color in HSV color space.

+
See also
GLM_GTX_color_space
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL T glm::luminosity (tvec3< T, P > const & color)
+
+ +

Compute color luminosity associating ratios (0.33, 0.59, 0.11) to RGB canals.

+
See also
GLM_GTX_color_space
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL tvec3<T, P> glm::rgbColor (tvec3< T, P > const & hsvValue)
+
+ +

Converts a color from HSV color space to its color in RGB color space.

+
See also
GLM_GTX_color_space
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL tmat4x4<T, defaultp> glm::saturation (T const s)
+
+ +

Build a saturation matrix.

+
See also
GLM_GTX_color_space
+ +
+
+ +
+
+ + + + + + - - - - - - - - - - - - - - + + @@ -106,50 +169,26 @@ Functions
GLM_FUNC_DECL tvec3<T, P> glm::saturation (T const s,
const genTypeU & a,
const genTypeT & y,
const genTypeU & b tvec3< T, P > const & color 
-

Max comparison between 2 variables.

-
See Also
GLM_GTX_associated_min_max
+

Modify the saturation of a color.

+
See also
GLM_GTX_color_space
- +
- + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - + + @@ -159,232 +198,8 @@ Functions
genTypeU glm::associatedMax GLM_FUNC_DECL tvec4<T, P> glm::saturation (const genTypeT & x, T const s,
const genTypeU & a,
const genTypeT & y,
const genTypeU & b,
const genTypeT & z,
const genTypeU & c tvec4< T, P > const & color 
-

Max comparison between 3 variables.

-
See Also
GLM_GTX_associated_min_max
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
genTypeU glm::associatedMax (const genTypeT & x,
const genTypeU & a,
const genTypeT & y,
const genTypeU & b,
const genTypeT & z,
const genTypeU & c,
const genTypeT & w,
const genTypeU & d 
)
-
- -

Max comparison between 4 variables.

-
See Also
GLM_GTX_associated_min_max
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
genTypeU glm::associatedMin (const genTypeT & x,
const genTypeU & a,
const genTypeT & y,
const genTypeU & b 
)
-
- -

Min comparison between 2 variables.

-
See Also
GLM_GTX_associated_min_max
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
genTypeU glm::associatedMin (const genTypeT & x,
const genTypeU & a,
const genTypeT & y,
const genTypeU & b,
const genTypeT & z,
const genTypeU & c 
)
-
- -

Min comparison between 3 variables.

-
See Also
GLM_GTX_associated_min_max
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
genTypeU glm::associatedMin (const genTypeT & x,
const genTypeU & a,
const genTypeT & y,
const genTypeU & b,
const genTypeT & z,
const genTypeU & c,
const genTypeT & w,
const genTypeU & d 
)
-
- -

Min comparison between 4 variables.

-
See Also
GLM_GTX_associated_min_max
+

Modify the saturation of a color.

+
See also
GLM_GTX_color_space
@@ -393,7 +208,7 @@ Functions
+ @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -41,905 +39,106 @@ +
GLM_GTX_color_space_YCoCg
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + +

Functions

GLM_FUNC_DECL int16 bitfieldInterleave (int8 x, int8 y)
 
GLM_FUNC_DECL uint16 bitfieldInterleave (uint8 x, uint8 y)
 
GLM_FUNC_DECL int32 bitfieldInterleave (int16 x, int16 y)
 
GLM_FUNC_DECL uint32 bitfieldInterleave (uint16 x, uint16 y)
 
GLM_FUNC_DECL int64 bitfieldInterleave (int32 x, int32 y)
 
GLM_FUNC_DECL uint64 bitfieldInterleave (uint32 x, uint32 y)
 
GLM_FUNC_DECL int32 bitfieldInterleave (int8 x, int8 y, int8 z)
 
GLM_FUNC_DECL uint32 bitfieldInterleave (uint8 x, uint8 y, uint8 z)
 
GLM_FUNC_DECL int64 bitfieldInterleave (int16 x, int16 y, int16 z)
 
GLM_FUNC_DECL uint64 bitfieldInterleave (uint16 x, uint16 y, uint16 z)
 
GLM_FUNC_DECL int64 bitfieldInterleave (int32 x, int32 y, int32 z)
 
GLM_FUNC_DECL uint64 bitfieldInterleave (uint32 x, uint32 y, uint32 z)
 
GLM_FUNC_DECL int32 bitfieldInterleave (int8 x, int8 y, int8 z, int8 w)
 
GLM_FUNC_DECL uint32 bitfieldInterleave (uint8 x, uint8 y, uint8 z, uint8 w)
 
GLM_FUNC_DECL int64 bitfieldInterleave (int16 x, int16 y, int16 z, int16 w)
 
GLM_FUNC_DECL uint64 bitfieldInterleave (uint16 x, uint16 y, uint16 z, uint16 w)
 
template<typename genType >
GLM_DEPRECATED GLM_FUNC_DECL
-genType 
bitRevert (genType const &value)
 
template<typename genType >
GLM_FUNC_DECL genType bitRotateLeft (genType const &In, std::size_t Shift)
 
template<typename genType >
GLM_FUNC_DECL genType bitRotateRight (genType const &In, std::size_t Shift)
 
template<typename genIUType >
GLM_FUNC_DECL genIUType fillBitfieldWithOne (genIUType const &Value, int const &FromBit, int const &ToBit)
 
template<typename genIUType >
GLM_FUNC_DECL genIUType fillBitfieldWithZero (genIUType const &Value, int const &FromBit, int const &ToBit)
 
template<typename genType >
GLM_FUNC_DECL genType highestBitValue (genType const &value)
 
template<typename genType >
GLM_FUNC_DECL bool isPowerOfTwo (genType const &value)
 
template<typename genIType >
GLM_FUNC_DECL genIType mask (genIType const &count)
 
template<typename genType >
GLM_FUNC_DECL genType powerOfTwoAbove (genType const &value)
 
template<typename genType >
GLM_FUNC_DECL genType powerOfTwoBelow (genType const &value)
 
template<typename genType >
GLM_FUNC_DECL genType powerOfTwoNearest (genType const &value)
 
template<typename T , precision P>
GLM_FUNC_DECL tvec3< T, P > rgb2YCoCg (tvec3< T, P > const &rgbColor)
 
template<typename T , precision P>
GLM_FUNC_DECL tvec3< T, P > rgb2YCoCgR (tvec3< T, P > const &rgbColor)
 
template<typename T , precision P>
GLM_FUNC_DECL tvec3< T, P > YCoCg2rgb (tvec3< T, P > const &YCoCgColor)
 
template<typename T , precision P>
GLM_FUNC_DECL tvec3< T, P > YCoCgR2rgb (tvec3< T, P > const &YCoCgColor)
 

Detailed Description

-

Allow to perform bit operations on integer values.

-

<glm/gtx/bit.hpp> need to be included to use these functionalities.

+

RGB to YCoCg conversions and operations.

+

<glm/gtx/color_space_YCoCg.hpp> need to be included to use these functionalities.

Function Documentation

- +
- + - - - - - - - - - - - - - - -
GLM_FUNC_DECL int16 glm::bitfieldInterleave GLM_FUNC_DECL tvec3<T, P> glm::rgb2YCoCg (int8 x,
int8 y 
)
-
- -

Interleaves the bits of x and y.

-

The first bit is the first bit of x followed by the first bit of y. The other bits are interleaved following the previous sequence.

-
See Also
GLM_GTX_bit
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL uint16 glm::bitfieldInterleave (uint8 x,
uint8 y 
)
-
- -

Interleaves the bits of x and y.

-

The first bit is the first bit of x followed by the first bit of y. The other bits are interleaved following the previous sequence.

-
See Also
GLM_GTX_bit
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL int32 glm::bitfieldInterleave (int16 x,
int16 y 
)
-
- -

Interleaves the bits of x and y.

-

The first bit is the first bit of x followed by the first bit of y. The other bits are interleaved following the previous sequence.

-
See Also
GLM_GTX_bit
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL uint32 glm::bitfieldInterleave (uint16 x,
uint16 y 
)
-
- -

Interleaves the bits of x and y.

-

The first bit is the first bit of x followed by the first bit of y. The other bits are interleaved following the previous sequence.

-
See Also
GLM_GTX_bit
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL int64 glm::bitfieldInterleave (int32 x,
int32 y 
)
-
- -

Interleaves the bits of x and y.

-

The first bit is the first bit of x followed by the first bit of y. The other bits are interleaved following the previous sequence.

-
See Also
GLM_GTX_bit
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL uint64 glm::bitfieldInterleave (uint32 x,
uint32 y 
)
-
- -

Interleaves the bits of x and y.

-

The first bit is the first bit of x followed by the first bit of y. The other bits are interleaved following the previous sequence.

-
See Also
GLM_GTX_bit
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL int32 glm::bitfieldInterleave (int8 x,
int8 y,
int8 z 
)
-
- -

Interleaves the bits of x, y and z.

-

The first bit is the first bit of x followed by the first bit of y and the first bit of z. The other bits are interleaved following the previous sequence.

-
See Also
GLM_GTX_bit
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL uint32 glm::bitfieldInterleave (uint8 x,
uint8 y,
uint8 z 
)
-
- -

Interleaves the bits of x, y and z.

-

The first bit is the first bit of x followed by the first bit of y and the first bit of z. The other bits are interleaved following the previous sequence.

-
See Also
GLM_GTX_bit
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL int64 glm::bitfieldInterleave (int16 x,
int16 y,
int16 z 
)
-
- -

Interleaves the bits of x, y and z.

-

The first bit is the first bit of x followed by the first bit of y and the first bit of z. The other bits are interleaved following the previous sequence.

-
See Also
GLM_GTX_bit
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL uint64 glm::bitfieldInterleave (uint16 x,
uint16 y,
uint16 z 
)
-
- -

Interleaves the bits of x, y and z.

-

The first bit is the first bit of x followed by the first bit of y and the first bit of z. The other bits are interleaved following the previous sequence.

-
See Also
GLM_GTX_bit
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL int64 glm::bitfieldInterleave (int32 x,
int32 y,
int32 z 
)
-
- -

Interleaves the bits of x, y and z.

-

The first bit is the first bit of x followed by the first bit of y and the first bit of z. The other bits are interleaved following the previous sequence.

-
See Also
GLM_GTX_bit
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL uint64 glm::bitfieldInterleave (uint32 x,
uint32 y,
uint32 z 
)
-
- -

Interleaves the bits of x, y and z.

-

The first bit is the first bit of x followed by the first bit of y and the first bit of z. The other bits are interleaved following the previous sequence.

-
See Also
GLM_GTX_bit
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL int32 glm::bitfieldInterleave (int8 x,
int8 y,
int8 z,
int8 w 
)
-
- -

Interleaves the bits of x, y, z and w.

-

The first bit is the first bit of x followed by the first bit of y, the first bit of z and finally the first bit of w. The other bits are interleaved following the previous sequence.

-
See Also
GLM_GTX_bit
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL uint32 glm::bitfieldInterleave (uint8 x,
uint8 y,
uint8 z,
uint8 w 
)
-
- -

Interleaves the bits of x, y, z and w.

-

The first bit is the first bit of x followed by the first bit of y, the first bit of z and finally the first bit of w. The other bits are interleaved following the previous sequence.

-
See Also
GLM_GTX_bit
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL int64 glm::bitfieldInterleave (int16 x,
int16 y,
int16 z,
int16 w 
)
-
- -

Interleaves the bits of x, y, z and w.

-

The first bit is the first bit of x followed by the first bit of y, the first bit of z and finally the first bit of w. The other bits are interleaved following the previous sequence.

-
See Also
GLM_GTX_bit
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL uint64 glm::bitfieldInterleave (uint16 x,
uint16 y,
uint16 z,
uint16 w 
)
-
- -

Interleaves the bits of x, y, z and w.

-

The first bit is the first bit of x followed by the first bit of y, the first bit of z and finally the first bit of w. The other bits are interleaved following the previous sequence.

-
See Also
GLM_GTX_bit
- -
-
- -
-
- - - - - - + +
GLM_DEPRECATED GLM_FUNC_DECL genType glm::bitRevert (genType const & value)tvec3< T, P > const & rgbColor)
-

Revert all bits of any integer based type.

-
See Also
GLM_GTX_bit
+

Convert a color from RGB color space to YCoCg color space.

+
See also
GLM_GTX_color_space_YCoCg
- +
- + - - - - - - - - - - - - - - -
GLM_FUNC_DECL genType glm::bitRotateLeft GLM_FUNC_DECL tvec3<T, P> glm::rgb2YCoCgR (genType const & In,
std::size_t Shift 
)
-
- -

Rotate all bits to the left.

-
See Also
GLM_GTX_bit
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL genType glm::bitRotateRight (genType const & In,
std::size_t Shift 
)
-
- -

Rotate all bits to the right.

-
See Also
GLM_GTX_bit
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL genIUType glm::fillBitfieldWithOne (genIUType const & Value,
int const & FromBit,
int const & ToBit 
)
-
- -

Set to 1 a range of bits.

-
See Also
GLM_GTX_bit
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL genIUType glm::fillBitfieldWithZero (genIUType const & Value,
int const & FromBit,
int const & ToBit 
)
-
- -

Set to 0 a range of bits.

-
See Also
GLM_GTX_bit
- -
-
- -
-
- - - - - - + +
GLM_FUNC_DECL genType glm::highestBitValue (genType const & value)tvec3< T, P > const & rgbColor)
-

Find the highest bit set to 1 in a integer variable and return its value.

-
See Also
GLM_GTX_bit
+

Convert a color from RGB color space to YCoCgR color space.

+
See also
"YCoCg-R: A Color Space with RGB Reversibility and Low Dynamic Range"
+
+GLM_GTX_color_space_YCoCg
- +
- + - - + +
GLM_FUNC_DECL bool glm::isPowerOfTwo GLM_FUNC_DECL tvec3<T, P> glm::YCoCg2rgb (genType const & value)tvec3< T, P > const & YCoCgColor)
-

Return true if the value is a power of two number.

-
See Also
GLM_GTX_bit
+

Convert a color from YCoCg color space to RGB color space.

+
See also
GLM_GTX_color_space_YCoCg
- +
- + - - + +
GLM_FUNC_DECL genIType glm::mask GLM_FUNC_DECL tvec3<T, P> glm::YCoCgR2rgb (genIType const & count)tvec3< T, P > const & YCoCgColor)
-

Build a mask of 'count' bits.

-
See Also
GLM_GTX_bit
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::powerOfTwoAbove (genType const & value)
-
- -

Return the power of two number which value is just higher the input value.

-
See Also
GLM_GTX_bit
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::powerOfTwoBelow (genType const & value)
-
- -

Return the power of two number which value is just lower the input value.

-
See Also
GLM_GTX_bit
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::powerOfTwoNearest (genType const & value)
-
- -

Return the power of two number which value is the closet to the input value.

-
See Also
GLM_GTX_bit
+

Convert a color from YCoCgR color space to RGB color space.

+
See also
"YCoCg-R: A Color Space with RGB Reversibility and Low Dynamic Range"
+
+GLM_GTX_color_space_YCoCg
@@ -948,7 +147,7 @@ genType  diff --git a/doc/api/a00187.html b/doc/api/a00187.html index b210e50a..76edcd71 100644 --- a/doc/api/a00187.html +++ b/doc/api/a00187.html @@ -3,8 +3,8 @@ - -GLM: GLM_GTX_closest_point + +0.9.6: GLM_GTX_common @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -41,52 +39,45 @@
Functions
-
GLM_GTX_closest_point
+
GLM_GTX_common
GTX Extensions (Experimental)
- - - + + +

Functions

template<typename T , precision P>
detail::tvec3< T, P > closestPointOnLine (detail::tvec3< T, P > const &point, detail::tvec3< T, P > const &a, detail::tvec3< T, P > const &b)
 
template<typename genType >
GLM_FUNC_DECL genType::bool_type isdenormal (genType const &x)
 

Detailed Description

-

Find the point on a straight line which is the closet of a point.

-

<glm/gtx/closest_point.hpp> need to be included to use these functionalities.

+

Provide functions to increase the compatibility with Cg and HLSL languages.

+

<glm/gtx/common.hpp> need to be included to use these functionalities.

Function Documentation

- +
- + - - - - - + + - - - - - - - - - - - - -
detail::tvec3<T, P> glm::closestPointOnLine GLM_FUNC_DECL genType::bool_type glm::isdenormal (detail::tvec3< T, P > const & point,
genType const & x) detail::tvec3< T, P > const & a,
detail::tvec3< T, P > const & b 
)
-

Find the point on a straight line which is the closet of a point.

-
See Also
GLM_GTX_closest_point
+

Returns true if x is a denormalized number Numbers whose absolute value is too small to be represented in the normal format are represented in an alternate, denormalized format.

+

This format is less precise but can represent values closer to zero.

+
Template Parameters
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also
GLSL isnan man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
@@ -95,7 +86,7 @@ Functions diff --git a/doc/api/a00188.html b/doc/api/a00188.html index 6ce5f5cc..07d4cc4d 100644 --- a/doc/api/a00188.html +++ b/doc/api/a00188.html @@ -3,8 +3,8 @@ - -GLM: GLM_GTX_color_space + +0.9.6: GLM_GTX_compatibility @@ -16,9 +16,9 @@ + @@ -26,141 +26,302 @@
-
GLM -  0.9.5 +
0.9.6
- +
+Typedefs | Functions
-
+
GLM_GTX_compatibility
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Typedefs

+typedef bool bool1
 
+typedef bool bool1x1
 
+typedef tvec2< bool, highp > bool2
 
+typedef tmat2x2< bool, highp > bool2x2
 
+typedef tmat2x3< bool, highp > bool2x3
 
+typedef tmat2x4< bool, highp > bool2x4
 
+typedef tvec3< bool, highp > bool3
 
+typedef tmat3x2< bool, highp > bool3x2
 
+typedef tmat3x3< bool, highp > bool3x3
 
+typedef tmat3x4< bool, highp > bool3x4
 
+typedef tvec4< bool, highp > bool4
 
+typedef tmat4x2< bool, highp > bool4x2
 
+typedef tmat4x3< bool, highp > bool4x3
 
+typedef tmat4x4< bool, highp > bool4x4
 
+typedef double double1
 
+typedef double double1x1
 
+typedef tvec2< double, highp > double2
 
+typedef tmat2x2< double, highp > double2x2
 
+typedef tmat2x3< double, highp > double2x3
 
+typedef tmat2x4< double, highp > double2x4
 
+typedef tvec3< double, highp > double3
 
+typedef tmat3x2< double, highp > double3x2
 
+typedef tmat3x3< double, highp > double3x3
 
+typedef tmat3x4< double, highp > double3x4
 
+typedef tvec4< double, highp > double4
 
+typedef tmat4x2< double, highp > double4x2
 
+typedef tmat4x3< double, highp > double4x3
 
+typedef tmat4x4< double, highp > double4x4
 
+typedef float float1
 
+typedef float float1x1
 
+typedef tvec2< float, highp > float2
 
+typedef tmat2x2< float, highp > float2x2
 
+typedef tmat2x3< float, highp > float2x3
 
+typedef tmat2x4< float, highp > float2x4
 
+typedef tvec3< float, highp > float3
 
+typedef tmat3x2< float, highp > float3x2
 
+typedef tmat3x3< float, highp > float3x3
 
+typedef tmat3x4< float, highp > float3x4
 
+typedef tvec4< float, highp > float4
 
+typedef tmat4x2< float, highp > float4x2
 
+typedef tmat4x3< float, highp > float4x3
 
+typedef tmat4x4< float, highp > float4x4
 
+typedef int int1
 
+typedef int int1x1
 
+typedef tvec2< int, highp > int2
 
+typedef tmat2x2< int, highp > int2x2
 
+typedef tmat2x3< int, highp > int2x3
 
+typedef tmat2x4< int, highp > int2x4
 
+typedef tvec3< int, highp > int3
 
+typedef tmat3x2< int, highp > int3x2
 
+typedef tmat3x3< int, highp > int3x3
 
+typedef tmat3x4< int, highp > int3x4
 
+typedef tvec4< int, highp > int4
 
+typedef tmat4x2< int, highp > int4x2
 
+typedef tmat4x3< int, highp > int4x3
 
+typedef tmat4x4< int, highp > int4x4
 
- - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Functions

template<typename T , precision P>
detail::tvec3< T, P > hsvColor (detail::tvec3< T, P > const &rgbValue)
 
template<typename T , precision P>
luminosity (detail::tvec3< T, P > const &color)
 
template<typename T , precision P>
detail::tvec3< T, P > rgbColor (detail::tvec3< T, P > const &hsvValue)
 
template<typename T , precision P>
detail::tmat4x4< T, P > saturation (T const s)
 
template<typename T , precision P>
detail::tvec3< T, P > saturation (T const s, detail::tvec3< T, P > const &color)
 
template<typename T , precision P>
detail::tvec4< T, P > saturation (T const s, detail::tvec4< T, P > const &color)
 
+template<typename T , precision P>
GLM_FUNC_QUALIFIER T atan2 (T x, T y)
 
+template<typename T , precision P>
GLM_FUNC_QUALIFIER tvec2< T, P > atan2 (const tvec2< T, P > &x, const tvec2< T, P > &y)
 
+template<typename T , precision P>
GLM_FUNC_QUALIFIER tvec3< T, P > atan2 (const tvec3< T, P > &x, const tvec3< T, P > &y)
 
+template<typename T , precision P>
GLM_FUNC_QUALIFIER tvec4< T, P > atan2 (const tvec4< T, P > &x, const tvec4< T, P > &y)
 
+template<typename genType >
GLM_FUNC_DECL bool isfinite (genType const &x)
 
+template<typename T , precision P>
GLM_FUNC_DECL tvec2< bool, P > isfinite (const tvec2< T, P > &x)
 
+template<typename T , precision P>
GLM_FUNC_DECL tvec3< bool, P > isfinite (const tvec3< T, P > &x)
 
+template<typename T , precision P>
GLM_FUNC_DECL tvec4< bool, P > isfinite (const tvec4< T, P > &x)
 
+template<typename T >
GLM_FUNC_QUALIFIER T lerp (T x, T y, T a)
 
+template<typename T , precision P>
GLM_FUNC_QUALIFIER tvec2< T, P > lerp (const tvec2< T, P > &x, const tvec2< T, P > &y, T a)
 
+template<typename T , precision P>
GLM_FUNC_QUALIFIER tvec3< T, P > lerp (const tvec3< T, P > &x, const tvec3< T, P > &y, T a)
 
+template<typename T , precision P>
GLM_FUNC_QUALIFIER tvec4< T, P > lerp (const tvec4< T, P > &x, const tvec4< T, P > &y, T a)
 
+template<typename T , precision P>
GLM_FUNC_QUALIFIER tvec2< T, P > lerp (const tvec2< T, P > &x, const tvec2< T, P > &y, const tvec2< T, P > &a)
 
+template<typename T , precision P>
GLM_FUNC_QUALIFIER tvec3< T, P > lerp (const tvec3< T, P > &x, const tvec3< T, P > &y, const tvec3< T, P > &a)
 
+template<typename T , precision P>
GLM_FUNC_QUALIFIER tvec4< T, P > lerp (const tvec4< T, P > &x, const tvec4< T, P > &y, const tvec4< T, P > &a)
 
+template<typename T , precision P>
GLM_FUNC_QUALIFIER T saturate (T x)
 
+template<typename T , precision P>
GLM_FUNC_QUALIFIER tvec2< T, P > saturate (const tvec2< T, P > &x)
 
+template<typename T , precision P>
GLM_FUNC_QUALIFIER tvec3< T, P > saturate (const tvec3< T, P > &x)
 
+template<typename T , precision P>
GLM_FUNC_QUALIFIER tvec4< T, P > saturate (const tvec4< T, P > &x)
 
template<typename T , precision P>
GLM_FUNC_QUALIFIER T slerp (tquat< T, P > const &x, tquat< T, P > const &y, T const &a)
 

Detailed Description

-

Related to RGB to HSV conversions and operations.

-

<glm/gtx/color_space.hpp> need to be included to use these functionalities.

+

Provide functions to increase the compatibility with Cg and HLSL languages.

+

<glm/gtx/compatibility.hpp> need to be included to use these functionalities.

Function Documentation

- +
- + - - - - -
detail::tvec3<T, P> glm::hsvColor GLM_FUNC_QUALIFIER T glm::slerp (detail::tvec3< T, P > const & rgbValue)
-
- -

Converts a color from RGB color space to its color in HSV color space.

-
See Also
GLM_GTX_color_space
- -
-
- -
-
- - - - - - - - -
T glm::luminosity (detail::tvec3< T, P > const & color)
-
- -

Compute color luminosity associating ratios (0.33, 0.59, 0.11) to RGB canals.

-
See Also
GLM_GTX_color_space
- -
-
- -
-
- - - - - - - - -
detail::tvec3<T, P> glm::rgbColor (detail::tvec3< T, P > const & hsvValue)
-
- -

Converts a color from HSV color space to its color in RGB color space.

-
See Also
GLM_GTX_color_space
- -
-
- -
-
- - - - - - - - -
detail::tmat4x4<T, P> glm::saturation (T const s)
-
- -

Build a saturation matrix.

-
See Also
GLM_GTX_color_space
- -
-
- -
-
- - - - - - + + - - + + + + + + + + @@ -170,37 +331,12 @@ Functions
detail::tvec3<T, P> glm::saturation (T const s, tquat< T, P > const & x,
detail::tvec3< T, P > const & color tquat< T, P > const & y,
T const & a 
-

Modify the saturation of a color.

-
See Also
GLM_GTX_color_space
+

Returns the slurp interpolation between two quaternions.

+

Spherical linear interpolation of two quaternions.

-
-
- -
-
- - - - - - - - - - - - - - - - - - -
detail::tvec4<T, P> glm::saturation (T const s,
detail::tvec4< T, P > const & color 
)
-
+

Definition at line 76 of file compatibility.hpp.

-

Modify the saturation of a color.

-
See Also
GLM_GTX_color_space
+

References glm::mix().

@@ -209,7 +345,7 @@ Functions diff --git a/doc/api/a00189.html b/doc/api/a00189.html index 64317812..98588245 100644 --- a/doc/api/a00189.html +++ b/doc/api/a00189.html @@ -3,8 +3,8 @@ - -GLM: GLM_GTX_color_space_YCoCg + +0.9.6: GLM_GTX_component_wise @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -41,106 +39,102 @@
Functions
-
GLM_GTX_color_space_YCoCg
+
GLM_GTX_component_wise
GTX Extensions (Experimental)
- - - - - - - - - - - - + + + + + + + + + + + +

Functions

template<typename T , precision P>
detail::tvec3< T, P > rgb2YCoCg (detail::tvec3< T, P > const &rgbColor)
 
template<typename T , precision P>
detail::tvec3< T, P > rgb2YCoCgR (detail::tvec3< T, P > const &rgbColor)
 
template<typename T , precision P>
detail::tvec3< T, P > YCoCg2rgb (detail::tvec3< T, P > const &YCoCgColor)
 
template<typename T , precision P>
detail::tvec3< T, P > YCoCgR2rgb (detail::tvec3< T, P > const &YCoCgColor)
 
template<typename genType >
GLM_FUNC_DECL genType::value_type compAdd (genType const &v)
 
template<typename genType >
GLM_FUNC_DECL genType::value_type compMax (genType const &v)
 
template<typename genType >
GLM_FUNC_DECL genType::value_type compMin (genType const &v)
 
template<typename genType >
GLM_FUNC_DECL genType::value_type compMul (genType const &v)
 

Detailed Description

-

RGB to YCoCg conversions and operations.

-

<glm/gtx/color_space_YCoCg.hpp> need to be included to use these functionalities.

+

Operations between components of a type.

+

<glm/gtx/component_wise.hpp> need to be included to use these functionalities.

Function Documentation

- +
- + - - + +
detail::tvec3<T, P> glm::rgb2YCoCg GLM_FUNC_DECL genType::value_type glm::compAdd (detail::tvec3< T, P > const & rgbColor)genType const & v)
-

Convert a color from RGB color space to YCoCg color space.

-
See Also
GLM_GTX_color_space_YCoCg
+

Add all vector components together.

+
See also
GLM_GTX_component_wise
- +
- + - - + +
detail::tvec3<T, P> glm::rgb2YCoCgR GLM_FUNC_DECL genType::value_type glm::compMax (detail::tvec3< T, P > const & rgbColor)genType const & v)
-

Convert a color from RGB color space to YCoCgR color space.

-
See Also
"YCoCg-R: A Color Space with RGB Reversibility and Low Dynamic Range"
-
-GLM_GTX_color_space_YCoCg
+

Find the maximum value between single vector components.

+
See also
GLM_GTX_component_wise
- +
- + - - + +
detail::tvec3<T, P> glm::YCoCg2rgb GLM_FUNC_DECL genType::value_type glm::compMin (detail::tvec3< T, P > const & YCoCgColor)genType const & v)
-

Convert a color from YCoCg color space to RGB color space.

-
See Also
GLM_GTX_color_space_YCoCg
+

Find the minimum value between single vector components.

+
See also
GLM_GTX_component_wise
- +
- + - - + +
detail::tvec3<T, P> glm::YCoCgR2rgb GLM_FUNC_DECL genType::value_type glm::compMul (detail::tvec3< T, P > const & YCoCgColor)genType const & v)
-

Convert a color from YCoCgR color space to RGB color space.

-
See Also
"YCoCg-R: A Color Space with RGB Reversibility and Low Dynamic Range"
-
-GLM_GTX_color_space_YCoCg
+

Multiply all vector components together.

+
See also
GLM_GTX_component_wise
@@ -149,7 +143,7 @@ Functions diff --git a/doc/api/a00190.html b/doc/api/a00190.html index 875fb0e9..8900d1c7 100644 --- a/doc/api/a00190.html +++ b/doc/api/a00190.html @@ -3,8 +3,8 @@ - -GLM: GLM_GTX_compatibility + +0.9.6: GLM_GTX_dual_quaternion @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -42,338 +40,342 @@ Typedefs | Functions
-
GLM_GTX_compatibility
+
GLM_GTX_dual_quaternion
GTX Extensions (Experimental)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + +

Typedefs

-typedef bool bool1
 
-typedef bool bool1x1
 
-typedef detail::tvec2< bool,
-highp > 
bool2
 
-typedef detail::tmat2x2< bool,
-highp > 
bool2x2
 
-typedef detail::tmat2x3< bool,
-highp > 
bool2x3
 
-typedef detail::tmat2x4< bool,
-highp > 
bool2x4
 
-typedef detail::tvec3< bool,
-highp > 
bool3
 
-typedef detail::tmat3x2< bool,
-highp > 
bool3x2
 
-typedef detail::tmat3x3< bool,
-highp > 
bool3x3
 
-typedef detail::tmat3x4< bool,
-highp > 
bool3x4
 
-typedef detail::tvec4< bool,
-highp > 
bool4
 
-typedef detail::tmat4x2< bool,
-highp > 
bool4x2
 
-typedef detail::tmat4x3< bool,
-highp > 
bool4x3
 
-typedef detail::tmat4x4< bool,
-highp > 
bool4x4
 
-typedef double double1
 
-typedef double double1x1
 
-typedef detail::tvec2< double,
-highp > 
double2
 
-typedef detail::tmat2x2
-< double, highp > 
double2x2
 
-typedef detail::tmat2x3
-< double, highp > 
double2x3
 
-typedef detail::tmat2x4
-< double, highp > 
double2x4
 
-typedef detail::tvec3< double,
-highp > 
double3
 
-typedef detail::tmat3x2
-< double, highp > 
double3x2
 
-typedef detail::tmat3x3
-< double, highp > 
double3x3
 
-typedef detail::tmat3x4
-< double, highp > 
double3x4
 
-typedef detail::tvec4< double,
-highp > 
double4
 
-typedef detail::tmat4x2
-< double, highp > 
double4x2
 
-typedef detail::tmat4x3
-< double, highp > 
double4x3
 
-typedef detail::tmat4x4
-< double, highp > 
double4x4
 
-typedef float float1
 
-typedef float float1x1
 
-typedef detail::tvec2< float,
-highp > 
float2
 
-typedef detail::tmat2x2< float,
-highp > 
float2x2
 
-typedef detail::tmat2x3< float,
-highp > 
float2x3
 
-typedef detail::tmat2x4< float,
-highp > 
float2x4
 
-typedef detail::tvec3< float,
-highp > 
float3
 
-typedef detail::tmat3x2< float,
-highp > 
float3x2
 
-typedef detail::tmat3x3< float,
-highp > 
float3x3
 
-typedef detail::tmat3x4< float,
-highp > 
float3x4
 
-typedef detail::tvec4< float,
-highp > 
float4
 
-typedef detail::tmat4x2< float,
-highp > 
float4x2
 
-typedef detail::tmat4x3< float,
-highp > 
float4x3
 
-typedef detail::tmat4x4< float,
-highp > 
float4x4
 
-typedef int int1
 
-typedef int int1x1
 
-typedef detail::tvec2< int, highp > int2
 
-typedef detail::tmat2x2< int,
-highp > 
int2x2
 
-typedef detail::tmat2x3< int,
-highp > 
int2x3
 
-typedef detail::tmat2x4< int,
-highp > 
int2x4
 
-typedef detail::tvec3< int, highp > int3
 
-typedef detail::tmat3x2< int,
-highp > 
int3x2
 
-typedef detail::tmat3x3< int,
-highp > 
int3x3
 
-typedef detail::tmat3x4< int,
-highp > 
int3x4
 
-typedef detail::tvec4< int, highp > int4
 
-typedef detail::tmat4x2< int,
-highp > 
int4x2
 
-typedef detail::tmat4x3< int,
-highp > 
int4x3
 
-typedef detail::tmat4x4< int,
-highp > 
int4x4
 
typedef highp_ddualquat ddualquat
 
typedef highp_fdualquat dualquat
 
typedef highp_fdualquat fdualquat
 
typedef tdualquat< double, highp > highp_ddualquat
 
typedef tdualquat< float, highp > highp_dualquat
 
typedef tdualquat< float, highp > highp_fdualquat
 
typedef tdualquat< double, lowp > lowp_ddualquat
 
typedef tdualquat< float, lowp > lowp_dualquat
 
typedef tdualquat< float, lowp > lowp_fdualquat
 
typedef tdualquat< double,
+mediump > 
mediump_ddualquat
 
typedef tdualquat< float, mediump > mediump_dualquat
 
typedef tdualquat< float, mediump > mediump_fdualquat
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + +

Functions

-template<typename T , precision P>
GLM_FUNC_QUALIFIER T atan2 (T x, T y)
 
-template<typename T , precision P>
GLM_FUNC_QUALIFIER
-detail::tvec2< T, P > 
atan2 (const detail::tvec2< T, P > &x, const detail::tvec2< T, P > &y)
 
-template<typename T , precision P>
GLM_FUNC_QUALIFIER
-detail::tvec3< T, P > 
atan2 (const detail::tvec3< T, P > &x, const detail::tvec3< T, P > &y)
 
-template<typename T , precision P>
GLM_FUNC_QUALIFIER
-detail::tvec4< T, P > 
atan2 (const detail::tvec4< T, P > &x, const detail::tvec4< T, P > &y)
 
-template<typename genType >
bool isfinite (genType const &x)
 
-template<typename T , precision P>
detail::tvec2< bool, P > isfinite (const detail::tvec2< T, P > &x)
 
-template<typename T , precision P>
detail::tvec3< bool, P > isfinite (const detail::tvec3< T, P > &x)
 
-template<typename T , precision P>
detail::tvec4< bool, P > isfinite (const detail::tvec4< T, P > &x)
 
-template<typename T >
GLM_FUNC_QUALIFIER T lerp (T x, T y, T a)
 
-template<typename T , precision P>
GLM_FUNC_QUALIFIER
-detail::tvec2< T, P > 
lerp (const detail::tvec2< T, P > &x, const detail::tvec2< T, P > &y, T a)
 
-template<typename T , precision P>
GLM_FUNC_QUALIFIER
-detail::tvec3< T, P > 
lerp (const detail::tvec3< T, P > &x, const detail::tvec3< T, P > &y, T a)
 
-template<typename T , precision P>
GLM_FUNC_QUALIFIER
-detail::tvec4< T, P > 
lerp (const detail::tvec4< T, P > &x, const detail::tvec4< T, P > &y, T a)
 
-template<typename T , precision P>
GLM_FUNC_QUALIFIER
-detail::tvec2< T, P > 
lerp (const detail::tvec2< T, P > &x, const detail::tvec2< T, P > &y, const detail::tvec2< T, P > &a)
 
-template<typename T , precision P>
GLM_FUNC_QUALIFIER
-detail::tvec3< T, P > 
lerp (const detail::tvec3< T, P > &x, const detail::tvec3< T, P > &y, const detail::tvec3< T, P > &a)
 
-template<typename T , precision P>
GLM_FUNC_QUALIFIER
-detail::tvec4< T, P > 
lerp (const detail::tvec4< T, P > &x, const detail::tvec4< T, P > &y, const detail::tvec4< T, P > &a)
 
-template<typename T , precision P>
GLM_FUNC_QUALIFIER T saturate (T x)
 
-template<typename T , precision P>
GLM_FUNC_QUALIFIER
-detail::tvec2< T, P > 
saturate (const detail::tvec2< T, P > &x)
 
-template<typename T , precision P>
GLM_FUNC_QUALIFIER
-detail::tvec3< T, P > 
saturate (const detail::tvec3< T, P > &x)
 
-template<typename T , precision P>
GLM_FUNC_QUALIFIER
-detail::tvec4< T, P > 
saturate (const detail::tvec4< T, P > &x)
 
template<typename T , precision P>
GLM_FUNC_QUALIFIER T slerp (detail::tquat< T, P > const &x, detail::tquat< T, P > const &y, T const &a)
 
template<typename T , precision P>
GLM_FUNC_DECL tdualquat< T, P > dualquat_cast (tmat2x4< T, P > const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL tdualquat< T, P > dualquat_cast (tmat3x4< T, P > const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL tdualquat< T, P > inverse (tdualquat< T, P > const &q)
 
template<typename T , precision P>
GLM_FUNC_DECL tdualquat< T, P > lerp (tdualquat< T, P > const &x, tdualquat< T, P > const &y, T const &a)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat2x4< T, P > mat2x4_cast (tdualquat< T, P > const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat3x4< T, P > mat3x4_cast (tdualquat< T, P > const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL tdualquat< T, P > normalize (tdualquat< T, P > const &q)
 

Detailed Description

-

Provide functions to increase the compatibility with Cg and HLSL languages.

-

<glm/gtx/compatibility.hpp> need to be included to use these functionalities.

-

Function Documentation

- +

Defines a templated dual-quaternion type and several dual-quaternion operations.

+

<glm/gtx/dual_quaternion.hpp> need to be included to use these functionalities.

+

Typedef Documentation

+
- + + +
GLM_FUNC_QUALIFIER T glm::slerp typedef highp_ddualquat ddualquat
+
+ +

Dual-quaternion of default double-precision floating-point numbers.

+
See also
GLM_GTX_dual_quaternion
+ +

Definition at line 300 of file dual_quaternion.hpp.

+ +
+
+ +
+
+ + + + +
typedef highp_fdualquat dualquat
+
+ +

Dual-quaternion of floating-point numbers.

+
See also
GLM_GTX_dual_quaternion
+ +

Definition at line 276 of file dual_quaternion.hpp.

+ +
+
+ +
+
+ + + + +
typedef highp_fdualquat fdualquat
+
+ +

Dual-quaternion of single-precision floating-point numbers.

+
See also
GLM_GTX_dual_quaternion
+ +

Definition at line 281 of file dual_quaternion.hpp.

+ +
+
+ +
+
+ + + + +
typedef tdualquat<double, highp> highp_ddualquat
+
+ +

Dual-quaternion of high double-precision floating-point numbers.

+
See also
GLM_GTX_dual_quaternion
+ +

Definition at line 269 of file dual_quaternion.hpp.

+ +
+
+ +
+
+ + + + +
typedef tdualquat<float, highp> highp_dualquat
+
+ +

Dual-quaternion of high single-precision floating-point numbers.

+
See also
GLM_GTX_dual_quaternion
+ +

Definition at line 237 of file dual_quaternion.hpp.

+ +
+
+ +
+
+ + + + +
typedef tdualquat<float, highp> highp_fdualquat
+
+ +

Dual-quaternion of high single-precision floating-point numbers.

+
See also
GLM_GTX_dual_quaternion
+ +

Definition at line 253 of file dual_quaternion.hpp.

+ +
+
+ +
+
+ + + + +
typedef tdualquat<double, lowp> lowp_ddualquat
+
+ +

Dual-quaternion of low double-precision floating-point numbers.

+
See also
GLM_GTX_dual_quaternion
+ +

Definition at line 259 of file dual_quaternion.hpp.

+ +
+
+ +
+
+ + + + +
typedef tdualquat<float, lowp> lowp_dualquat
+
+ +

Dual-quaternion of low single-precision floating-point numbers.

+
See also
GLM_GTX_dual_quaternion
+ +

Definition at line 227 of file dual_quaternion.hpp.

+ +
+
+ +
+
+ + + + +
typedef tdualquat<float, lowp> lowp_fdualquat
+
+ +

Dual-quaternion of low single-precision floating-point numbers.

+
See also
GLM_GTX_dual_quaternion
+ +

Definition at line 243 of file dual_quaternion.hpp.

+ +
+
+ +
+
+ + + + +
typedef tdualquat<double, mediump> mediump_ddualquat
+
+ +

Dual-quaternion of medium double-precision floating-point numbers.

+
See also
GLM_GTX_dual_quaternion
+ +

Definition at line 264 of file dual_quaternion.hpp.

+ +
+
+ +
+
+ + + + +
typedef tdualquat<float, mediump> mediump_dualquat
+
+ +

Dual-quaternion of medium single-precision floating-point numbers.

+
See also
GLM_GTX_dual_quaternion
+ +

Definition at line 232 of file dual_quaternion.hpp.

+ +
+
+ +
+
+ + + + +
typedef tdualquat<float, mediump> mediump_fdualquat
+
+ +

Dual-quaternion of medium single-precision floating-point numbers.

+
See also
GLM_GTX_dual_quaternion
+ +

Definition at line 248 of file dual_quaternion.hpp.

+ +
+
+

Function Documentation

+ +
+
+ + + - + + + + +
GLM_FUNC_DECL tdualquat<T, P> glm::dualquat_cast (detail::tquat< T, P > const & tmat2x4< T, P > const & x)
+
+ +

Converts a 2 * 4 matrix (matrix which holds real and dual parts) to a quaternion.

+
See also
GLM_GTX_dual_quaternion
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL tdualquat<T, P> glm::dualquat_cast (tmat3x4< T, P > const & x)
+
+ +

Converts a 3 * 4 matrix (augmented matrix rotation + translation) to a quaternion.

+
See also
GLM_GTX_dual_quaternion
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL tdualquat<T, P> glm::inverse (tdualquat< T, P > const & q)
+
+ +

Returns the q inverse.

+
See also
GLM_GTX_dual_quaternion
+ +
+
+ +
+
+ + + + + - + @@ -390,12 +392,65 @@ detail::tvec4< T, P >  diff --git a/doc/api/a00192.html b/doc/api/a00192.html index a5510f89..22e4b0a0 100644 --- a/doc/api/a00192.html +++ b/doc/api/a00192.html @@ -3,8 +3,8 @@ - -GLM: GLM_GTX_dual_quaternion + +0.9.6: GLM_GTX_extend @@ -16,9 +16,9 @@
GLM_FUNC_DECL tdualquat<T, P> glm::lerp (tdualquat< T, P > const &  x,
detail::tquat< T, P > const & tdualquat< T, P > const &  y,
-

Returns the slurp interpolation between two quaternions.

-

Spherical linear interpolation of two quaternions.

+

Returns the linear interpolation of two dual quaternion.

+
See also
gtc_dual_quaternion
-

Definition at line 73 of file compatibility.hpp.

+ + + +
+
+ + + + + + + + +
GLM_FUNC_DECL tmat2x4<T, P> glm::mat2x4_cast (tdualquat< T, P > const & x)
+
-

References glm::mix().

+

Converts a quaternion to a 2 * 4 matrix.

+
See also
GLM_GTX_dual_quaternion
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL tmat3x4<T, P> glm::mat3x4_cast (tdualquat< T, P > const & x)
+
+ +

Converts a quaternion to a 3 * 4 matrix.

+
See also
GLM_GTX_dual_quaternion
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL tdualquat<T, P> glm::normalize (tdualquat< T, P > const & q)
+
+ +

Returns the normalized quaternion.

+
See also
GLM_GTX_dual_quaternion
@@ -404,7 +459,7 @@ detail::tvec4< T, P > 
diff --git a/doc/api/a00191.html b/doc/api/a00191.html index d7dfe27e..52422907 100644 --- a/doc/api/a00191.html +++ b/doc/api/a00191.html @@ -3,8 +3,8 @@ - -GLM: GLM_GTX_component_wise + +0.9.6: GLM_GTX_euler_angles @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -41,102 +39,449 @@
-
GLM_GTX_component_wise
+
GLM_GTX_euler_angles
- - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Functions

template<typename genType >
genType::value_type compAdd (genType const &v)
 
template<typename genType >
genType::value_type compMax (genType const &v)
 
template<typename genType >
genType::value_type compMin (genType const &v)
 
template<typename genType >
genType::value_type compMul (genType const &v)
 
template<typename T >
GLM_FUNC_DECL tmat4x4< T,
+defaultp > 
eulerAngleX (T const &angleX)
 
template<typename T >
GLM_FUNC_DECL tmat4x4< T,
+defaultp > 
eulerAngleXY (T const &angleX, T const &angleY)
 
template<typename T >
GLM_FUNC_DECL tmat4x4< T,
+defaultp > 
eulerAngleXZ (T const &angleX, T const &angleZ)
 
template<typename T >
GLM_FUNC_DECL tmat4x4< T,
+defaultp > 
eulerAngleY (T const &angleY)
 
template<typename T >
GLM_FUNC_DECL tmat4x4< T,
+defaultp > 
eulerAngleYX (T const &angleY, T const &angleX)
 
template<typename T >
GLM_FUNC_DECL tmat4x4< T,
+defaultp > 
eulerAngleYXZ (T const &yaw, T const &pitch, T const &roll)
 
template<typename T >
GLM_FUNC_DECL tmat4x4< T,
+defaultp > 
eulerAngleYZ (T const &angleY, T const &angleZ)
 
template<typename T >
GLM_FUNC_DECL tmat4x4< T,
+defaultp > 
eulerAngleZ (T const &angleZ)
 
template<typename T >
GLM_FUNC_DECL tmat4x4< T,
+defaultp > 
eulerAngleZX (T const &angle, T const &angleX)
 
template<typename T >
GLM_FUNC_DECL tmat4x4< T,
+defaultp > 
eulerAngleZY (T const &angleZ, T const &angleY)
 
template<typename T >
GLM_FUNC_DECL tmat2x2< T,
+defaultp > 
orientate2 (T const &angle)
 
template<typename T >
GLM_FUNC_DECL tmat3x3< T,
+defaultp > 
orientate3 (T const &angle)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat3x3< T, P > orientate3 (tvec3< T, P > const &angles)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat4x4< T, P > orientate4 (tvec3< T, P > const &angles)
 
template<typename T >
GLM_FUNC_DECL tmat4x4< T,
+defaultp > 
yawPitchRoll (T const &yaw, T const &pitch, T const &roll)
 

Detailed Description

-

Operations between components of a type.

-

<glm/gtx/component_wise.hpp> need to be included to use these functionalities.

+

Build matrices from Euler angles.

+

<glm/gtx/euler_angles.hpp> need to be included to use these functionalities.

Function Documentation

- +
- + - - + +
genType::value_type glm::compAdd GLM_FUNC_DECL tmat4x4<T, defaultp> glm::eulerAngleX (genType const & v)T const & angleX)
-

Add all vector components together.

-
See Also
GLM_GTX_component_wise
+

Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle X.

+
See also
GLM_GTX_euler_angles
- +
- + - - + + + + + + + + + + + + + + +
genType::value_type glm::compMax GLM_FUNC_DECL tmat4x4<T, defaultp> glm::eulerAngleXY (genType const & v)T const & angleX,
T const & angleY 
)
+
+ +

Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Y).

+
See also
GLM_GTX_euler_angles
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL tmat4x4<T, defaultp> glm::eulerAngleXZ (T const & angleX,
T const & angleZ 
)
+
+ +

Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Z).

+
See also
GLM_GTX_euler_angles
+ +
+
+ +
+
+ + + + + +
GLM_FUNC_DECL tmat4x4<T, defaultp> glm::eulerAngleY (T const & angleY)
-

Find the maximum value between single vector components.

-
See Also
GLM_GTX_component_wise
+

Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle Y.

+
See also
GLM_GTX_euler_angles
- +
- + - - + + + + + + + + + + + + + + +
genType::value_type glm::compMin GLM_FUNC_DECL tmat4x4<T, defaultp> glm::eulerAngleYX (genType const & v)T const & angleY,
T const & angleX 
)
+
+ +

Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X).

+
See also
GLM_GTX_euler_angles
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL tmat4x4<T, defaultp> glm::eulerAngleYXZ (T const & yaw,
T const & pitch,
T const & roll 
)
+
+ +

Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z).

+
See also
GLM_GTX_euler_angles
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL tmat4x4<T, defaultp> glm::eulerAngleYZ (T const & angleY,
T const & angleZ 
)
+
+ +

Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * Z).

+
See also
GLM_GTX_euler_angles
+ +
+
+ +
+
+ + + + + +
GLM_FUNC_DECL tmat4x4<T, defaultp> glm::eulerAngleZ (T const & angleZ)
-

Find the minimum value between single vector components.

-
See Also
GLM_GTX_component_wise
+

Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle Z.

+
See also
GLM_GTX_euler_angles
- +
- + - - + + + + + + + + + + + + + + +
genType::value_type glm::compMul GLM_FUNC_DECL tmat4x4<T, defaultp> glm::eulerAngleZX (genType const & v)T const & angle,
T const & angleX 
)
+
+ +

Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * X).

+
See also
GLM_GTX_euler_angles
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL tmat4x4<T, defaultp> glm::eulerAngleZY (T const & angleZ,
T const & angleY 
)
+
+ +

Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * Y).

+
See also
GLM_GTX_euler_angles
+ +
+
+ +
+
+ + + + + +
GLM_FUNC_DECL tmat2x2<T, defaultp> glm::orientate2 (T const & angle)
-

Multiply all vector components together.

-
See Also
GLM_GTX_component_wise
+

Creates a 2D 2 * 2 rotation matrix from an euler angle.

+
See also
GLM_GTX_euler_angles
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL tmat3x3<T, defaultp> glm::orientate3 (T const & angle)
+
+ +

Creates a 2D 4 * 4 homogeneous rotation matrix from an euler angle.

+
See also
GLM_GTX_euler_angles
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL tmat3x3<T, P> glm::orientate3 (tvec3< T, P > const & angles)
+
+ +

Creates a 3D 3 * 3 rotation matrix from euler angles (Y * X * Z).

+
See also
GLM_GTX_euler_angles
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL tmat4x4<T, P> glm::orientate4 (tvec3< T, P > const & angles)
+
+ +

Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z).

+
See also
GLM_GTX_euler_angles
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL tmat4x4<T, defaultp> glm::yawPitchRoll (T const & yaw,
T const & pitch,
T const & roll 
)
+
+ +

Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z).

+
See also
GLM_GTX_euler_angles
@@ -145,7 +490,7 @@ Functions
+ @@ -26,373 +26,54 @@
-
GLM -  0.9.5 +
0.9.6
- +
-
GLM_GTX_dual_quaternion
+
- - - - - - - - - - - - - - - - - - - - - - - - - -

-Typedefs

typedef highp_ddualquat ddualquat
 
typedef highp_fdualquat dualquat
 
typedef highp_fdualquat fdualquat
 
typedef detail::tdualquat
-< double, highp > 
highp_ddualquat
 
typedef detail::tdualquat
-< float, highp > 
highp_dualquat
 
typedef detail::tdualquat
-< float, highp > 
highp_fdualquat
 
typedef detail::tdualquat
-< double, lowp > 
lowp_ddualquat
 
typedef detail::tdualquat
-< float, lowp > 
lowp_dualquat
 
typedef detail::tdualquat
-< float, lowp > 
lowp_fdualquat
 
typedef detail::tdualquat
-< double, mediump > 
mediump_ddualquat
 
typedef detail::tdualquat
-< float, mediump > 
mediump_dualquat
 
typedef detail::tdualquat
-< float, mediump > 
mediump_fdualquat
 
- - - - - - - - - - - - - - - - - - - - - + + +

Functions

template<typename T , precision P>
detail::tdualquat< T, P > dualquat_cast (detail::tmat2x4< T, P > const &x)
 
template<typename T , precision P>
detail::tdualquat< T, P > dualquat_cast (detail::tmat3x4< T, P > const &x)
 
template<typename T , precision P>
detail::tdualquat< T, P > inverse (detail::tdualquat< T, P > const &q)
 
template<typename T , precision P>
detail::tdualquat< T, P > lerp (detail::tdualquat< T, P > const &x, detail::tdualquat< T, P > const &y, T const &a)
 
template<typename T , precision P>
detail::tmat2x4< T, P > mat2x4_cast (detail::tdualquat< T, P > const &x)
 
template<typename T , precision P>
detail::tmat3x4< T, P > mat3x4_cast (detail::tdualquat< T, P > const &x)
 
template<typename T , precision P>
detail::tdualquat< T, P > normalize (detail::tdualquat< T, P > const &q)
 
template<typename genType >
GLM_FUNC_DECL genType extend (genType const &Origin, genType const &Source, typename genType::value_type const Length)
 

Detailed Description

-

Defines a templated dual-quaternion type and several dual-quaternion operations.

-

<glm/gtx/dual_quaternion.hpp> need to be included to use these functionalities.

-

Typedef Documentation

- -
-
- - - - -
typedef highp_ddualquat ddualquat
-
- -

Dual-quaternion of default double-precision floating-point numbers.

-
See Also
GLM_GTX_dual_quaternion
- -

Definition at line 279 of file dual_quaternion.hpp.

- -
-
- -
-
- - - - -
typedef highp_fdualquat dualquat
-
- -

Dual-quaternion of floating-point numbers.

-
See Also
GLM_GTX_dual_quaternion
- -

Definition at line 255 of file dual_quaternion.hpp.

- -
-
- -
-
- - - - -
typedef highp_fdualquat fdualquat
-
- -

Dual-quaternion of single-precision floating-point numbers.

-
See Also
GLM_GTX_dual_quaternion
- -

Definition at line 260 of file dual_quaternion.hpp.

- -
-
- -
-
- - - - -
typedef detail::tdualquat<double, highp> highp_ddualquat
-
- -

Dual-quaternion of high double-precision floating-point numbers.

-
See Also
GLM_GTX_dual_quaternion
- -

Definition at line 248 of file dual_quaternion.hpp.

- -
-
- -
-
- - - - -
typedef detail::tdualquat<float, highp> highp_dualquat
-
- -

Dual-quaternion of high single-precision floating-point numbers.

-
See Also
GLM_GTX_dual_quaternion
- -

Definition at line 216 of file dual_quaternion.hpp.

- -
-
- -
-
- - - - -
typedef detail::tdualquat<float, highp> highp_fdualquat
-
- -

Dual-quaternion of high single-precision floating-point numbers.

-
See Also
GLM_GTX_dual_quaternion
- -

Definition at line 232 of file dual_quaternion.hpp.

- -
-
- -
-
- - - - -
typedef detail::tdualquat<double, lowp> lowp_ddualquat
-
- -

Dual-quaternion of low double-precision floating-point numbers.

-
See Also
GLM_GTX_dual_quaternion
- -

Definition at line 238 of file dual_quaternion.hpp.

- -
-
- -
-
- - - - -
typedef detail::tdualquat<float, lowp> lowp_dualquat
-
- -

Dual-quaternion of low single-precision floating-point numbers.

-
See Also
GLM_GTX_dual_quaternion
- -

Definition at line 206 of file dual_quaternion.hpp.

- -
-
- -
-
- - - - -
typedef detail::tdualquat<float, lowp> lowp_fdualquat
-
- -

Dual-quaternion of low single-precision floating-point numbers.

-
See Also
GLM_GTX_dual_quaternion
- -

Definition at line 222 of file dual_quaternion.hpp.

- -
-
- -
-
- - - - -
typedef detail::tdualquat<double, mediump> mediump_ddualquat
-
- -

Dual-quaternion of medium double-precision floating-point numbers.

-
See Also
GLM_GTX_dual_quaternion
- -

Definition at line 243 of file dual_quaternion.hpp.

- -
-
- -
-
- - - - -
typedef detail::tdualquat<float, mediump> mediump_dualquat
-
- -

Dual-quaternion of medium single-precision floating-point numbers.

-
See Also
GLM_GTX_dual_quaternion
- -

Definition at line 211 of file dual_quaternion.hpp.

- -
-
- -
-
- - - - -
typedef detail::tdualquat<float, mediump> mediump_fdualquat
-
- -

Dual-quaternion of medium single-precision floating-point numbers.

-
See Also
GLM_GTX_dual_quaternion
- -

Definition at line 227 of file dual_quaternion.hpp.

- -
-
+

Extend a position from a source to a position at a defined length.

+

<glm/gtx/extend.hpp> need to be included to use these functionalities.

Function Documentation

- +
- + - - - - -
detail::tdualquat<T, P> glm::dualquat_cast GLM_FUNC_DECL genType glm::extend (detail::tmat2x4< T, P > const & x)
-
- -

Converts a 2 * 4 matrix (matrix which holds real and dual parts) to a quaternion.

-
See Also
GLM_GTX_dual_quaternion
- -
-
- -
-
- - - - - - - - -
detail::tdualquat<T, P> glm::dualquat_cast (detail::tmat3x4< T, P > const & x)
-
- -

Converts a 3 * 4 matrix (augmented matrix rotation + translation) to a quaternion.

-
See Also
GLM_GTX_dual_quaternion
- -
-
- -
-
- - - - - - - - -
detail::tdualquat<T, P> glm::inverse (detail::tdualquat< T, P > const & q)
-
- -

Returns the q inverse.

-
See Also
GLM_GTX_dual_quaternion
- -
-
- -
-
- - - - - - + + - - + + - - + + @@ -402,65 +83,8 @@ Functions
detail::tdualquat<T, P> glm::lerp (detail::tdualquat< T, P > const & x, genType const & Origin,
detail::tdualquat< T, P > const & y, genType const & Source,
T const & a typename genType::value_type const Length 
-

Returns the linear interpolation of two dual quaternion.

-
See Also
GLM_GTX_dual_quaternion
- -
-
- -
-
- - - - - - - - -
detail::tmat2x4<T, P> glm::mat2x4_cast (detail::tdualquat< T, P > const & x)
-
- -

Converts a quaternion to a 2 * 4 matrix.

-
See Also
GLM_GTX_dual_quaternion
- -
-
- -
-
- - - - - - - - -
detail::tmat3x4<T, P> glm::mat3x4_cast (detail::tdualquat< T, P > const & x)
-
- -

Converts a quaternion to a 3 * 4 matrix.

-
See Also
GLM_GTX_dual_quaternion
- -
-
- -
-
- - - - - - - - -
detail::tdualquat<T, P> glm::normalize (detail::tdualquat< T, P > const & q)
-
- -

Returns the normalized quaternion.

-
See Also
GLM_GTX_dual_quaternion
+

Extends of Length the Origin position using the (Source - Origin) direction.

+
See also
GLM_GTX_extend
@@ -469,7 +93,7 @@ Functions diff --git a/doc/api/a00193.html b/doc/api/a00193.html index 17350bf7..12afb963 100644 --- a/doc/api/a00193.html +++ b/doc/api/a00193.html @@ -3,8 +3,8 @@ - -GLM: GLM_GTX_euler_angles + +0.9.6: GLM_GTX_extented_min_max @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -41,96 +39,74 @@
Functions
-
GLM_GTX_euler_angles
+
GLM_GTX_extented_min_max
GTX Extensions (Experimental)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Functions

template<typename T >
detail::tmat4x4< T, defaultp > eulerAngleX (T const &angleX)
 
template<typename T >
detail::tmat4x4< T, defaultp > eulerAngleXY (T const &angleX, T const &angleY)
 
template<typename T >
detail::tmat4x4< T, defaultp > eulerAngleXZ (T const &angleX, T const &angleZ)
 
template<typename T >
detail::tmat4x4< T, defaultp > eulerAngleY (T const &angleY)
 
template<typename T >
detail::tmat4x4< T, defaultp > eulerAngleYX (T const &angleY, T const &angleX)
 
template<typename T >
detail::tmat4x4< T, defaultp > eulerAngleYXZ (T const &yaw, T const &pitch, T const &roll)
 
template<typename T >
detail::tmat4x4< T, defaultp > eulerAngleYZ (T const &angleY, T const &angleZ)
 
template<typename T >
detail::tmat4x4< T, defaultp > eulerAngleZ (T const &angleZ)
 
template<typename T >
detail::tmat4x4< T, defaultp > eulerAngleZX (T const &angle, T const &angleX)
 
template<typename T >
detail::tmat4x4< T, defaultp > eulerAngleZY (T const &angleZ, T const &angleY)
 
template<typename T >
detail::tmat2x2< T, defaultp > orientate2 (T const &angle)
 
template<typename T >
detail::tmat3x3< T, defaultp > orientate3 (T const &angle)
 
template<typename T , precision P>
detail::tmat3x3< T, P > orientate3 (detail::tvec3< T, P > const &angles)
 
template<typename T , precision P>
detail::tmat4x4< T, P > orientate4 (detail::tvec3< T, P > const &angles)
 
template<typename T >
detail::tmat4x4< T, defaultp > yawPitchRoll (T const &yaw, T const &pitch, T const &roll)
 
template<typename T >
GLM_FUNC_DECL T max (T const &x, T const &y, T const &z)
 
template<typename T , template< typename > class C>
GLM_FUNC_DECL C< T > max (C< T > const &x, typename C< T >::T const &y, typename C< T >::T const &z)
 
template<typename T , template< typename > class C>
GLM_FUNC_DECL C< T > max (C< T > const &x, C< T > const &y, C< T > const &z)
 
template<typename T >
GLM_FUNC_DECL T max (T const &x, T const &y, T const &z, T const &w)
 
template<typename T , template< typename > class C>
GLM_FUNC_DECL C< T > max (C< T > const &x, typename C< T >::T const &y, typename C< T >::T const &z, typename C< T >::T const &w)
 
template<typename T , template< typename > class C>
GLM_FUNC_DECL C< T > max (C< T > const &x, C< T > const &y, C< T > const &z, C< T > const &w)
 
template<typename T >
GLM_FUNC_DECL T min (T const &x, T const &y, T const &z)
 
template<typename T , template< typename > class C>
GLM_FUNC_DECL C< T > min (C< T > const &x, typename C< T >::T const &y, typename C< T >::T const &z)
 
template<typename T , template< typename > class C>
GLM_FUNC_DECL C< T > min (C< T > const &x, C< T > const &y, C< T > const &z)
 
template<typename T >
GLM_FUNC_DECL T min (T const &x, T const &y, T const &z, T const &w)
 
template<typename T , template< typename > class C>
GLM_FUNC_DECL C< T > min (C< T > const &x, typename C< T >::T const &y, typename C< T >::T const &z, typename C< T >::T const &w)
 
template<typename T , template< typename > class C>
GLM_FUNC_DECL C< T > min (C< T > const &x, C< T > const &y, C< T > const &z, C< T > const &w)
 

Detailed Description

-

Build matrices from Euler angles.

-

<glm/gtx/euler_angles.hpp> need to be included to use these functionalities.

+

Min and max functions for 3 to 4 parameters.

+

<glm/gtx/extented_min_max.hpp> need to be included to use these functionalities.

Function Documentation

- +
- + - - - -
detail::tmat4x4<T, defaultp> glm::eulerAngleX GLM_FUNC_DECL T glm::max ( T const & angleX)
-
- -

Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle X.

-
See Also
GLM_GTX_euler_angles
- -
-
- -
-
- - - - - - + - + + + + + + + @@ -140,26 +116,32 @@ Functions
detail::tmat4x4<T, defaultp> glm::eulerAngleXY (T const & angleX, x,
T const & angleY y,
T const & z 
-

Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Y).

-
See Also
GLM_GTX_euler_angles
+

Return the maximum component-wise values of 3 inputs.

+
See also
GLM_GTX_extented_min_max
- +
- + - - + + - - + + + + + + + + @@ -169,45 +151,32 @@ Functions
detail::tmat4x4<T, defaultp> glm::eulerAngleXZ GLM_FUNC_DECL C<T> glm::max (T const & angleX, C< T > const & x,
T const & angleZ typename C< T >::T const & y,
typename C< T >::T const & z 
-

Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Z).

-
See Also
GLM_GTX_euler_angles
+

Return the maximum component-wise values of 3 inputs.

+
See also
GLM_GTX_extented_min_max
- +
- + - - - - -
detail::tmat4x4<T, defaultp> glm::eulerAngleY GLM_FUNC_DECL C<T> glm::max (T const & angleY)
-
- -

Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle Y.

-
See Also
GLM_GTX_euler_angles
- -
-
- -
-
- - - - - - + + - - + + + + + + + + @@ -217,32 +186,38 @@ Functions
detail::tmat4x4<T, defaultp> glm::eulerAngleYX (T const & angleY, C< T > const & x,
T const & angleX C< T > const & y,
C< T > const & z 
-

Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X).

-
See Also
GLM_GTX_euler_angles
+

Return the maximum component-wise values of 3 inputs.

+
See also
GLM_GTX_extented_min_max
- +
- + - + - + - + + + + + + + @@ -252,26 +227,38 @@ Functions
detail::tmat4x4<T, defaultp> glm::eulerAngleYXZ GLM_FUNC_DECL T glm::max ( T const & yaw, x,
T const & pitch, y,
T const & roll z,
T const & w 
-

Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z).

-
See Also
GLM_GTX_euler_angles
+

Return the maximum component-wise values of 4 inputs.

+
See also
GLM_GTX_extented_min_max
- +
- + - - + + - - + + + + + + + + + + + + + + @@ -281,45 +268,38 @@ Functions
detail::tmat4x4<T, defaultp> glm::eulerAngleYZ GLM_FUNC_DECL C<T> glm::max (T const & angleY, C< T > const & x,
T const & angleZ typename C< T >::T const & y,
typename C< T >::T const & z,
typename C< T >::T const & w 
-

Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * Z).

-
See Also
GLM_GTX_euler_angles
+

Return the maximum component-wise values of 4 inputs.

+
See also
GLM_GTX_extented_min_max
- +
- + - - - - -
detail::tmat4x4<T, defaultp> glm::eulerAngleZ GLM_FUNC_DECL C<T> glm::max (T const & angleZ)
-
- -

Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle Z.

-
See Also
GLM_GTX_euler_angles
- -
-
- -
-
- - - - - - + + - - + + + + + + + + + + + + + + @@ -329,26 +309,32 @@ Functions
detail::tmat4x4<T, defaultp> glm::eulerAngleZX (T const & angle, C< T > const & x,
T const & angleX C< T > const & y,
C< T > const & z,
C< T > const & w 
-

Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * X).

-
See Also
GLM_GTX_euler_angles
+

Return the maximum component-wise values of 4 inputs.

+
See also
GLM_GTX_extented_min_max
- +
- + - + - + + + + + + + @@ -358,108 +344,32 @@ Functions
detail::tmat4x4<T, defaultp> glm::eulerAngleZY GLM_FUNC_DECL T glm::min ( T const & angleZ, x,
T const & angleY y,
T const & z 
-

Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * Y).

-
See Also
GLM_GTX_euler_angles
+

Return the minimum component-wise values of 3 inputs.

+
See also
GLM_GTX_extented_min_max
- +
- + - - - - -
detail::tmat2x2<T, defaultp> glm::orientate2 GLM_FUNC_DECL C<T> glm::min (T const & angle)
-
- -

Creates a 2D 2 * 2 rotation matrix from an euler angle.

-
See Also
GLM_GTX_euler_angles
- -
-
- -
-
- - - - - - - - -
detail::tmat3x3<T, defaultp> glm::orientate3 (T const & angle)
-
- -

Creates a 2D 4 * 4 homogeneous rotation matrix from an euler angle.

-
See Also
GLM_GTX_euler_angles
- -
-
- -
-
- - - - - - - - -
detail::tmat3x3<T, P> glm::orientate3 (detail::tvec3< T, P > const & angles)
-
- -

Creates a 3D 3 * 3 rotation matrix from euler angles (Y * X * Z).

-
See Also
GLM_GTX_euler_angles
- -
-
- -
-
- - - - - - - - -
detail::tmat4x4<T, P> glm::orientate4 (detail::tvec3< T, P > const & angles)
-
- -

Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z).

-
See Also
GLM_GTX_euler_angles
- -
-
- -
-
- - - - - - + + - - + + - - + + @@ -469,8 +379,166 @@ Functions
detail::tmat4x4<T, defaultp> glm::yawPitchRoll (T const & yaw, C< T > const & x,
T const & pitch, typename C< T >::T const & y,
T const & roll typename C< T >::T const & z 
-

Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z).

-
See Also
GLM_GTX_euler_angles
+

Return the minimum component-wise values of 3 inputs.

+
See also
GLM_GTX_extented_min_max
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL C<T> glm::min (C< T > const & x,
C< T > const & y,
C< T > const & z 
)
+
+ +

Return the minimum component-wise values of 3 inputs.

+
See also
GLM_GTX_extented_min_max
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL T glm::min (T const & x,
T const & y,
T const & z,
T const & w 
)
+
+ +

Return the minimum component-wise values of 4 inputs.

+
See also
GLM_GTX_extented_min_max
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL C<T> glm::min (C< T > const & x,
typename C< T >::T const & y,
typename C< T >::T const & z,
typename C< T >::T const & w 
)
+
+ +

Return the minimum component-wise values of 4 inputs.

+
See also
GLM_GTX_extented_min_max
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL C<T> glm::min (C< T > const & x,
C< T > const & y,
C< T > const & z,
C< T > const & w 
)
+
+ +

Return the minimum component-wise values of 4 inputs.

+
See also
GLM_GTX_extented_min_max
@@ -479,7 +547,7 @@ Functions diff --git a/doc/api/a00194.html b/doc/api/a00194.html index 59130890..0427486e 100644 --- a/doc/api/a00194.html +++ b/doc/api/a00194.html @@ -3,8 +3,8 @@ - -GLM: GLM_GTX_extend + +0.9.6: GLM_GTX_fast_exponential @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -41,42 +39,220 @@
Functions
-
GLM_GTX_extend
+
GLM_GTX_fast_exponential
GTX Extensions (Experimental)
- - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Functions

template<typename genType >
GLM_FUNC_DECL genType extend (genType const &Origin, genType const &Source, typename genType::value_type const Length)
 
template<typename T >
GLM_FUNC_DECL T fastExp (T x)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > fastExp (vecType< T, P > const &x)
 
template<typename T >
GLM_FUNC_DECL T fastExp2 (T x)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > fastExp2 (vecType< T, P > const &x)
 
template<typename T >
GLM_FUNC_DECL T fastLog (T x)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > fastLog (vecType< T, P > const &x)
 
template<typename T >
GLM_FUNC_DECL T fastLog2 (T x)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > fastLog2 (vecType< T, P > const &x)
 
template<typename genType >
GLM_FUNC_DECL genType fastPow (genType x, genType y)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > fastPow (vecType< T, P > const &x, vecType< T, P > const &y)
 
template<typename genTypeT , typename genTypeU >
GLM_FUNC_DECL genTypeT fastPow (genTypeT x, genTypeU y)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > fastPow (vecType< T, P > const &x)
 

Detailed Description

-

Extend a position from a source to a position at a defined length.

-

<glm/gtx/extend.hpp> need to be included to use these functionalities.

-

<glm/gtx/scalar_relational.hpp> need to be included to use these functionalities.

+

Fast but less accurate implementations of exponential based functions.

+

<glm/gtx/fast_exponential.hpp> need to be included to use these functionalities.

Function Documentation

- +
- + - - + + + + +
GLM_FUNC_DECL genType glm::extend GLM_FUNC_DECL T glm::fastExp (genType const & Origin, x)
+
+ +

Faster than the common exp function but less accurate.

+
See also
GLM_GTX_fast_exponential
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vecType<T, P> glm::fastExp (vecType< T, P > const & x)
+
+ +

Faster than the common exp function but less accurate.

+
See also
GLM_GTX_fast_exponential
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL T glm::fastExp2 (x)
+
+ +

Faster than the common exp2 function but less accurate.

+
See also
GLM_GTX_fast_exponential
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vecType<T, P> glm::fastExp2 (vecType< T, P > const & x)
+
+ +

Faster than the common exp2 function but less accurate.

+
See also
GLM_GTX_fast_exponential
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL T glm::fastLog (x)
+
+ +

Faster than the common log function but less accurate.

+
See also
GLM_GTX_fast_exponential
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vecType<T, P> glm::fastLog (vecType< T, P > const & x)
+
+ +

Faster than the common exp2 function but less accurate.

+
See also
GLM_GTX_fast_exponential
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL T glm::fastLog2 (x)
+
+ +

Faster than the common log2 function but less accurate.

+
See also
GLM_GTX_fast_exponential
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vecType<T, P> glm::fastLog2 (vecType< T, P > const & x)
+
+ +

Faster than the common log2 function but less accurate.

+
See also
GLM_GTX_fast_exponential
+ +
+
+ +
+
+ + + + + + - - - - - - - - + + @@ -86,8 +262,85 @@ Functions
GLM_FUNC_DECL genType glm::fastPow (genType x,
genType const & Source,
typename genType::value_type const Length genType y 
-

Extends of Length the Origin position using the (Source - Origin) direction.

-
See Also
GLM_GTX_extend
+

Faster than the common pow function but less accurate.

+
See also
GLM_GTX_fast_exponential
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vecType<T, P> glm::fastPow (vecType< T, P > const & x,
vecType< T, P > const & y 
)
+
+ +

Faster than the common pow function but less accurate.

+
See also
GLM_GTX_fast_exponential
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL genTypeT glm::fastPow (genTypeT x,
genTypeU y 
)
+
+ +

Faster than the common pow function but less accurate.

+
See also
GLM_GTX_fast_exponential
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vecType<T, P> glm::fastPow (vecType< T, P > const & x)
+
+ +

Faster than the common pow function but less accurate.

+
See also
GLM_GTX_fast_exponential
@@ -96,7 +349,7 @@ Functions diff --git a/doc/api/a00195.html b/doc/api/a00195.html index c7357b7d..08fe6b41 100644 --- a/doc/api/a00195.html +++ b/doc/api/a00195.html @@ -3,8 +3,8 @@ - -GLM: GLM_GTX_extented_min_max + +0.9.6: GLM_GTX_fast_square_root @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -41,74 +39,62 @@
Functions
-
GLM_GTX_extented_min_max
+
GLM_GTX_fast_square_root
GTX Extensions (Experimental)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + +

Functions

template<typename T >
max (T const &x, T const &y, T const &z)
 
template<typename T , template< typename > class C>
C< T > max (C< T > const &x, typename C< T >::T const &y, typename C< T >::T const &z)
 
template<typename T , template< typename > class C>
C< T > max (C< T > const &x, C< T > const &y, C< T > const &z)
 
template<typename T >
max (T const &x, T const &y, T const &z, T const &w)
 
template<typename T , template< typename > class C>
C< T > max (C< T > const &x, typename C< T >::T const &y, typename C< T >::T const &z, typename C< T >::T const &w)
 
template<typename T , template< typename > class C>
C< T > max (C< T > const &x, C< T > const &y, C< T > const &z, C< T > const &w)
 
template<typename T >
min (T const &x, T const &y, T const &z)
 
template<typename T , template< typename > class C>
C< T > min (C< T > const &x, typename C< T >::T const &y, typename C< T >::T const &z)
 
template<typename T , template< typename > class C>
C< T > min (C< T > const &x, C< T > const &y, C< T > const &z)
 
template<typename T >
min (T const &x, T const &y, T const &z, T const &w)
 
template<typename T , template< typename > class C>
C< T > min (C< T > const &x, typename C< T >::T const &y, typename C< T >::T const &z, typename C< T >::T const &w)
 
template<typename T , template< typename > class C>
C< T > min (C< T > const &x, C< T > const &y, C< T > const &z, C< T > const &w)
 
template<typename genType >
GLM_FUNC_DECL genType fastDistance (genType x, genType y)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL T fastDistance (vecType< T, P > const &x, vecType< T, P > const &y)
 
template<typename genType >
GLM_FUNC_DECL genType fastInverseSqrt (genType x)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > fastInverseSqrt (vecType< T, P > const &x)
 
template<typename genType >
GLM_FUNC_DECL genType fastLength (genType x)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL T fastLength (vecType< T, P > const &x)
 
template<typename genType >
GLM_FUNC_DECL genType fastNormalize (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType fastSqrt (genType x)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > fastSqrt (vecType< T, P > const &x)
 

Detailed Description

-

Min and max functions for 3 to 4 parameters.

-

<glm/gtx/extented_min_max.hpp> need to be included to use these functionalities.

+

Fast but less accurate implementations of square root based functions.

+ +

<glm/gtx/fast_square_root.hpp> need to be included to use these functionalities.

Function Documentation

- +
- + - + - - - - - - - - + + @@ -118,32 +104,26 @@ Functions
T glm::max GLM_FUNC_DECL genType glm::fastDistance (T const & genType  x,
T const & y,
T const & z genType y 
-

Return the maximum component-wise values of 3 inputs.

-
See Also
GLM_GTX_extented_min_max
+

Faster than the common distance function but less accurate.

+
See also
GLM_GTX_fast_square_root extension.
- +
- + - + - - - - - - - - + + @@ -153,394 +133,141 @@ Functions
C<T> glm::max GLM_FUNC_DECL T glm::fastDistance (C< T > const & vecType< T, P > const &  x,
typename C< T >::T const & y,
typename C< T >::T const & z vecType< T, P > const & y 
-

Return the maximum component-wise values of 3 inputs.

-
See Also
GLM_GTX_extented_min_max
+

Faster than the common distance function but less accurate.

+
See also
GLM_GTX_fast_square_root extension.
- +
- + - - - - - + + - - - - - - - - - - - - -
C<T> glm::max GLM_FUNC_DECL genType glm::fastInverseSqrt (C< T > const & x,
genType x) C< T > const & y,
C< T > const & z 
)
-

Return the maximum component-wise values of 3 inputs.

-
See Also
GLM_GTX_extented_min_max
+

Faster than the common inversesqrt function but less accurate.

+
See also
GLM_GTX_fast_square_root extension.
- +
- + - - - - - + + - - - - - - - - - - - - - - - - - - -
T glm::max GLM_FUNC_DECL vecType<T, P> glm::fastInverseSqrt (T const & x,
vecType< T, P > const & x) T const & y,
T const & z,
T const & w 
)
-

Return the maximum component-wise values of 4 inputs.

-
See Also
GLM_GTX_extented_min_max
+

Faster than the common inversesqrt function but less accurate.

+
See also
GLM_GTX_fast_square_root extension.
- +
- + - - - - - + + - - - - - - - - - - - - - - - - - - -
C<T> glm::max GLM_FUNC_DECL genType glm::fastLength (C< T > const & x,
genType x) typename C< T >::T const & y,
typename C< T >::T const & z,
typename C< T >::T const & w 
)
-

Return the maximum component-wise values of 4 inputs.

-
See Also
GLM_GTX_extented_min_max
+

Faster than the common length function but less accurate.

+
See also
GLM_GTX_fast_square_root extension.
- +
- + - - - - - + + - - - - - - - - - - - - - - - - - - -
C<T> glm::max GLM_FUNC_DECL T glm::fastLength (C< T > const & x,
vecType< T, P > const & x) C< T > const & y,
C< T > const & z,
C< T > const & w 
)
-

Return the maximum component-wise values of 4 inputs.

-
See Also
GLM_GTX_extented_min_max
+

Faster than the common length function but less accurate.

+
See also
GLM_GTX_fast_square_root extension.
- +
- + - - - - - + + - - - - - - - - - - - - -
T glm::min GLM_FUNC_DECL genType glm::fastNormalize (T const & x,
genType const & x) T const & y,
T const & z 
)
-

Return the minimum component-wise values of 3 inputs.

-
See Also
GLM_GTX_extented_min_max
+

Faster than the common normalize function but less accurate.

+
See also
GLM_GTX_fast_square_root extension.
- +
- + - - - - - + + - - - - - - - - - - - - -
C<T> glm::min GLM_FUNC_DECL genType glm::fastSqrt (C< T > const & x,
genType x) typename C< T >::T const & y,
typename C< T >::T const & z 
)
-

Return the minimum component-wise values of 3 inputs.

-
See Also
GLM_GTX_extented_min_max
+

Faster than the common sqrt function but less accurate.

+
See also
GLM_GTX_fast_square_root extension.
- +
- + - - - - - + + - - - - - - - - - - - - -
C<T> glm::min GLM_FUNC_DECL vecType<T, P> glm::fastSqrt (C< T > const & x,
vecType< T, P > const & x) C< T > const & y,
C< T > const & z 
)
-

Return the minimum component-wise values of 3 inputs.

-
See Also
GLM_GTX_extented_min_max
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
T glm::min (T const & x,
T const & y,
T const & z,
T const & w 
)
-
- -

Return the minimum component-wise values of 4 inputs.

-
See Also
GLM_GTX_extented_min_max
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
C<T> glm::min (C< T > const & x,
typename C< T >::T const & y,
typename C< T >::T const & z,
typename C< T >::T const & w 
)
-
- -

Return the minimum component-wise values of 4 inputs.

-
See Also
GLM_GTX_extented_min_max
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
C<T> glm::min (C< T > const & x,
C< T > const & y,
C< T > const & z,
C< T > const & w 
)
-
- -

Return the minimum component-wise values of 4 inputs.

-
See Also
GLM_GTX_extented_min_max
+

Faster than the common sqrt function but less accurate.

+
See also
GLM_GTX_fast_square_root extension.
@@ -549,7 +276,7 @@ Functions diff --git a/doc/api/a00196.html b/doc/api/a00196.html index eb041f20..c2bb4b1b 100644 --- a/doc/api/a00196.html +++ b/doc/api/a00196.html @@ -3,8 +3,8 @@ - -GLM: GLM_GTX_fast_exponential + +0.9.6: GLM_GTX_fast_trigonometry @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -41,148 +39,94 @@
Functions
-
GLM_GTX_fast_exponential
+
GLM_GTX_fast_trigonometry
GTX Extensions (Experimental)
- - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + +

Functions

template<typename T >
fastExp (const T &x)
 
template<typename T >
fastExp2 (const T &x)
 
template<typename T >
fastLn (const T &x)
 
template<typename T >
fastLog (const T &x)
 
template<typename T >
fastLog2 (const T &x)
 
template<typename genType >
genType fastPow (genType const &x, genType const &y)
 
template<typename genTypeT , typename genTypeU >
genTypeT fastPow (genTypeT const &x, genTypeU const &y)
 
template<typename T >
GLM_FUNC_DECL T fastAcos (T angle)
 
template<typename T >
GLM_FUNC_DECL T fastAsin (T angle)
 
template<typename T >
GLM_FUNC_DECL T fastAtan (T y, T x)
 
template<typename T >
GLM_FUNC_DECL T fastAtan (T angle)
 
template<typename T >
GLM_FUNC_DECL T fastCos (T angle)
 
template<typename T >
GLM_FUNC_DECL T fastSin (T angle)
 
template<typename T >
GLM_FUNC_DECL T fastTan (T angle)
 
template<typename T >
GLM_FUNC_DECL T wrapAngle (T angle)
 

Detailed Description

-

Fast but less accurate implementations of exponential based functions.

-

<glm/gtx/fast_exponential.hpp> need to be included to use these functionalities.

+

Fast but less accurate implementations of trigonometric functions.

+

<glm/gtx/fast_trigonometry.hpp> need to be included to use these functionalities.

Function Documentation

- +
- + - - + +
T glm::fastExp GLM_FUNC_DECL T glm::fastAcos (const T & x)angle)
-

Faster than the common exp function but less accurate.

-
See Also
GLM_GTX_fast_exponential
+

Faster than the common acos function but less accurate.

+

Defined between -2pi and 2pi. From GLM_GTX_fast_trigonometry extension.

- +
- + - - + +
T glm::fastExp2 GLM_FUNC_DECL T glm::fastAsin (const T & x)angle)
-

Faster than the common exp2 function but less accurate.

-
See Also
GLM_GTX_fast_exponential
+

Faster than the common asin function but less accurate.

+

Defined between -2pi and 2pi. From GLM_GTX_fast_trigonometry extension.

- +
- + - - - - -
T glm::fastLn GLM_FUNC_DECL T glm::fastAtan (const T & x)
-
- -

Faster than the common ln function but less accurate.

-
See Also
GLM_GTX_fast_exponential
- -
-
- -
-
- - - - - - - - -
T glm::fastLog (const T & x)
-
- -

Faster than the common log function but less accurate.

-
See Also
GLM_GTX_fast_exponential
- -
-
- -
-
- - - - - - - - -
T glm::fastLog2 (const T & x)
-
- -

Faster than the common log2 function but less accurate.

-
See Also
GLM_GTX_fast_exponential
- -
-
- -
-
- - - - - - + + - - + + @@ -192,37 +136,102 @@ Functions
genType glm::fastPow (genType const & x, y,
genType const & y x 
-

Faster than the common pow function but less accurate.

-
See Also
GLM_GTX_fast_exponential
+

Faster than the common atan function but less accurate.

+

Defined between -2pi and 2pi. From GLM_GTX_fast_trigonometry extension.

- +
- + - - - - - + + - - - - - - -
genTypeT glm::fastPow GLM_FUNC_DECL T glm::fastAtan (genTypeT const & x,
angle) genTypeU const & y 
)
-

Faster than the common pow function but less accurate.

-
See Also
GLM_GTX_fast_exponential
+

Faster than the common atan function but less accurate.

+

Defined between -2pi and 2pi. From GLM_GTX_fast_trigonometry extension.

+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL T glm::fastCos (angle)
+
+ +

Faster than the common cos function but less accurate.

+

From GLM_GTX_fast_trigonometry extension.

+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL T glm::fastSin (angle)
+
+ +

Faster than the common sin function but less accurate.

+

From GLM_GTX_fast_trigonometry extension.

+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL T glm::fastTan (angle)
+
+ +

Faster than the common tan function but less accurate.

+

Defined between -2pi and 2pi. From GLM_GTX_fast_trigonometry extension.

+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL T glm::wrapAngle (angle)
+
+ +

Wrap an angle to [0 2pi[ From GLM_GTX_fast_trigonometry extension.

@@ -231,7 +240,7 @@ Functions diff --git a/doc/api/a00197.html b/doc/api/a00197.html index 02afe16c..02f975ac 100644 --- a/doc/api/a00197.html +++ b/doc/api/a00197.html @@ -3,8 +3,8 @@ - -GLM: GLM_GTX_fast_square_root + +0.9.6: GLM_GTX_gradient_paint @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -41,50 +39,44 @@
Functions
-
GLM_GTX_fast_square_root
+
GLM_GTX_gradient_paint
GTX Extensions (Experimental)
- - - - - - - - - - - - - - - + + + + + +

Functions

template<typename genType >
genType::value_type fastDistance (genType const &x, genType const &y)
 
template<typename genType >
genType fastInverseSqrt (genType const &x)
 
template<typename genType >
genType::value_type fastLength (genType const &x)
 
template<typename genType >
genType fastNormalize (genType const &x)
 
template<typename genType >
genType fastSqrt (genType const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL T linearGradient (tvec2< T, P > const &Point0, tvec2< T, P > const &Point1, tvec2< T, P > const &Position)
 
template<typename T , precision P>
GLM_FUNC_DECL T radialGradient (tvec2< T, P > const &Center, T const &Radius, tvec2< T, P > const &Focal, tvec2< T, P > const &Position)
 

Detailed Description

-

Fast but less accurate implementations of square root based functions.

- -

<glm/gtx/fast_square_root.hpp> need to be included to use these functionalities.

+

Functions that return the color of procedural gradient for specific coordinates.

+

<glm/gtx/gradient_paint.hpp> need to be included to use these functionalities.

Function Documentation

- +
- + - - + + - - + + + + + + + + @@ -94,84 +86,49 @@ Functions
genType::value_type glm::fastDistance GLM_FUNC_DECL T glm::linearGradient (genType const & x, tvec2< T, P > const & Point0,
genType const & y tvec2< T, P > const & Point1,
tvec2< T, P > const & Position 
-

Faster than the common distance function but less accurate.

-

From GLM_GTX_fast_square_root extension.

+

Return a color from a linear gradient.

+
See also
- GLM_GTX_gradient_paint
- +
- + - - - + + -
genType glm::fastInverseSqrt GLM_FUNC_DECL T glm::radialGradient (genType const & x)tvec2< T, P > const & Center,
-
- -

Faster than the common inversesqrt function but less accurate.

-

From GLM_GTX_fast_square_root extension.

- -
-
- -
-
- - - - - + + + -
genType::value_type glm::fastLength (genType const & x) T const & Radius,
-
- -

Faster than the common length function but less accurate.

-

From GLM_GTX_fast_square_root extension.

- -
-
- -
-
- - - - - + + + -
genType glm::fastNormalize (genType const & x) tvec2< T, P > const & Focal,
-
- -

Faster than the common normalize function but less accurate.

-

From GLM_GTX_fast_square_root extension.

- -
-
- -
-
- - - - - + + + + + + + +
genType glm::fastSqrt (genType const & x) tvec2< T, P > const & Position 
)
-

Faster than the common sqrt function but less accurate.

-

From GLM_GTX_fast_square_root extension.

+

Return a color from a radial gradient.

+
See also
- GLM_GTX_gradient_paint
@@ -180,7 +137,7 @@ Functions diff --git a/doc/api/a00198.html b/doc/api/a00198.html index dc167488..0a46db5b 100644 --- a/doc/api/a00198.html +++ b/doc/api/a00198.html @@ -3,8 +3,8 @@ - -GLM: GLM_GTX_fast_trigonometry + +0.9.6: GLM_GTX_handed_coordinate_space @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -41,91 +39,44 @@
Functions
-
GLM_GTX_fast_trigonometry
+
GLM_GTX_handed_coordinate_space
GTX Extensions (Experimental)
- - - - - - - - - - - - - - - - - - - - - + + + + + +

Functions

template<typename T >
fastAcos (const T &angle)
 
template<typename T >
fastAsin (const T &angle)
 
template<typename T >
fastAtan (const T &y, const T &x)
 
template<typename T >
fastAtan (const T &angle)
 
template<typename T >
fastCos (const T &angle)
 
template<typename T >
fastSin (const T &angle)
 
template<typename T >
fastTan (const T &angle)
 
template<typename T , precision P>
GLM_FUNC_DECL bool leftHanded (tvec3< T, P > const &tangent, tvec3< T, P > const &binormal, tvec3< T, P > const &normal)
 
template<typename T , precision P>
GLM_FUNC_DECL bool rightHanded (tvec3< T, P > const &tangent, tvec3< T, P > const &binormal, tvec3< T, P > const &normal)
 

Detailed Description

-

Fast but less accurate implementations of trigonometric functions.

-

<glm/gtx/fast_trigonometry.hpp> need to be included to use these functionalities.

+

To know if a set of three basis vectors defines a right or left-handed coordinate system.

+

<glm/gtx/handed_coordinate_system.hpp> need to be included to use these functionalities.

Function Documentation

- +
- + - - - - -
T glm::fastAcos GLM_FUNC_DECL bool glm::leftHanded (const T & angle)
-
- -

Faster than the common acos function but less accurate.

-

Defined between -2pi and 2pi. From GLM_GTX_fast_trigonometry extension.

- -
-
- -
-
- - - - - - - - -
T glm::fastAsin (const T & angle)
-
- -

Faster than the common asin function but less accurate.

-

Defined between -2pi and 2pi. From GLM_GTX_fast_trigonometry extension.

- -
-
- -
-
- - - - - - + + - - + + + + + + + + @@ -135,84 +86,43 @@ Functions
T glm::fastAtan (const T & y, tvec3< T, P > const & tangent,
const T & x tvec3< T, P > const & binormal,
tvec3< T, P > const & normal 
-

Faster than the common atan function but less accurate.

-

Defined between -2pi and 2pi. From GLM_GTX_fast_trigonometry extension.

+

Return if a trihedron left handed or not.

+

From GLM_GTX_handed_coordinate_space extension.

- +
- + - - - + + -
T glm::fastAtan GLM_FUNC_DECL bool glm::rightHanded (const T & angle)tvec3< T, P > const & tangent,
-
- -

Faster than the common atan function but less accurate.

-

Defined between -2pi and 2pi. From GLM_GTX_fast_trigonometry extension.

- -
-
- -
-
- - - - - + + + -
T glm::fastCos (const T & angle) tvec3< T, P > const & binormal,
-
- -

Faster than the common cos function but less accurate.

-

Defined between -2pi and 2pi. From GLM_GTX_fast_trigonometry extension.

- -
-
- -
-
- - - - - + + + -
T glm::fastSin (const T & angle) tvec3< T, P > const & normal 
-
- -

Faster than the common sin function but less accurate.

-

Defined between -2pi and 2pi. From GLM_GTX_fast_trigonometry extension.

- -
-
- -
-
- - - - - + +
T glm::fastTan (const T & angle) )
-

Faster than the common tan function but less accurate.

-

Defined between -2pi and 2pi. From GLM_GTX_fast_trigonometry extension.

+

Return if a trihedron right handed or not.

+

From GLM_GTX_handed_coordinate_space extension.

@@ -221,7 +131,7 @@ Functions diff --git a/doc/api/a00199.html b/doc/api/a00199.html index 5d7a1733..a0dae4d3 100644 --- a/doc/api/a00199.html +++ b/doc/api/a00199.html @@ -3,8 +3,8 @@ - -GLM: GLM_GTX_gradient_paint + +0.9.6: GLM_GTX_integer @@ -16,9 +16,9 @@ + @@ -26,59 +26,125 @@
-
GLM -  0.9.5 +
0.9.6
- +
+Typedefs | Functions
-
GLM_GTX_gradient_paint
+
GLM_GTX_integer
+ + + +

+Typedefs

typedef signed int sint
 
- - - - - - + + + + + + + + + + + + + + + + + + +

Functions

template<typename T , precision P>
linearGradient (detail::tvec2< T, P > const &Point0, detail::tvec2< T, P > const &Point1, detail::tvec2< T, P > const &Position)
 
template<typename T , precision P>
radialGradient (detail::tvec2< T, P > const &Center, T const &Radius, detail::tvec2< T, P > const &Focal, detail::tvec2< T, P > const &Position)
 
template<typename genType >
GLM_FUNC_DECL genType factorial (genType const &x)
 
GLM_FUNC_DECL unsigned int floor_log2 (unsigned int x)
 
GLM_FUNC_DECL int mod (int x, int y)
 
GLM_FUNC_DECL uint mod (uint x, uint y)
 
GLM_FUNC_DECL uint nlz (uint x)
 
GLM_FUNC_DECL int pow (int x, int y)
 
GLM_FUNC_DECL uint pow (uint x, uint y)
 
GLM_FUNC_DECL int sqrt (int x)
 
GLM_FUNC_DECL uint sqrt (uint x)
 

Detailed Description

-

Functions that return the color of procedural gradient for specific coordinates.

-

<glm/gtx/gradient_paint.hpp> need to be included to use these functionalities.

+

Add support for integer for core functions.

+

<glm/gtx/integer.hpp> need to be included to use these functionalities.

+

Typedef Documentation

+ +
+
+ + + + +
typedef signed int sint
+
+ +

32bit signed integer.

+

From GLM_GTX_integer extension.

+ +

Definition at line 80 of file gtx/integer.hpp.

+ +
+

Function Documentation

- +
- + - - + + + + +
T glm::linearGradient GLM_FUNC_DECL genType glm::factorial (detail::tvec2< T, P > const & Point0, genType const & x)
+
+ +

Return the factorial value of a number (!12 max, integer only) From GLM_GTX_integer extension.

+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL unsigned int glm::floor_log2 (unsigned int x)
+
+ +

Returns the floor log2 of x.

+

From GLM_GTX_integer extension.

+ +
+
+ +
+
+ + + + + + - - - - - - - - + + @@ -88,38 +154,26 @@ Functions
GLM_FUNC_DECL int glm::mod (int x,
detail::tvec2< T, P > const & Point1,
detail::tvec2< T, P > const & Position int y 
-

Return a color from a linear gradient.

-
See Also
- GLM_GTX_gradient_paint
+

Modulus.

+

Returns x - y * floor(x / y) for each component in x using the floating point value y. From GLM_GTX_integer extension.

- +
- + - - + + - - - - - - - - - - - - - - + + @@ -129,8 +183,123 @@ Functions
T glm::radialGradient GLM_FUNC_DECL uint glm::mod (detail::tvec2< T, P > const & Center, uint x,
T const & Radius,
detail::tvec2< T, P > const & Focal,
detail::tvec2< T, P > const & Position uint y 
-

Return a color from a radial gradient.

-
See Also
- GLM_GTX_gradient_paint
+

Modulus.

+

Returns x - y * floor(x / y) for each component in x using the floating point value y. From GLM_GTX_integer extension.

+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL uint glm::nlz (uint x)
+
+ +

Returns the number of leading zeros.

+

From GLM_GTX_integer extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL int glm::pow (int x,
int y 
)
+
+ +

Returns x raised to the y power.

+

From GLM_GTX_integer extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL uint glm::pow (uint x,
uint y 
)
+
+ +

Returns x raised to the y power.

+

From GLM_GTX_integer extension.

+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL int glm::sqrt (int x)
+
+ +

Returns the positive square root of x.

+

From GLM_GTX_integer extension.

+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL uint glm::sqrt (uint x)
+
+ +

Returns the positive square root of x.

+

From GLM_GTX_integer extension.

@@ -139,7 +308,7 @@ Functions diff --git a/doc/api/a00200.html b/doc/api/a00200.html index 1efa10bf..4d265980 100644 --- a/doc/api/a00200.html +++ b/doc/api/a00200.html @@ -3,8 +3,8 @@ - -GLM: GLM_GTX_handed_coordinate_space + +0.9.6: GLM_GTX_intersect @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -41,44 +39,86 @@
Functions
-
GLM_GTX_handed_coordinate_space
+
GLM_GTX_intersect
GTX Extensions (Experimental)
- - - - - - + + + + + + + + + + + + + + + + + +

Functions

template<typename T , precision P>
bool leftHanded (detail::tvec3< T, P > const &tangent, detail::tvec3< T, P > const &binormal, detail::tvec3< T, P > const &normal)
 
template<typename T , precision P>
bool rightHanded (detail::tvec3< T, P > const &tangent, detail::tvec3< T, P > const &binormal, detail::tvec3< T, P > const &normal)
 
template<typename genType >
GLM_FUNC_DECL bool intersectLineSphere (genType const &point0, genType const &point1, genType const &sphereCenter, typename genType::value_type sphereRadius, genType &intersectionPosition1, genType &intersectionNormal1, genType &intersectionPosition2=genType(), genType &intersectionNormal2=genType())
 
template<typename genType >
GLM_FUNC_DECL bool intersectLineTriangle (genType const &orig, genType const &dir, genType const &vert0, genType const &vert1, genType const &vert2, genType &position)
 
template<typename genType >
GLM_FUNC_DECL bool intersectRayPlane (genType const &orig, genType const &dir, genType const &planeOrig, genType const &planeNormal, typename genType::value_type &intersectionDistance)
 
template<typename genType >
GLM_FUNC_DECL bool intersectRaySphere (genType const &rayStarting, genType const &rayNormalizedDirection, genType const &sphereCenter, typename genType::value_type const sphereRadiusSquered, typename genType::value_type &intersectionDistance)
 
template<typename genType >
GLM_FUNC_DECL bool intersectRaySphere (genType const &rayStarting, genType const &rayNormalizedDirection, genType const &sphereCenter, const typename genType::value_type sphereRadius, genType &intersectionPosition, genType &intersectionNormal)
 
template<typename genType >
GLM_FUNC_DECL bool intersectRayTriangle (genType const &orig, genType const &dir, genType const &vert0, genType const &vert1, genType const &vert2, genType &baryPosition)
 

Detailed Description

-

To know if a set of three basis vectors defines a right or left-handed coordinate system.

-

<glm/gtx/handed_coordinate_system.hpp> need to be included to use these functionalities.

+

Add intersection functions.

+

<glm/gtx/intersect.hpp> need to be included to use these functionalities.

Function Documentation

- +
- + - - + + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -88,32 +128,50 @@ Functions
bool glm::leftHanded GLM_FUNC_DECL bool glm::intersectLineSphere (detail::tvec3< T, P > const & tangent, genType const & point0,
detail::tvec3< T, P > const & binormal, genType const & point1,
detail::tvec3< T, P > const & normal genType const & sphereCenter,
typename genType::value_type sphereRadius,
genType & intersectionPosition1,
genType & intersectionNormal1,
genType & intersectionPosition2 = genType(),
genType & intersectionNormal2 = genType() 
-

Return if a trihedron left handed or not.

-

From GLM_GTX_handed_coordinate_space extension.

+

Compute the intersection of a line and a sphere.

+

From GLM_GTX_intersect extension

- +
- + - - + + - - + + - - + + + + + + + + + + + + + + + + + + + + @@ -123,8 +181,208 @@ Functions
bool glm::rightHanded GLM_FUNC_DECL bool glm::intersectLineTriangle (detail::tvec3< T, P > const & tangent, genType const & orig,
detail::tvec3< T, P > const & binormal, genType const & dir,
detail::tvec3< T, P > const & normal genType const & vert0,
genType const & vert1,
genType const & vert2,
genType & position 
-

Return if a trihedron right handed or not.

-

From GLM_GTX_handed_coordinate_space extension.

+

Compute the intersection of a line and a triangle.

+

From GLM_GTX_intersect extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL bool glm::intersectRayPlane (genType const & orig,
genType const & dir,
genType const & planeOrig,
genType const & planeNormal,
typename genType::value_type & intersectionDistance 
)
+
+ +

Compute the intersection of a ray and a triangle.

+

Ray direction and plane normal must be unit length. From GLM_GTX_intersect extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL bool glm::intersectRaySphere (genType const & rayStarting,
genType const & rayNormalizedDirection,
genType const & sphereCenter,
typename genType::value_type const sphereRadiusSquered,
typename genType::value_type & intersectionDistance 
)
+
+ +

Compute the intersection distance of a ray and a sphere.

+

The ray direction vector is unit length. From GLM_GTX_intersect extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL bool glm::intersectRaySphere (genType const & rayStarting,
genType const & rayNormalizedDirection,
genType const & sphereCenter,
const typename genType::value_type sphereRadius,
genType & intersectionPosition,
genType & intersectionNormal 
)
+
+ +

Compute the intersection of a ray and a sphere.

+

From GLM_GTX_intersect extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL bool glm::intersectRayTriangle (genType const & orig,
genType const & dir,
genType const & vert0,
genType const & vert1,
genType const & vert2,
genType & baryPosition 
)
+
+ +

Compute the intersection of a ray and a triangle.

+

From GLM_GTX_intersect extension.

@@ -133,7 +391,7 @@ Functions diff --git a/doc/api/a00201.html b/doc/api/a00201.html index dfd02290..cacaff5d 100644 --- a/doc/api/a00201.html +++ b/doc/api/a00201.html @@ -3,8 +3,8 @@ - -GLM: GLM_GTX_inertia + +0.9.6: GLM_GTX_io @@ -16,9 +16,9 @@ + @@ -26,30 +26,30 @@
-
GLM -  0.9.5 +
0.9.6
- +
-
+
GLM_GTX_io
-

Create inertia matrices.

-

<glm/gtx/inertia.hpp> need to be included to use these functionalities.

+

Detailed Description

+

std::[w]ostream support for glm types

+

std::[w]ostream support for glm types + precision/width/etc. manipulators based on howard hinnant's std::chrono io proposal [http://home.roadrunner.com/~hinnant/bloomington/chrono_io.html]

+

<glm/gtx/io.hpp> needs to be included to use these functionalities.

diff --git a/doc/api/a00202.html b/doc/api/a00202.html index cd194bf3..88b79c79 100644 --- a/doc/api/a00202.html +++ b/doc/api/a00202.html @@ -3,8 +3,8 @@ - -GLM: GLM_GTX_integer + +0.9.6: GLM_GTX_log_base @@ -16,9 +16,9 @@ + @@ -26,149 +26,52 @@
-
GLM -  0.9.5 +
0.9.6
- +
-Typedefs | Functions
-
+
GLM_GTX_log_base
- - - -

-Typedefs

typedef signed int sint
 
- - - - - - - - - - - - - - - - - - - - - - + + + + + +

Functions

template<typename genType >
genType factorial (genType const &x)
 
unsigned int floor_log2 (unsigned int x)
 
template<typename genIUType >
genIUType log2 (genIUType const &x)
 
int mod (int x, int y)
 
uint mod (uint x, uint y)
 
uint nlz (uint x)
 
int pow (int x, int y)
 
uint pow (uint x, uint y)
 
int sqrt (int x)
 
uint sqrt (uint x)
 
template<typename genType >
GLM_FUNC_DECL genType log (genType x, genType base)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > sign (vecType< T, P > const &x, vecType< T, P > const &base)
 

Detailed Description

-

Add support for integer for core functions.

-

<glm/gtx/integer.hpp> need to be included to use these functionalities.

-

Typedef Documentation

- -
-
- - - - -
typedef signed int sint
-
- -

32bit signed integer.

-

From GLM_GTX_integer extension.

- -

Definition at line 81 of file gtx/integer.hpp.

- -
-
+

Logarithm for any base.

+

base can be a vector or a scalar.

+

<glm/gtx/log_base.hpp> need to be included to use these functionalities.

Function Documentation

- +
- + - - - - -
genType glm::factorial GLM_FUNC_DECL genType glm::log (genType const & x)
-
- -

Return the factorial value of a number (!12 max, integer only) From GLM_GTX_integer extension.

- -
-
- -
-
- - - - - - - - -
unsigned int glm::floor_log2 (unsigned int x)
-
- -

Returns the floor log2 of x.

-

From GLM_GTX_integer extension.

- -
-
- -
-
- - - - - - - - -
genIUType glm::log2 (genIUType const & x)
-
- -

Returns the log2 of x.

-

Can be reliably using to compute mipmap count from the texture size. From GLM_GTX_integer extension.

- -
-
- -
-
- - - - - + - - + + @@ -178,26 +81,26 @@ Functions
int glm::mod (int genType  x,
int y genType base 
-

Modulus.

-

Returns x - y * floor(x / y) for each component in x using the floating point value y. From GLM_GTX_integer extension.

+

Logarithm for any base.

+

From GLM_GTX_log_base.

- +
- + - + - - + + @@ -207,123 +110,8 @@ Functions
uint glm::mod GLM_FUNC_DECL vecType<T, P> glm::sign (uint vecType< T, P > const &  x,
uint y vecType< T, P > const & base 
-

Modulus.

-

Returns x - y * floor(x / y) for each component in x using the floating point value y. From GLM_GTX_integer extension.

- -
-
- -
-
- - - - - - - - -
uint glm::nlz (uint x)
-
- -

Returns the number of leading zeros.

-

From GLM_GTX_integer extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
int glm::pow (int x,
int y 
)
-
- -

Returns x raised to the y power.

-

From GLM_GTX_integer extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
uint glm::pow (uint x,
uint y 
)
-
- -

Returns x raised to the y power.

-

From GLM_GTX_integer extension.

- -
-
- -
-
- - - - - - - - -
int glm::sqrt (int x)
-
- -

Returns the positive square root of x.

-

From GLM_GTX_integer extension.

- -
-
- -
-
- - - - - - - - -
uint glm::sqrt (uint x)
-
- -

Returns the positive square root of x.

-

From GLM_GTX_integer extension.

+

Logarithm for any base.

+

From GLM_GTX_log_base.

@@ -332,7 +120,7 @@ Functions diff --git a/doc/api/a00203.html b/doc/api/a00203.html index dfadb560..e3e21930 100644 --- a/doc/api/a00203.html +++ b/doc/api/a00203.html @@ -3,8 +3,8 @@ - -GLM: GLM_GTX_intersect + +0.9.6: GLM_GTX_matrix_cross_product @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -41,350 +39,58 @@
Functions
-
GLM_GTX_intersect
+
GLM_GTX_matrix_cross_product
GTX Extensions (Experimental)
- - - - - - - - - - - - - - - - - - + + + + + +

Functions

template<typename genType >
bool intersectLineSphere (genType const &point0, genType const &point1, genType const &sphereCenter, typename genType::value_type sphereRadius, genType &intersectionPosition1, genType &intersectionNormal1, genType &intersectionPosition2=genType(), genType &intersectionNormal2=genType())
 
template<typename genType >
bool intersectLineTriangle (genType const &orig, genType const &dir, genType const &vert0, genType const &vert1, genType const &vert2, genType &position)
 
template<typename genType >
bool intersectRayPlane (genType const &orig, genType const &dir, genType const &planeOrig, genType const &planeNormal, typename genType::value_type &intersectionDistance)
 
template<typename genType >
bool intersectRaySphere (genType const &rayStarting, genType const &rayNormalizedDirection, genType const &sphereCenter, typename genType::value_type const sphereRadiusSquered, typename genType::value_type &intersectionDistance)
 
template<typename genType >
bool intersectRaySphere (genType const &rayStarting, genType const &rayNormalizedDirection, genType const &sphereCenter, const typename genType::value_type sphereRadius, genType &intersectionPosition, genType &intersectionNormal)
 
template<typename genType >
bool intersectRayTriangle (genType const &orig, genType const &dir, genType const &vert0, genType const &vert1, genType const &vert2, genType &baryPosition)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat3x3< T, P > matrixCross3 (tvec3< T, P > const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat4x4< T, P > matrixCross4 (tvec3< T, P > const &x)
 

Detailed Description

-

Add intersection functions.

-

<glm/gtx/intersect.hpp> need to be included to use these functionalities.

+

Build cross product matrices.

+

<glm/gtx/matrix_cross_product.hpp> need to be included to use these functionalities.

Function Documentation

- +
- + - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
bool glm::intersectLineSphere GLM_FUNC_DECL tmat3x3<T, P> glm::matrixCross3 (genType const & point0,
tvec3< T, P > const & x) genType const & point1,
genType const & sphereCenter,
typename genType::value_type sphereRadius,
genType & intersectionPosition1,
genType & intersectionNormal1,
genType & intersectionPosition2 = genType(),
genType & intersectionNormal2 = genType() 
)
-

Compute the intersection of a line and a sphere.

-

From GLM_GTX_intersect extension

+

Build a cross product matrix.

+

From GLM_GTX_matrix_cross_product extension.

- +
- + - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
bool glm::intersectLineTriangle GLM_FUNC_DECL tmat4x4<T, P> glm::matrixCross4 (genType const & orig,
tvec3< T, P > const & x) genType const & dir,
genType const & vert0,
genType const & vert1,
genType const & vert2,
genType & position 
)
-

Compute the intersection of a line and a triangle.

-

From GLM_GTX_intersect extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
bool glm::intersectRayPlane (genType const & orig,
genType const & dir,
genType const & planeOrig,
genType const & planeNormal,
typename genType::value_type & intersectionDistance 
)
-
- -

Compute the intersection of a ray and a triangle.

-

Ray direction and plane normal must be unit length. From GLM_GTX_intersect extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
bool glm::intersectRaySphere (genType const & rayStarting,
genType const & rayNormalizedDirection,
genType const & sphereCenter,
typename genType::value_type const sphereRadiusSquered,
typename genType::value_type & intersectionDistance 
)
-
- -

Compute the intersection distance of a ray and a sphere.

-

The ray direction vector is unit length. From GLM_GTX_intersect extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
bool glm::intersectRaySphere (genType const & rayStarting,
genType const & rayNormalizedDirection,
genType const & sphereCenter,
const typename genType::value_type sphereRadius,
genType & intersectionPosition,
genType & intersectionNormal 
)
-
- -

Compute the intersection of a ray and a sphere.

-

From GLM_GTX_intersect extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
bool glm::intersectRayTriangle (genType const & orig,
genType const & dir,
genType const & vert0,
genType const & vert1,
genType const & vert2,
genType & baryPosition 
)
-
- -

Compute the intersection of a ray and a triangle.

-

From GLM_GTX_intersect extension.

+

Build a cross product matrix.

+

From GLM_GTX_matrix_cross_product extension.

@@ -393,7 +99,7 @@ Functions diff --git a/doc/api/a00204.html b/doc/api/a00204.html index c26500fa..23e059a4 100644 --- a/doc/api/a00204.html +++ b/doc/api/a00204.html @@ -3,8 +3,8 @@ - -GLM: GLM_GTX_io + +0.9.6: GLM_GTX_matrix_decompose @@ -16,9 +16,9 @@ + @@ -26,31 +26,92 @@
-
GLM -  0.9.5 +
0.9.6
- +
+
+Functions
-
+
GLM_GTX_matrix_decompose
+ + + + + +

+Functions

template<typename T , precision P>
GLM_FUNC_DECL bool decompose (tmat4x4< T, P > const &modelMatrix, tvec3< T, P > &scale, tquat< T, P > &orientation, tvec3< T, P > &translation, tvec3< T, P > &skew, tvec4< T, P > &perspective)
 

Detailed Description

-

std::[w]ostream support for glm types

-

<glm/gtx/io.hpp> needs to be included to use these functionalities.

+

Decomposes a model matrix to translations, rotation and scale components.

+

<glm/gtx/decomposition.hpp> need to be included to use these functionalities.

+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL bool glm::decompose (tmat4x4< T, P > const & modelMatrix,
tvec3< T, P > & scale,
tquat< T, P > & orientation,
tvec3< T, P > & translation,
tvec3< T, P > & skew,
tvec4< T, P > & perspective 
)
+
+ +

Decomposes a model matrix to translations, rotation and scale components.

+
See also
GLM_GTX_matrix_decompose
+ +
+
diff --git a/doc/api/a00205.html b/doc/api/a00205.html index 87866d40..75755465 100644 --- a/doc/api/a00205.html +++ b/doc/api/a00205.html @@ -3,8 +3,8 @@ - -GLM: GLM_GTX_log_base + +0.9.6: GLM_GTX_matrix_interpolation @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -41,36 +39,50 @@
Functions
-
GLM_GTX_log_base
+
GLM_GTX_matrix_interpolation
GTX Extensions (Experimental)
- - - + + + + + + + + + + + +

Functions

template<typename genType >
genType log (genType const &x, genType const &base)
 
template<typename T , precision P>
GLM_FUNC_DECL void axisAngle (tmat4x4< T, P > const &mat, tvec3< T, P > &axis, T &angle)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat4x4< T, P > axisAngleMatrix (tvec3< T, P > const &axis, T const angle)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat4x4< T, P > extractMatrixRotation (tmat4x4< T, P > const &mat)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat4x4< T, P > interpolate (tmat4x4< T, P > const &m1, tmat4x4< T, P > const &m2, T const delta)
 

Detailed Description

-

Logarithm for any base.

-

base can be a vector or a scalar.

-

<glm/gtx/log_base.hpp> need to be included to use these functionalities.

+

Allows to directly interpolate two exiciting matrices.

+

<glm/gtx/matrix_interpolation.hpp> need to be included to use these functionalities.

Function Documentation

- +
- + - - + + - - + + + + + + + + @@ -80,8 +92,91 @@ Functions
genType glm::log GLM_FUNC_DECL void glm::axisAngle (genType const & x, tmat4x4< T, P > const & mat,
genType const & base tvec3< T, P > & axis,
T & angle 
-

Logarithm for any base.

-

From GLM_GTX_log_base.

+

Get the axis and angle of the rotation from a matrix.

+

From GLM_GTX_matrix_interpolation extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL tmat4x4<T, P> glm::axisAngleMatrix (tvec3< T, P > const & axis,
T const angle 
)
+
+ +

Build a matrix from axis and angle.

+

From GLM_GTX_matrix_interpolation extension.

+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL tmat4x4<T, P> glm::extractMatrixRotation (tmat4x4< T, P > const & mat)
+
+ +

Extracts the rotation part of a matrix.

+

From GLM_GTX_matrix_interpolation extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL tmat4x4<T, P> glm::interpolate (tmat4x4< T, P > const & m1,
tmat4x4< T, P > const & m2,
T const delta 
)
+
+ +

Build a interpolation of 4 * 4 matrixes.

+

From GLM_GTX_matrix_interpolation extension. Warning! works only with rotation and/or translation matrixes, scale will generate unexpected results.

@@ -90,7 +185,7 @@ Functions diff --git a/doc/api/a00206.html b/doc/api/a00206.html index b0e621be..d38a3ab0 100644 --- a/doc/api/a00206.html +++ b/doc/api/a00206.html @@ -3,8 +3,8 @@ - -GLM: GLM_GTX_matrix_cross_product + +0.9.6: GLM_GTX_matrix_major_storage @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -41,58 +39,374 @@
Functions
-
GLM_GTX_matrix_cross_product
+
GLM_GTX_matrix_major_storage
GTX Extensions (Experimental)
- - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Functions

template<typename T , precision P>
detail::tmat3x3< T, P > matrixCross3 (detail::tvec3< T, P > const &x)
 
template<typename T , precision P>
detail::tmat4x4< T, P > matrixCross4 (detail::tvec3< T, P > const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat2x2< T, P > colMajor2 (tvec2< T, P > const &v1, tvec2< T, P > const &v2)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat2x2< T, P > colMajor2 (tmat2x2< T, P > const &m)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat3x3< T, P > colMajor3 (tvec3< T, P > const &v1, tvec3< T, P > const &v2, tvec3< T, P > const &v3)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat3x3< T, P > colMajor3 (tmat3x3< T, P > const &m)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat4x4< T, P > colMajor4 (tvec4< T, P > const &v1, tvec4< T, P > const &v2, tvec4< T, P > const &v3, tvec4< T, P > const &v4)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat4x4< T, P > colMajor4 (tmat4x4< T, P > const &m)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat2x2< T, P > rowMajor2 (tvec2< T, P > const &v1, tvec2< T, P > const &v2)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat2x2< T, P > rowMajor2 (tmat2x2< T, P > const &m)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat3x3< T, P > rowMajor3 (tvec3< T, P > const &v1, tvec3< T, P > const &v2, tvec3< T, P > const &v3)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat3x3< T, P > rowMajor3 (tmat3x3< T, P > const &m)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat4x4< T, P > rowMajor4 (tvec4< T, P > const &v1, tvec4< T, P > const &v2, tvec4< T, P > const &v3, tvec4< T, P > const &v4)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat4x4< T, P > rowMajor4 (tmat4x4< T, P > const &m)
 

Detailed Description

-

Build cross product matrices.

-

<glm/gtx/matrix_cross_product.hpp> need to be included to use these functionalities.

+

Build matrices with specific matrix order, row or column.

+

<glm/gtx/matrix_major_storage.hpp> need to be included to use these functionalities.

Function Documentation

- +
- + - - + + + + + + + + + + + + + + +
detail::tmat3x3<T, P> glm::matrixCross3 GLM_FUNC_DECL tmat2x2<T, P> glm::colMajor2 (detail::tvec3< T, P > const & x)tvec2< T, P > const & v1,
tvec2< T, P > const & v2 
)
+
+ +

Build a column major matrix from column vectors.

+

From GLM_GTX_matrix_major_storage extension.

+ +
+
+ +
+
+ + + + + +
GLM_FUNC_DECL tmat2x2<T, P> glm::colMajor2 (tmat2x2< T, P > const & m)
-

Build a cross product matrix.

-

From GLM_GTX_matrix_cross_product extension.

+

Build a column major matrix from other matrix.

+

From GLM_GTX_matrix_major_storage extension.

- +
- + - - + + + + + + + + + + + + + + + + + + + + +
detail::tmat4x4<T, P> glm::matrixCross4 GLM_FUNC_DECL tmat3x3<T, P> glm::colMajor3 (detail::tvec3< T, P > const & x)tvec3< T, P > const & v1,
tvec3< T, P > const & v2,
tvec3< T, P > const & v3 
)
+
+ +

Build a column major matrix from column vectors.

+

From GLM_GTX_matrix_major_storage extension.

+ +
+
+ +
+
+ + + + + +
GLM_FUNC_DECL tmat3x3<T, P> glm::colMajor3 (tmat3x3< T, P > const & m)
-

Build a cross product matrix.

-

From GLM_GTX_matrix_cross_product extension.

+

Build a column major matrix from other matrix.

+

From GLM_GTX_matrix_major_storage extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL tmat4x4<T, P> glm::colMajor4 (tvec4< T, P > const & v1,
tvec4< T, P > const & v2,
tvec4< T, P > const & v3,
tvec4< T, P > const & v4 
)
+
+ +

Build a column major matrix from column vectors.

+

From GLM_GTX_matrix_major_storage extension.

+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL tmat4x4<T, P> glm::colMajor4 (tmat4x4< T, P > const & m)
+
+ +

Build a column major matrix from other matrix.

+

From GLM_GTX_matrix_major_storage extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL tmat2x2<T, P> glm::rowMajor2 (tvec2< T, P > const & v1,
tvec2< T, P > const & v2 
)
+
+ +

Build a row major matrix from row vectors.

+

From GLM_GTX_matrix_major_storage extension.

+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL tmat2x2<T, P> glm::rowMajor2 (tmat2x2< T, P > const & m)
+
+ +

Build a row major matrix from other matrix.

+

From GLM_GTX_matrix_major_storage extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL tmat3x3<T, P> glm::rowMajor3 (tvec3< T, P > const & v1,
tvec3< T, P > const & v2,
tvec3< T, P > const & v3 
)
+
+ +

Build a row major matrix from row vectors.

+

From GLM_GTX_matrix_major_storage extension.

+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL tmat3x3<T, P> glm::rowMajor3 (tmat3x3< T, P > const & m)
+
+ +

Build a row major matrix from other matrix.

+

From GLM_GTX_matrix_major_storage extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL tmat4x4<T, P> glm::rowMajor4 (tvec4< T, P > const & v1,
tvec4< T, P > const & v2,
tvec4< T, P > const & v3,
tvec4< T, P > const & v4 
)
+
+ +

Build a row major matrix from row vectors.

+

From GLM_GTX_matrix_major_storage extension.

+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL tmat4x4<T, P> glm::rowMajor4 (tmat4x4< T, P > const & m)
+
+ +

Build a row major matrix from other matrix.

+

From GLM_GTX_matrix_major_storage extension.

@@ -101,7 +415,7 @@ Functions diff --git a/doc/api/a00207.html b/doc/api/a00207.html index 8419b85a..eac9597a 100644 --- a/doc/api/a00207.html +++ b/doc/api/a00207.html @@ -3,8 +3,8 @@ - -GLM: GLM_GTX_matrix_interpolation + +0.9.6: GLM_GTX_matrix_operation @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -41,144 +39,212 @@
Functions
-
GLM_GTX_matrix_interpolation
+
GLM_GTX_matrix_operation
GTX Extensions (Experimental)
- - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + +

Functions

template<typename T , precision P>
void axisAngle (detail::tmat4x4< T, P > const &mat, detail::tvec3< T, P > &axis, T &angle)
 
template<typename T , precision P>
detail::tmat4x4< T, P > axisAngleMatrix (detail::tvec3< T, P > const &axis, T const angle)
 
template<typename T , precision P>
detail::tmat4x4< T, P > extractMatrixRotation (detail::tmat4x4< T, P > const &mat)
 
template<typename T , precision P>
detail::tmat4x4< T, P > interpolate (detail::tmat4x4< T, P > const &m1, detail::tmat4x4< T, P > const &m2, T const delta)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat2x2< T, P > diagonal2x2 (tvec2< T, P > const &v)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat2x3< T, P > diagonal2x3 (tvec2< T, P > const &v)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat2x4< T, P > diagonal2x4 (tvec2< T, P > const &v)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat3x2< T, P > diagonal3x2 (tvec2< T, P > const &v)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat3x3< T, P > diagonal3x3 (tvec3< T, P > const &v)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat3x4< T, P > diagonal3x4 (tvec3< T, P > const &v)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat4x2< T, P > diagonal4x2 (tvec2< T, P > const &v)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat4x3< T, P > diagonal4x3 (tvec3< T, P > const &v)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat4x4< T, P > diagonal4x4 (tvec4< T, P > const &v)
 

Detailed Description

-

Allows to directly interpolate two exiciting matrices.

-

<glm/gtx/matrix_interpolation.hpp> need to be included to use these functionalities.

+

Build diagonal matrices from vectors.

+

<glm/gtx/matrix_operation.hpp> need to be included to use these functionalities.

Function Documentation

- +
- + - - - - - - - - - - - - - - - - - - - - -
void glm::axisAngle GLM_FUNC_DECL tmat2x2<T, P> glm::diagonal2x2 (detail::tmat4x4< T, P > const & mat,
detail::tvec3< T, P > & axis,
T & angle 
)
-
- -

Get the axis and angle of the rotation from a matrix.

-

From GLM_GTX_matrix_interpolation extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
detail::tmat4x4<T, P> glm::axisAngleMatrix (detail::tvec3< T, P > const & axis,
T const angle 
)
-
- -

Build a matrix from axis and angle.

-

From GLM_GTX_matrix_interpolation extension.

- -
-
- -
-
- - - - - - + +
detail::tmat4x4<T, P> glm::extractMatrixRotation (detail::tmat4x4< T, P > const & mat)tvec2< T, P > const & v)
-

Extracts the rotation part of a matrix.

-

From GLM_GTX_matrix_interpolation extension.

+

Build a diagonal matrix.

+

From GLM_GTX_matrix_operation extension.

- +
- + - - - - - + + - - - - - - - - - - - - -
detail::tmat4x4<T, P> glm::interpolate GLM_FUNC_DECL tmat2x3<T, P> glm::diagonal2x3 (detail::tmat4x4< T, P > const & m1,
tvec2< T, P > const & v) detail::tmat4x4< T, P > const & m2,
T const delta 
)
-

Build a interpolation of 4 * 4 matrixes.

-

From GLM_GTX_matrix_interpolation extension. Warning! works only with rotation and/or translation matrixes, scale will generate unexpected results.

+

Build a diagonal matrix.

+

From GLM_GTX_matrix_operation extension.

+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL tmat2x4<T, P> glm::diagonal2x4 (tvec2< T, P > const & v)
+
+ +

Build a diagonal matrix.

+

From GLM_GTX_matrix_operation extension.

+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL tmat3x2<T, P> glm::diagonal3x2 (tvec2< T, P > const & v)
+
+ +

Build a diagonal matrix.

+

From GLM_GTX_matrix_operation extension.

+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL tmat3x3<T, P> glm::diagonal3x3 (tvec3< T, P > const & v)
+
+ +

Build a diagonal matrix.

+

From GLM_GTX_matrix_operation extension.

+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL tmat3x4<T, P> glm::diagonal3x4 (tvec3< T, P > const & v)
+
+ +

Build a diagonal matrix.

+

From GLM_GTX_matrix_operation extension.

+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL tmat4x2<T, P> glm::diagonal4x2 (tvec2< T, P > const & v)
+
+ +

Build a diagonal matrix.

+

From GLM_GTX_matrix_operation extension.

+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL tmat4x3<T, P> glm::diagonal4x3 (tvec3< T, P > const & v)
+
+ +

Build a diagonal matrix.

+

From GLM_GTX_matrix_operation extension.

+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL tmat4x4<T, P> glm::diagonal4x4 (tvec4< T, P > const & v)
+
+ +

Build a diagonal matrix.

+

From GLM_GTX_matrix_operation extension.

@@ -187,7 +253,7 @@ Functions diff --git a/doc/api/a00208.html b/doc/api/a00208.html index 618dece8..7ca48981 100644 --- a/doc/api/a00208.html +++ b/doc/api/a00208.html @@ -3,8 +3,8 @@ - -GLM: GLM_GTX_matrix_major_storage + +0.9.6: GLM_GTX_matrix_query @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -41,68 +39,56 @@
Functions
-
GLM_GTX_matrix_major_storage
+
GLM_GTX_matrix_query
GTX Extensions (Experimental)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + +

Functions

template<typename T , precision P>
detail::tmat2x2< T, P > colMajor2 (detail::tvec2< T, P > const &v1, detail::tvec2< T, P > const &v2)
 
template<typename T , precision P>
detail::tmat2x2< T, P > colMajor2 (detail::tmat2x2< T, P > const &m)
 
template<typename T , precision P>
detail::tmat3x3< T, P > colMajor3 (detail::tvec3< T, P > const &v1, detail::tvec3< T, P > const &v2, detail::tvec3< T, P > const &v3)
 
template<typename T , precision P>
detail::tmat3x3< T, P > colMajor3 (detail::tmat3x3< T, P > const &m)
 
template<typename T , precision P>
detail::tmat4x4< T, P > colMajor4 (detail::tvec4< T, P > const &v1, detail::tvec4< T, P > const &v2, detail::tvec4< T, P > const &v3, detail::tvec4< T, P > const &v4)
 
template<typename T , precision P>
detail::tmat4x4< T, P > colMajor4 (detail::tmat4x4< T, P > const &m)
 
template<typename T , precision P>
detail::tmat2x2< T, P > rowMajor2 (detail::tvec2< T, P > const &v1, detail::tvec2< T, P > const &v2)
 
template<typename T , precision P>
detail::tmat2x2< T, P > rowMajor2 (detail::tmat2x2< T, P > const &m)
 
template<typename T , precision P>
detail::tmat3x3< T, P > rowMajor3 (detail::tvec3< T, P > const &v1, detail::tvec3< T, P > const &v2, detail::tvec3< T, P > const &v3)
 
template<typename T , precision P>
detail::tmat3x3< T, P > rowMajor3 (detail::tmat3x3< T, P > const &m)
 
template<typename T , precision P>
detail::tmat4x4< T, P > rowMajor4 (detail::tvec4< T, P > const &v1, detail::tvec4< T, P > const &v2, detail::tvec4< T, P > const &v3, detail::tvec4< T, P > const &v4)
 
template<typename T , precision P>
detail::tmat4x4< T, P > rowMajor4 (detail::tmat4x4< T, P > const &m)
 
template<typename T , precision P, template< typename, precision > class matType>
GLM_FUNC_DECL bool isIdentity (matType< T, P > const &m, T const &epsilon)
 
template<typename T , precision P>
GLM_FUNC_DECL bool isNormalized (tmat2x2< T, P > const &m, T const &epsilon)
 
template<typename T , precision P>
GLM_FUNC_DECL bool isNormalized (tmat3x3< T, P > const &m, T const &epsilon)
 
template<typename T , precision P>
GLM_FUNC_DECL bool isNormalized (tmat4x4< T, P > const &m, T const &epsilon)
 
template<typename T , precision P>
GLM_FUNC_DECL bool isNull (tmat2x2< T, P > const &m, T const &epsilon)
 
template<typename T , precision P>
GLM_FUNC_DECL bool isNull (tmat3x3< T, P > const &m, T const &epsilon)
 
template<typename T , precision P>
GLM_FUNC_DECL bool isNull (tmat4x4< T, P > const &m, T const &epsilon)
 
template<typename T , precision P, template< typename, precision > class matType>
GLM_FUNC_DECL bool isOrthogonal (matType< T, P > const &m, T const &epsilon)
 

Detailed Description

-

Build matrices with specific matrix order, row or column.

-

<glm/gtx/matrix_major_storage.hpp> need to be included to use these functionalities.

+

Query to evaluate matrix properties.

+

<glm/gtx/matrix_query.hpp> need to be included to use these functionalities.

Function Documentation

- +
- + - - + + - - + + @@ -112,51 +98,26 @@ Functions
detail::tmat2x2<T, P> glm::colMajor2 GLM_FUNC_DECL bool glm::isIdentity (detail::tvec2< T, P > const & v1, matType< T, P > const & m,
detail::tvec2< T, P > const & v2 T const & epsilon 
-

Build a column major matrix from column vectors.

-

From GLM_GTX_matrix_major_storage extension.

+

Return whether a matrix is an identity matrix.

+

From GLM_GTX_matrix_query extension.

- +
- + - - - - -
detail::tmat2x2<T, P> glm::colMajor2 GLM_FUNC_DECL bool glm::isNormalized (detail::tmat2x2< T, P > const & m)
-
- -

Build a column major matrix from other matrix.

-

From GLM_GTX_matrix_major_storage extension.

- -
-
- -
-
- - - - - - + + - - - - - - - - + + @@ -166,57 +127,26 @@ Functions
detail::tmat3x3<T, P> glm::colMajor3 (detail::tvec3< T, P > const & v1, tmat2x2< T, P > const & m,
detail::tvec3< T, P > const & v2,
detail::tvec3< T, P > const & v3 T const & epsilon 
-

Build a column major matrix from column vectors.

-

From GLM_GTX_matrix_major_storage extension.

+

Return whether a matrix is a normalized matrix.

+

From GLM_GTX_matrix_query extension.

- +
- + - - - - -
detail::tmat3x3<T, P> glm::colMajor3 GLM_FUNC_DECL bool glm::isNormalized (detail::tmat3x3< T, P > const & m)
-
- -

Build a column major matrix from other matrix.

-

From GLM_GTX_matrix_major_storage extension.

- -
-
- -
-
- - - - - - + + - - - - - - - - - - - - - - + + @@ -226,45 +156,26 @@ Functions
detail::tmat4x4<T, P> glm::colMajor4 (detail::tvec4< T, P > const & v1, tmat3x3< T, P > const & m,
detail::tvec4< T, P > const & v2,
detail::tvec4< T, P > const & v3,
detail::tvec4< T, P > const & v4 T const & epsilon 
-

Build a column major matrix from column vectors.

-

From GLM_GTX_matrix_major_storage extension.

+

Return whether a matrix is a normalized matrix.

+

From GLM_GTX_matrix_query extension.

- +
- + - - - - -
detail::tmat4x4<T, P> glm::colMajor4 GLM_FUNC_DECL bool glm::isNormalized (detail::tmat4x4< T, P > const & m)
-
- -

Build a column major matrix from other matrix.

-

From GLM_GTX_matrix_major_storage extension.

- -
-
- -
-
- - - - - - + + - - + + @@ -274,51 +185,26 @@ Functions
detail::tmat2x2<T, P> glm::rowMajor2 (detail::tvec2< T, P > const & v1, tmat4x4< T, P > const & m,
detail::tvec2< T, P > const & v2 T const & epsilon 
-

Build a row major matrix from row vectors.

-

From GLM_GTX_matrix_major_storage extension.

+

Return whether a matrix is a normalized matrix.

+

From GLM_GTX_matrix_query extension.

- +
- + - - - - -
detail::tmat2x2<T, P> glm::rowMajor2 GLM_FUNC_DECL bool glm::isNull (detail::tmat2x2< T, P > const & m)
-
- -

Build a row major matrix from other matrix.

-

From GLM_GTX_matrix_major_storage extension.

- -
-
- -
-
- - - - - - + + - - - - - - - - + + @@ -328,57 +214,26 @@ Functions
detail::tmat3x3<T, P> glm::rowMajor3 (detail::tvec3< T, P > const & v1, tmat2x2< T, P > const & m,
detail::tvec3< T, P > const & v2,
detail::tvec3< T, P > const & v3 T const & epsilon 
-

Build a row major matrix from row vectors.

-

From GLM_GTX_matrix_major_storage extension.

+

Return whether a matrix a null matrix.

+

From GLM_GTX_matrix_query extension.

- +
- + - - - - -
detail::tmat3x3<T, P> glm::rowMajor3 GLM_FUNC_DECL bool glm::isNull (detail::tmat3x3< T, P > const & m)
-
- -

Build a row major matrix from other matrix.

-

From GLM_GTX_matrix_major_storage extension.

- -
-
- -
-
- - - - - - + + - - - - - - - - - - - - - - + + @@ -388,27 +243,66 @@ Functions
detail::tmat4x4<T, P> glm::rowMajor4 (detail::tvec4< T, P > const & v1, tmat3x3< T, P > const & m,
detail::tvec4< T, P > const & v2,
detail::tvec4< T, P > const & v3,
detail::tvec4< T, P > const & v4 T const & epsilon 
-

Build a row major matrix from row vectors.

-

From GLM_GTX_matrix_major_storage extension.

+

Return whether a matrix a null matrix.

+

From GLM_GTX_matrix_query extension.

- +
- + - - + + + + + + + + + + + +
detail::tmat4x4<T, P> glm::rowMajor4 GLM_FUNC_DECL bool glm::isNull (detail::tmat4x4< T, P > const & m)tmat4x4< T, P > const & m,
T const & epsilon 
)
-

Build a row major matrix from other matrix.

-

From GLM_GTX_matrix_major_storage extension.

+

Return whether a matrix is a null matrix.

+

From GLM_GTX_matrix_query extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL bool glm::isOrthogonal (matType< T, P > const & m,
T const & epsilon 
)
+
+ +

Return whether a matrix is an orthonormalized matrix.

+

From GLM_GTX_matrix_query extension.

@@ -417,7 +311,7 @@ Functions diff --git a/doc/api/a00209.html b/doc/api/a00209.html index dd2c4fd2..e79ffa3d 100644 --- a/doc/api/a00209.html +++ b/doc/api/a00209.html @@ -3,8 +3,8 @@ - -GLM: GLM_GTX_matrix_operation + +0.9.6: GLM_GTX_matrix_transform_2d @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -41,212 +39,204 @@
Functions
-
GLM_GTX_matrix_operation
+
GLM_GTX_matrix_transform_2d
GTX Extensions (Experimental)
- - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + +

Functions

template<typename T , precision P>
detail::tmat2x2< T, P > diagonal2x2 (detail::tvec2< T, P > const &v)
 
template<typename T , precision P>
detail::tmat2x3< T, P > diagonal2x3 (detail::tvec2< T, P > const &v)
 
template<typename T , precision P>
detail::tmat2x4< T, P > diagonal2x4 (detail::tvec2< T, P > const &v)
 
template<typename T , precision P>
detail::tmat3x2< T, P > diagonal3x2 (detail::tvec2< T, P > const &v)
 
template<typename T , precision P>
detail::tmat3x3< T, P > diagonal3x3 (detail::tvec3< T, P > const &v)
 
template<typename T , precision P>
detail::tmat3x4< T, P > diagonal3x4 (detail::tvec3< T, P > const &v)
 
template<typename T , precision P>
detail::tmat4x2< T, P > diagonal4x2 (detail::tvec2< T, P > const &v)
 
template<typename T , precision P>
detail::tmat4x3< T, P > diagonal4x3 (detail::tvec3< T, P > const &v)
 
template<typename T , precision P>
detail::tmat4x4< T, P > diagonal4x4 (detail::tvec4< T, P > const &v)
 
template<typename T , precision P>
GLM_FUNC_QUALIFIER tmat3x3< T, P > rotate (tmat3x3< T, P > const &m, T angle)
 
template<typename T , precision P>
GLM_FUNC_QUALIFIER tmat3x3< T, P > scale (tmat3x3< T, P > const &m, tvec2< T, P > const &v)
 
template<typename T , precision P>
GLM_FUNC_QUALIFIER tmat3x3< T, P > shearX (tmat3x3< T, P > const &m, T y)
 
template<typename T , precision P>
GLM_FUNC_QUALIFIER tmat3x3< T, P > shearY (tmat3x3< T, P > const &m, T x)
 
template<typename T , precision P>
GLM_FUNC_QUALIFIER tmat3x3< T, P > translate (tmat3x3< T, P > const &m, tvec2< T, P > const &v)
 

Detailed Description

-

Build diagonal matrices from vectors.

-

<glm/gtx/matrix_operation.hpp> need to be included to use these functionalities.

+

Defines functions that generate common 2d transformation matrices.

+

<glm/gtx/matrix_transform_2d.hpp> need to be included to use these functionalities.

Function Documentation

- +
- + - - + + + + + + + + + + + +
detail::tmat2x2<T, P> glm::diagonal2x2 GLM_FUNC_QUALIFIER tmat3x3<T, P> glm::rotate (detail::tvec2< T, P > const & v)tmat3x3< T, P > const & m,
angle 
)
-

Build a diagonal matrix.

-

From GLM_GTX_matrix_operation extension.

+

Builds a rotation 3 * 3 matrix created from an angle.

+
Parameters
+ + + +
mInput matrix multiplied by this translation matrix.
angleRotation angle expressed in radians if GLM_FORCE_RADIANS is defined or degrees otherwise.
+
+
- +
- + - - + + + + + + + + + + + +
detail::tmat2x3<T, P> glm::diagonal2x3 GLM_FUNC_QUALIFIER tmat3x3<T, P> glm::scale (detail::tvec2< T, P > const & v)tmat3x3< T, P > const & m,
tvec2< T, P > const & v 
)
-

Build a diagonal matrix.

-

From GLM_GTX_matrix_operation extension.

+

Builds a scale 3 * 3 matrix created from a vector of 2 components.

+
Parameters
+ + + +
mInput matrix multiplied by this translation matrix.
vCoordinates of a scale vector.
+
+
- +
- + - - + + + + + + + + + + + +
detail::tmat2x4<T, P> glm::diagonal2x4 GLM_FUNC_QUALIFIER tmat3x3<T, P> glm::shearX (detail::tvec2< T, P > const & v)tmat3x3< T, P > const & m,
y 
)
-

Build a diagonal matrix.

-

From GLM_GTX_matrix_operation extension.

+

Builds an horizontal (parallel to the x axis) shear 3 * 3 matrix.

+
Parameters
+ + + +
mInput matrix multiplied by this translation matrix.
yShear factor.
+
+
- +
- + - - + + + + + + + + + + + +
detail::tmat3x2<T, P> glm::diagonal3x2 GLM_FUNC_QUALIFIER tmat3x3<T, P> glm::shearY (detail::tvec2< T, P > const & v)tmat3x3< T, P > const & m,
x 
)
-

Build a diagonal matrix.

-

From GLM_GTX_matrix_operation extension.

+

Builds a vertical (parallel to the y axis) shear 3 * 3 matrix.

+
Parameters
+ + + +
mInput matrix multiplied by this translation matrix.
xShear factor.
+
+
- +
- + - - - + + -
detail::tmat3x3<T, P> glm::diagonal3x3 GLM_FUNC_QUALIFIER tmat3x3<T, P> glm::translate (detail::tvec3< T, P > const & v)tmat3x3< T, P > const & m,
-
- -

Build a diagonal matrix.

-

From GLM_GTX_matrix_operation extension.

- -
-
- -
-
- - - - - + + + -
detail::tmat3x4<T, P> glm::diagonal3x4 (detail::tvec3< T, P > const & v) tvec2< T, P > const & v 
-
- -

Build a diagonal matrix.

-

From GLM_GTX_matrix_operation extension.

- -
-
- -
-
- - - - - + +
detail::tmat4x2<T, P> glm::diagonal4x2 (detail::tvec2< T, P > const & v) )
-

Build a diagonal matrix.

-

From GLM_GTX_matrix_operation extension.

- -
-
- -
-
- - - - - - - - -
detail::tmat4x3<T, P> glm::diagonal4x3 (detail::tvec3< T, P > const & v)
-
- -

Build a diagonal matrix.

-

From GLM_GTX_matrix_operation extension.

- -
-
- -
-
- - - - - - - - -
detail::tmat4x4<T, P> glm::diagonal4x4 (detail::tvec4< T, P > const & v)
-
- -

Build a diagonal matrix.

-

From GLM_GTX_matrix_operation extension.

+

Builds a translation 3 * 3 matrix created from a vector of 2 components.

+
Parameters
+ + + +
mInput matrix multiplied by this translation matrix.
vCoordinates of a translation vector.
+
+
@@ -255,7 +245,7 @@ Functions diff --git a/doc/api/a00210.html b/doc/api/a00210.html index 4e2e74cc..50d798ef 100644 --- a/doc/api/a00210.html +++ b/doc/api/a00210.html @@ -3,8 +3,8 @@ - -GLM: GLM_GTX_matrix_query + +0.9.6: GLM_GTX_mixed_producte @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -41,279 +39,26 @@
Functions
-
GLM_GTX_matrix_query
+
GLM_GTX_mixed_producte
GTX Extensions (Experimental)
- - - - - - - - - - - - - - - - - - - - - - - - + + +

Functions

template<typename T , precision P, template< typename, precision > class matType>
bool isIdentity (matType< T, P > const &m, T const &epsilon)
 
template<typename T , precision P>
bool isNormalized (detail::tmat2x2< T, P > const &m, T const &epsilon)
 
template<typename T , precision P>
bool isNormalized (detail::tmat3x3< T, P > const &m, T const &epsilon)
 
template<typename T , precision P>
bool isNormalized (detail::tmat4x4< T, P > const &m, T const &epsilon)
 
template<typename T , precision P>
bool isNull (detail::tmat2x2< T, P > const &m, T const &epsilon)
 
template<typename T , precision P>
bool isNull (detail::tmat3x3< T, P > const &m, T const &epsilon)
 
template<typename T , precision P>
bool isNull (detail::tmat4x4< T, P > const &m, T const &epsilon)
 
template<typename T , precision P, template< typename, precision > class matType>
bool isOrthogonal (matType< T, P > const &m, T const &epsilon)
 
+template<typename T , precision P>
GLM_FUNC_DECL T mixedProduct (tvec3< T, P > const &v1, tvec3< T, P > const &v2, tvec3< T, P > const &v3)
 

Detailed Description

-

Query to evaluate matrix properties.

-

<glm/gtx/matrix_query.hpp> need to be included to use these functionalities.

-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - -
bool glm::isIdentity (matType< T, P > const & m,
T const & epsilon 
)
-
- -

Return whether a matrix is an identity matrix.

-

From GLM_GTX_matrix_query extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
bool glm::isNormalized (detail::tmat2x2< T, P > const & m,
T const & epsilon 
)
-
- -

Return whether a matrix is a normalized matrix.

-

From GLM_GTX_matrix_query extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
bool glm::isNormalized (detail::tmat3x3< T, P > const & m,
T const & epsilon 
)
-
- -

Return whether a matrix is a normalized matrix.

-

From GLM_GTX_matrix_query extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
bool glm::isNormalized (detail::tmat4x4< T, P > const & m,
T const & epsilon 
)
-
- -

Return whether a matrix is a normalized matrix.

-

From GLM_GTX_matrix_query extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
bool glm::isNull (detail::tmat2x2< T, P > const & m,
T const & epsilon 
)
-
- -

Return whether a matrix a null matrix.

-

From GLM_GTX_matrix_query extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
bool glm::isNull (detail::tmat3x3< T, P > const & m,
T const & epsilon 
)
-
- -

Return whether a matrix a null matrix.

-

From GLM_GTX_matrix_query extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
bool glm::isNull (detail::tmat4x4< T, P > const & m,
T const & epsilon 
)
-
- -

Return whether a matrix is a null matrix.

-

From GLM_GTX_matrix_query extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
bool glm::isOrthogonal (matType< T, P > const & m,
T const & epsilon 
)
-
- -

Return whether a matrix is an orthonormalized matrix.

-

From GLM_GTX_matrix_query extension.

- -
-
+

Mixed product of 3 vectors.

+

<glm/gtx/mixed_product.hpp> need to be included to use these functionalities.

diff --git a/doc/api/a00211.html b/doc/api/a00211.html index 80041133..2376c23f 100644 --- a/doc/api/a00211.html +++ b/doc/api/a00211.html @@ -3,8 +3,8 @@ - -GLM: GLM_GTX_mixed_producte + +0.9.6: GLM_GTX_multiple @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -41,26 +39,207 @@
Functions
-
GLM_GTX_mixed_producte
+
GLM_GTX_multiple
GTX Extensions (Experimental)
- - - + + + + + + + + + + + +

Functions

-template<typename T , precision P>
mixedProduct (detail::tvec3< T, P > const &v1, detail::tvec3< T, P > const &v2, detail::tvec3< T, P > const &v3)
 
template<typename genType >
GLM_DEPRECATED GLM_FUNC_DECL
+genType 
higherMultiple (genType Source, genType Multiple)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_DEPRECATED GLM_FUNC_DECL
+vecType< T, P > 
higherMultiple (vecType< T, P > const &Source, vecType< T, P > const &Multiple)
 
template<typename genType >
GLM_DEPRECATED GLM_FUNC_DECL
+genType 
lowerMultiple (genType Source, genType Multiple)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_DEPRECATED GLM_FUNC_DECL
+vecType< T, P > 
lowerMultiple (vecType< T, P > const &Source, vecType< T, P > const &Multiple)
 

Detailed Description

-

Mixed product of 3 vectors.

-

<glm/gtx/mixed_product.hpp> need to be included to use these functionalities.

+

Find the closest number of a number multiple of other number.

+

<glm/gtx/multiple.hpp> need to be included to use these functionalities.

+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_DEPRECATED GLM_FUNC_DECL genType glm::higherMultiple (genType Source,
genType Multiple 
)
+
+ +

Higher multiple number of Source.

+
Template Parameters
+ + +
genTypeFloating-point or integer scalar or vector types.
+
+
+
Parameters
+ + + +
Source
MultipleMust be a null or positive value
+
+
+
See also
GLM_GTX_multiple
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_DEPRECATED GLM_FUNC_DECL vecType<T, P> glm::higherMultiple (vecType< T, P > const & Source,
vecType< T, P > const & Multiple 
)
+
+ +

Higher multiple number of Source.

+
Template Parameters
+ + +
genTypeFloating-point or integer scalar or vector types.
+
+
+
Parameters
+ + + +
Source
MultipleMust be a null or positive value
+
+
+
See also
GLM_GTX_multiple
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_DEPRECATED GLM_FUNC_DECL genType glm::lowerMultiple (genType Source,
genType Multiple 
)
+
+ +

Lower multiple number of Source.

+
Template Parameters
+ + +
genTypeFloating-point or integer scalar or vector types.
+
+
+
Parameters
+ + + +
Source
MultipleMust be a null or positive value
+
+
+
See also
GLM_GTX_multiple
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_DEPRECATED GLM_FUNC_DECL vecType<T, P> glm::lowerMultiple (vecType< T, P > const & Source,
vecType< T, P > const & Multiple 
)
+
+ +

Lower multiple number of Source.

+
Template Parameters
+ + +
genTypeFloating-point or integer scalar or vector types.
+
+
+
Parameters
+ + + +
Source
MultipleMust be a null or positive value
+
+
+
See also
GLM_GTX_multiple
+ +
+
diff --git a/doc/api/a00212.html b/doc/api/a00212.html index b513b03e..879ee5b2 100644 --- a/doc/api/a00212.html +++ b/doc/api/a00212.html @@ -3,8 +3,8 @@ - -GLM: GLM_GTX_multiple + +0.9.6: GLM_GTX_norm @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -41,38 +39,62 @@
Functions
-
GLM_GTX_multiple
+
GLM_GTX_norm
GTX Extensions (Experimental)
- - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Functions

template<typename genType >
genType higherMultiple (genType const &Source, genType const &Multiple)
 
template<typename genType >
genType lowerMultiple (genType const &Source, genType const &Multiple)
 
template<typename T >
GLM_FUNC_DECL T distance2 (T const &p0, T const &p1)
 
template<typename genType >
GLM_FUNC_DECL genType::value_type distance2 (genType const &p0, genType const &p1)
 
template<typename T , precision P>
GLM_FUNC_DECL T l1Norm (tvec3< T, P > const &x, tvec3< T, P > const &y)
 
template<typename T , precision P>
GLM_FUNC_DECL T l1Norm (tvec3< T, P > const &v)
 
template<typename T , precision P>
GLM_FUNC_DECL T l2Norm (tvec3< T, P > const &x, tvec3< T, P > const &y)
 
template<typename T , precision P>
GLM_FUNC_DECL T l2Norm (tvec3< T, P > const &x)
 
template<typename T >
GLM_FUNC_DECL T length2 (T const &x)
 
template<typename genType >
GLM_FUNC_DECL genType::value_type length2 (genType const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL T lxNorm (tvec3< T, P > const &x, tvec3< T, P > const &y, unsigned int Depth)
 
template<typename T , precision P>
GLM_FUNC_DECL T lxNorm (tvec3< T, P > const &x, unsigned int Depth)
 

Detailed Description

-

Find the closest number of a number multiple of other number.

-

<glm/gtx/multiple.hpp> need to be included to use these functionalities.

+

Various ways to compute vector norms.

+

<glm/gtx/norm.hpp> need to be included to use these functionalities.

Function Documentation

- +
- + - - + + - - + + @@ -82,39 +104,26 @@ Functions
genType glm::higherMultiple GLM_FUNC_DECL T glm::distance2 (genType const & Source, T const & p0,
genType const & Multiple T const & p1 
-

Higher multiple number of Source.

-
Template Parameters
- - -
genTypeFloating-point or integer scalar or vector types.
-
-
-
Parameters
- - - -
Source
MultipleMust be a null or positive value
-
-
-
See Also
GLM_GTX_multiple
+

Returns the squared distance between p0 and p1, i.e., length(p0 - p1).

+

From GLM_GTX_norm extension.

- +
- + - + - + @@ -124,21 +133,206 @@ Functions
genType glm::lowerMultiple GLM_FUNC_DECL genType::value_type glm::distance2 ( genType const & Source, p0,
genType const & Multiple p1 
-

Lower multiple number of Source.

-
Template Parameters
- - -
genTypeFloating-point or integer scalar or vector types.
-
-
-
Parameters
- - - -
Source
MultipleMust be a null or positive value
-
-
-
See Also
GLM_GTX_multiple
+

Returns the squared distance between p0 and p1, i.e., length(p0 - p1).

+

From GLM_GTX_norm extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL T glm::l1Norm (tvec3< T, P > const & x,
tvec3< T, P > const & y 
)
+
+ +

Returns the L1 norm between x and y.

+

From GLM_GTX_norm extension.

+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL T glm::l1Norm (tvec3< T, P > const & v)
+
+ +

Returns the L1 norm of v.

+

From GLM_GTX_norm extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL T glm::l2Norm (tvec3< T, P > const & x,
tvec3< T, P > const & y 
)
+
+ +

Returns the L2 norm between x and y.

+

From GLM_GTX_norm extension.

+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL T glm::l2Norm (tvec3< T, P > const & x)
+
+ +

Returns the L2 norm of v.

+

From GLM_GTX_norm extension.

+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL T glm::length2 (T const & x)
+
+ +

Returns the squared length of x.

+

From GLM_GTX_norm extension.

+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL genType::value_type glm::length2 (genType const & x)
+
+ +

Returns the squared length of x.

+

From GLM_GTX_norm extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL T glm::lxNorm (tvec3< T, P > const & x,
tvec3< T, P > const & y,
unsigned int Depth 
)
+
+ +

Returns the L norm between x and y.

+

From GLM_GTX_norm extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL T glm::lxNorm (tvec3< T, P > const & x,
unsigned int Depth 
)
+
+ +

Returns the L norm of v.

+

From GLM_GTX_norm extension.

@@ -147,7 +341,7 @@ Functions diff --git a/doc/api/a00213.html b/doc/api/a00213.html index 7c239ca3..392c60af 100644 --- a/doc/api/a00213.html +++ b/doc/api/a00213.html @@ -3,8 +3,8 @@ - -GLM: GLM_GTX_norm + +0.9.6: GLM_GTX_normal @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -41,62 +39,41 @@
Functions
-
GLM_GTX_norm
+
GLM_GTX_normal
GTX Extensions (Experimental)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + +

Functions

template<typename T >
distance2 (T const &p0, T const &p1)
 
template<typename genType >
genType::value_type distance2 (genType const &p0, genType const &p1)
 
template<typename T , precision P>
l1Norm (detail::tvec3< T, P > const &x, detail::tvec3< T, P > const &y)
 
template<typename T , precision P>
l1Norm (detail::tvec3< T, P > const &v)
 
template<typename T , precision P>
l2Norm (detail::tvec3< T, P > const &x, detail::tvec3< T, P > const &y)
 
template<typename T , precision P>
l2Norm (detail::tvec3< T, P > const &x)
 
template<typename T >
length2 (T const &x)
 
template<typename genType >
genType::value_type length2 (genType const &x)
 
template<typename T , precision P>
lxNorm (detail::tvec3< T, P > const &x, detail::tvec3< T, P > const &y, unsigned int Depth)
 
template<typename T , precision P>
lxNorm (detail::tvec3< T, P > const &x, unsigned int Depth)
 
template<typename T , precision P>
GLM_FUNC_DECL tvec3< T, P > triangleNormal (tvec3< T, P > const &p1, tvec3< T, P > const &p2, tvec3< T, P > const &p3)
 

Detailed Description

-

Various ways to compute vector norms.

-

<glm/gtx/norm.hpp> need to be included to use these functionalities.

+

Compute the normal of a triangle.

+

<glm/gtx/normal.hpp> need to be included to use these functionalities.

Function Documentation

- +
- + - - + + - - + + + + + + + + @@ -106,235 +83,8 @@ Functions
T glm::distance2 GLM_FUNC_DECL tvec3<T, P> glm::triangleNormal (T const & p0, tvec3< T, P > const & p1,
T const & p1 tvec3< T, P > const & p2,
tvec3< T, P > const & p3 
-

Returns the squared distance between p0 and p1, i.e., length(p0 - p1).

-

From GLM_GTX_norm extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
genType::value_type glm::distance2 (genType const & p0,
genType const & p1 
)
-
- -

Returns the squared distance between p0 and p1, i.e., length(p0 - p1).

-

From GLM_GTX_norm extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
T glm::l1Norm (detail::tvec3< T, P > const & x,
detail::tvec3< T, P > const & y 
)
-
- -

Returns the L1 norm between x and y.

-

From GLM_GTX_norm extension.

- -
-
- -
-
- - - - - - - - -
T glm::l1Norm (detail::tvec3< T, P > const & v)
-
- -

Returns the L1 norm of v.

-

From GLM_GTX_norm extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
T glm::l2Norm (detail::tvec3< T, P > const & x,
detail::tvec3< T, P > const & y 
)
-
- -

Returns the L2 norm between x and y.

-

From GLM_GTX_norm extension.

- -
-
- -
-
- - - - - - - - -
T glm::l2Norm (detail::tvec3< T, P > const & x)
-
- -

Returns the L2 norm of v.

-

From GLM_GTX_norm extension.

- -
-
- -
-
- - - - - - - - -
T glm::length2 (T const & x)
-
- -

Returns the squared length of x.

-

From GLM_GTX_norm extension.

- -
-
- -
-
- - - - - - - - -
genType::value_type glm::length2 (genType const & x)
-
- -

Returns the squared length of x.

-

From GLM_GTX_norm extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
T glm::lxNorm (detail::tvec3< T, P > const & x,
detail::tvec3< T, P > const & y,
unsigned int Depth 
)
-
- -

Returns the L norm between x and y.

-

From GLM_GTX_norm extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
T glm::lxNorm (detail::tvec3< T, P > const & x,
unsigned int Depth 
)
-
- -

Returns the L norm of v.

-

From GLM_GTX_norm extension.

+

Computes triangle normal from triangle points.

+

From GLM_GTX_normal extension.

@@ -343,7 +93,7 @@ Functions diff --git a/doc/api/a00214.html b/doc/api/a00214.html index 5e22df4c..f10b3735 100644 --- a/doc/api/a00214.html +++ b/doc/api/a00214.html @@ -3,8 +3,8 @@ - -GLM: GLM_GTX_normal + +0.9.6: GLM_GTX_normalize_dot @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -41,41 +39,38 @@
Functions
-
GLM_GTX_normal
+
GLM_GTX_normalize_dot
GTX Extensions (Experimental)
- - - + + + + + +

Functions

template<typename T , precision P>
detail::tvec3< T, P > triangleNormal (detail::tvec3< T, P > const &p1, detail::tvec3< T, P > const &p2, detail::tvec3< T, P > const &p3)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL T fastNormalizeDot (vecType< T, P > const &x, vecType< T, P > const &y)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL T normalizeDot (vecType< T, P > const &x, vecType< T, P > const &y)
 

Detailed Description

-

Compute the normal of a triangle.

-

<glm/gtx/normal.hpp> need to be included to use these functionalities.

+

Dot product of vectors that need to be normalize with a single square root.

+

<glm/gtx/normalized_dot.hpp> need to be included to use these functionalities.

Function Documentation

- +
- + - - + + - - - - - - - - + + @@ -85,8 +80,39 @@ Functions
detail::tvec3<T, P> glm::triangleNormal GLM_FUNC_DECL T glm::fastNormalizeDot (detail::tvec3< T, P > const & p1, vecType< T, P > const & x,
detail::tvec3< T, P > const & p2,
detail::tvec3< T, P > const & p3 vecType< T, P > const & y 
-

Computes triangle normal from triangle points.

-

From GLM_GTX_normal extension.

+

Normalize parameters and returns the dot product of x and y.

+

Faster that dot(fastNormalize(x), fastNormalize(y)).

+
See also
GLM_GTX_normalize_dot extension.
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL T glm::normalizeDot (vecType< T, P > const & x,
vecType< T, P > const & y 
)
+
+ +

Normalize parameters and returns the dot product of x and y.

+

It's faster that dot(normalize(x), normalize(y)).

+
See also
GLM_GTX_normalize_dot extension.
@@ -95,7 +121,7 @@ Functions diff --git a/doc/api/a00215.html b/doc/api/a00215.html index ed13d26a..7171ca2a 100644 --- a/doc/api/a00215.html +++ b/doc/api/a00215.html @@ -3,8 +3,8 @@ - -GLM: GLM_GTX_normalize_dot + +0.9.6: GLM_GTX_number_precision @@ -16,9 +16,9 @@ + @@ -26,102 +26,65 @@
-
GLM -  0.9.5 +
0.9.6
- +
-Functions
+Typedefs
-
GLM_GTX_normalize_dot
+
GLM_GTX_number_precision
GTX Extensions (Experimental)
- - - - - - - + + + + + + + + + + + + + + + + + + + + +

-Functions

template<typename genType >
genType::value_type fastNormalizeDot (genType const &x, genType const &y)
 
template<typename genType >
genType::value_type normalizeDot (genType const &x, genType const &y)
 

+Typedefs

+typedef f32 f32mat1
 
+typedef f32 f32mat1x1
 
+typedef f32 f32vec1
 
+typedef f64 f64mat1
 
+typedef f64 f64mat1x1
 
+typedef f64 f64vec1
 
+typedef u16 u16vec1
 
+typedef u32 u32vec1
 
+typedef u64 u64vec1
 
+typedef u8 u8vec1
 

Detailed Description

-

Dot product of vectors that need to be normalize with a single square root.

-

<glm/gtx/normalized_dot.hpp> need to be included to use these functionalities.

-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - -
genType::value_type glm::fastNormalizeDot (genType const & x,
genType const & y 
)
-
- -

Normalize parameters and returns the dot product of x and y.

-

Faster that dot(fastNormalize(x), fastNormalize(y)). From GLM_GTX_normalize_dot extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
genType::value_type glm::normalizeDot (genType const & x,
genType const & y 
)
-
- -

Normalize parameters and returns the dot product of x and y.

-

It's faster that dot(normalize(x), normalize(y)). From GLM_GTX_normalize_dot extension.

- -
-
+

Defined size types.

+

<glm/gtx/number_precision.hpp> need to be included to use these functionalities.

diff --git a/doc/api/a00216.html b/doc/api/a00216.html index 71cdac74..d41ce231 100644 --- a/doc/api/a00216.html +++ b/doc/api/a00216.html @@ -3,8 +3,8 @@ - -GLM: GLM_GTX_number_precision + +0.9.6: GLM_GTX_optimum_pow @@ -16,9 +16,9 @@ + @@ -26,67 +26,102 @@
-
GLM -  0.9.5 +
0.9.6
- +
-Typedefs
+Functions
-
GLM_GTX_number_precision
+
GLM_GTX_optimum_pow
GTX Extensions (Experimental)
- - - - - - - - - - - - - - - - - - - - - + + + + + + + + + +

-Typedefs

-typedef f32 f32mat1
 
-typedef f32 f32mat1x1
 
-typedef f32 f32vec1
 
-typedef f64 f64mat1
 
-typedef f64 f64mat1x1
 
-typedef f64 f64vec1
 
-typedef u16 u16vec1
 
-typedef u32 u32vec1
 
-typedef u64 u64vec1
 
-typedef u8 u8vec1
 

+Functions

template<typename genType >
GLM_FUNC_DECL genType pow2 (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType pow3 (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType pow4 (genType const &x)
 

Detailed Description

-

Defined size types.

-

<glm/gtx/number_precision.hpp> need to be included to use these functionalities.

+

Integer exponentiation of power functions.

+

<glm/gtx/optimum_pow.hpp> need to be included to use these functionalities.

+

Function Documentation

+ +
+
+ + + + + + + + +
GLM_FUNC_DECL genType glm::gtx::pow2 (genType const & x)
+
+ +

Returns x raised to the power of 2.

+
See also
GLM_GTX_optimum_pow
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL genType glm::gtx::pow3 (genType const & x)
+
+ +

Returns x raised to the power of 3.

+
See also
GLM_GTX_optimum_pow
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL genType glm::gtx::pow4 (genType const & x)
+
+ +

Returns x raised to the power of 4.

+
See also
GLM_GTX_optimum_pow
+ +
+
diff --git a/doc/api/a00217.html b/doc/api/a00217.html index 7d1e901e..682ba31e 100644 --- a/doc/api/a00217.html +++ b/doc/api/a00217.html @@ -3,8 +3,8 @@ - -GLM: GLM_GTX_optimum_pow + +0.9.6: GLM_GTX_orthonormalize @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -41,167 +39,68 @@
Functions
-
GLM_GTX_optimum_pow
+
GLM_GTX_orthonormalize
GTX Extensions (Experimental)
- - - - - - - - - - - - - - - - - - - - + + + + + +

Functions

template<typename genType >
genType pow2 (const genType &x)
 
template<typename genType >
genType pow3 (const genType &x)
 
template<typename genType >
genType pow4 (const genType &x)
 
bool powOfTwo (int num)
 
template<precision P>
detail::tvec2< bool, P > powOfTwo (detail::tvec2< int, P > const &x)
 
template<precision P>
detail::tvec3< bool, P > powOfTwo (detail::tvec3< int, P > const &x)
 
template<precision P>
detail::tvec4< bool, P > powOfTwo (detail::tvec4< int, P > const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat3x3< T, P > orthonormalize (tmat3x3< T, P > const &m)
 
template<typename T , precision P>
GLM_FUNC_DECL tvec3< T, P > orthonormalize (tvec3< T, P > const &x, tvec3< T, P > const &y)
 

Detailed Description

-

Integer exponentiation of power functions.

-

<glm/gtx/optimum_pow.hpp> need to be included to use these functionalities.

+

Orthonormalize matrices.

+

<glm/gtx/orthonormalize.hpp> need to be included to use these functionalities.

Function Documentation

- +
- + - - + +
genType glm::gtx::pow2 GLM_FUNC_DECL tmat3x3<T, P> glm::orthonormalize (const genType & x)tmat3x3< T, P > const & m)
-

Returns x raised to the power of 2.

-

From GLM_GTX_optimum_pow extension.

+

Returns the orthonormalized matrix of m.

+
See also
GLM_GTX_orthonormalize
- +
- + - - - + + -
genType glm::gtx::pow3 GLM_FUNC_DECL tvec3<T, P> glm::orthonormalize (const genType & x)tvec3< T, P > const & x,
-
- -

Returns x raised to the power of 3.

-

From GLM_GTX_optimum_pow extension.

- -
-
- -
-
- - - - - + + + -
genType glm::gtx::pow4 (const genType & x) tvec3< T, P > const & y 
-
- -

Returns x raised to the power of 4.

-

From GLM_GTX_optimum_pow extension.

- -
-
- -
-
- - - - - + +
bool glm::gtx::powOfTwo (int num) )
-

Checks if the parameter is a power of 2 number.

-

From GLM_GTX_optimum_pow extension.

- -
-
- -
-
- - - - - - - - -
detail::tvec2<bool, P> glm::gtx::powOfTwo (detail::tvec2< int, P > const & x)
-
- -

Checks to determine if the parameter component are power of 2 numbers.

-

From GLM_GTX_optimum_pow extension.

- -
-
- -
-
- - - - - - - - -
detail::tvec3<bool, P> glm::gtx::powOfTwo (detail::tvec3< int, P > const & x)
-
- -

Checks to determine if the parameter component are power of 2 numbers.

-

From GLM_GTX_optimum_pow extension.

- -
-
- -
-
- - - - - - - - -
detail::tvec4<bool, P> glm::gtx::powOfTwo (detail::tvec4< int, P > const & x)
-
- -

Checks to determine if the parameter component are power of 2 numbers.

-

From GLM_GTX_optimum_pow extension.

+

Orthonormalizes x according y.

+
See also
GLM_GTX_orthonormalize
@@ -210,7 +109,7 @@ Functions diff --git a/doc/api/a00218.html b/doc/api/a00218.html index c453a1b4..22036c01 100644 --- a/doc/api/a00218.html +++ b/doc/api/a00218.html @@ -3,8 +3,8 @@ - -GLM: GLM_GTX_orthonormalize + +0.9.6: GLM_GTX_perpendicular @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -41,57 +39,35 @@
Functions
-
GLM_GTX_orthonormalize
+
GLM_GTX_perpendicular
GTX Extensions (Experimental)
- - - - - - + + +

Functions

template<typename T , precision P>
detail::tmat3x3< T, P > orthonormalize (const detail::tmat3x3< T, P > &m)
 
template<typename T , precision P>
detail::tvec3< T, P > orthonormalize (const detail::tvec3< T, P > &x, const detail::tvec3< T, P > &y)
 
template<typename vecType >
GLM_FUNC_DECL vecType perp (vecType const &x, vecType const &Normal)
 

Detailed Description

-

Orthonormalize matrices.

-

<glm/gtx/orthonormalize.hpp> need to be included to use these functionalities.

+

Perpendicular of a vector from other one.

+

<glm/gtx/perpendicular.hpp> need to be included to use these functionalities.

Function Documentation

- +
- + - - - - -
detail::tmat3x3<T, P> glm::orthonormalize GLM_FUNC_DECL vecType glm::perp (const detail::tmat3x3< T, P > & m)
-
- -

Returns the orthonormalized matrix of m.

-

From GLM_GTX_orthonormalize extension.

- -
-
- -
-
- - - - - + - - + + @@ -101,8 +77,8 @@ Functions
detail::tvec3<T, P> glm::orthonormalize (const detail::tvec3< T, P > & vecType const &  x,
const detail::tvec3< T, P > & y vecType const & Normal 
-

Orthonormalizes x according y.

-

From GLM_GTX_orthonormalize extension.

+

Projects x a perpendicular axis of Normal.

+

From GLM_GTX_perpendicular extension.

@@ -111,7 +87,7 @@ Functions diff --git a/doc/api/a00219.html b/doc/api/a00219.html index 36a374fd..da0ae210 100644 --- a/doc/api/a00219.html +++ b/doc/api/a00219.html @@ -3,8 +3,8 @@ - -GLM: GLM_GTX_perpendicular + +0.9.6: GLM_GTX_polar_coordinates @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -41,46 +39,58 @@
Functions
-
GLM_GTX_perpendicular
+
GLM_GTX_polar_coordinates
GTX Extensions (Experimental)
- - - + + + + + +

Functions

template<typename vecType >
vecType perp (vecType const &x, vecType const &Normal)
 
template<typename T , precision P>
GLM_FUNC_DECL tvec3< T, P > euclidean (tvec2< T, P > const &polar)
 
template<typename T , precision P>
GLM_FUNC_DECL tvec3< T, P > polar (tvec3< T, P > const &euclidean)
 

Detailed Description

-

Perpendicular of a vector from other one.

-

<glm/gtx/perpendicular.hpp> need to be included to use these functionalities.

+

Conversion from Euclidean space to polar space and revert.

+

<glm/gtx/polar_coordinates.hpp> need to be included to use these functionalities.

Function Documentation

- +
- + - - - - - + + - - - - - - -
vecType glm::perp GLM_FUNC_DECL tvec3<T, P> glm::euclidean (vecType const & x,
tvec2< T, P > const & polar) vecType const & Normal 
)
-

Projects x a perpendicular axis of Normal.

-

From GLM_GTX_perpendicular extension.

+

Convert Polar to Euclidean coordinates.

+
See also
GLM_GTX_polar_coordinates
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL tvec3<T, P> glm::polar (tvec3< T, P > const & euclidean)
+
+ +

Convert Euclidean to Polar coordinates, x is the xz distance, y, the latitude and z the longitude.

+
See also
GLM_GTX_polar_coordinates
@@ -89,7 +99,7 @@ Functions diff --git a/doc/api/a00220.html b/doc/api/a00220.html index 7291c0e8..274e3004 100644 --- a/doc/api/a00220.html +++ b/doc/api/a00220.html @@ -3,8 +3,8 @@ - -GLM: GLM_GTX_polar_coordinates + +0.9.6: GLM_GTX_projection @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -41,58 +39,46 @@
Functions
-
GLM_GTX_polar_coordinates
+
GLM_GTX_projection
GTX Extensions (Experimental)
- - - - - - + + +

Functions

template<typename T , precision P>
detail::tvec3< T, P > euclidean (detail::tvec2< T, P > const &polar)
 
template<typename T , precision P>
detail::tvec3< T, P > polar (detail::tvec3< T, P > const &euclidean)
 
template<typename vecType >
GLM_FUNC_DECL vecType proj (vecType const &x, vecType const &Normal)
 

Detailed Description

-

Conversion from Euclidean space to polar space and revert.

-

<glm/gtx/polar_coordinates.hpp> need to be included to use these functionalities.

+

Projection of a vector to other one.

+

<glm/gtx/projection.hpp> need to be included to use these functionalities.

Function Documentation

- +
- + - - - + + -
detail::tvec3<T, P> glm::euclidean GLM_FUNC_DECL vecType glm::proj (detail::tvec2< T, P > const & polar)vecType const & x,
-
- -

Convert Polar to Euclidean coordinates.

-
See Also
GLM_GTX_polar_coordinates
- -
-
- -
-
- - - - - + + + + + + + +
detail::tvec3<T, P> glm::polar (detail::tvec3< T, P > const & euclidean) vecType const & Normal 
)
-

Convert Euclidean to Polar coordinates, x is the xz distance, y, the latitude and z the longitude.

-
See Also
GLM_GTX_polar_coordinates
+

Projects x on Normal.

+
See also
GLM_GTX_projection
@@ -101,7 +87,7 @@ Functions diff --git a/doc/api/a00221.html b/doc/api/a00221.html index fd245d49..b946bb4e 100644 --- a/doc/api/a00221.html +++ b/doc/api/a00221.html @@ -3,8 +3,8 @@ - -GLM: GLM_GTX_projection + +0.9.6: GLM_GTX_quaternion @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -41,35 +39,86 @@
Functions
-
GLM_GTX_projection
+
GLM_GTX_quaternion
GTX Extensions (Experimental)
- - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Functions

template<typename vecType >
vecType proj (vecType const &x, vecType const &Normal)
 
template<typename T , precision P>
GLM_FUNC_DECL tvec3< T, P > cross (tquat< T, P > const &q, tvec3< T, P > const &v)
 
template<typename T , precision P>
GLM_FUNC_DECL tvec3< T, P > cross (tvec3< T, P > const &v, tquat< T, P > const &q)
 
template<typename T , precision P>
GLM_FUNC_DECL tquat< T, P > exp (tquat< T, P > const &q)
 
template<typename T , precision P>
GLM_FUNC_DECL T extractRealComponent (tquat< T, P > const &q)
 
template<typename T , precision P>
GLM_FUNC_DECL tquat< T, P > fastMix (tquat< T, P > const &x, tquat< T, P > const &y, T const &a)
 
template<typename T , precision P>
GLM_FUNC_DECL tquat< T, P > intermediate (tquat< T, P > const &prev, tquat< T, P > const &curr, tquat< T, P > const &next)
 
template<typename T , precision P>
GLM_FUNC_DECL T length2 (tquat< T, P > const &q)
 
template<typename T , precision P>
GLM_FUNC_DECL tquat< T, P > log (tquat< T, P > const &q)
 
template<typename T , precision P>
GLM_FUNC_DECL tquat< T, P > pow (tquat< T, P > const &x, T const &y)
 
template<typename T , precision P>
GLM_FUNC_DECL tvec3< T, P > rotate (tquat< T, P > const &q, tvec3< T, P > const &v)
 
template<typename T , precision P>
GLM_FUNC_DECL tvec4< T, P > rotate (tquat< T, P > const &q, tvec4< T, P > const &v)
 
template<typename T , precision P>
GLM_FUNC_DECL tquat< T, P > rotation (tvec3< T, P > const &orig, tvec3< T, P > const &dest)
 
template<typename T , precision P>
GLM_FUNC_DECL tquat< T, P > shortMix (tquat< T, P > const &x, tquat< T, P > const &y, T const &a)
 
template<typename T , precision P>
GLM_FUNC_DECL tquat< T, P > squad (tquat< T, P > const &q1, tquat< T, P > const &q2, tquat< T, P > const &s1, tquat< T, P > const &s2, T const &h)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat3x3< T, P > toMat3 (tquat< T, P > const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat4x4< T, P > toMat4 (tquat< T, P > const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL tquat< T, P > toQuat (tmat3x3< T, P > const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL tquat< T, P > toQuat (tmat4x4< T, P > const &x)
 

Detailed Description

-

Projection of a vector to other one.

-

<glm/gtx/projection.hpp> need to be included to use these functionalities.

+

Extented quaternion types and functions.

+

<glm/gtx/quaternion.hpp> need to be included to use these functionalities.

Function Documentation

- +
- + - - + + - - + + @@ -79,8 +128,477 @@ Functions
vecType glm::proj GLM_FUNC_DECL tvec3<T, P> glm::cross (vecType const & x, tquat< T, P > const & q,
vecType const & Normal tvec3< T, P > const & v 
-

Projects x on Normal.

-

From GLM_GTX_projection extension.

+

Compute a cross product between a quaternion and a vector.

+
See also
GLM_GTX_quaternion
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL tvec3<T, P> glm::cross (tvec3< T, P > const & v,
tquat< T, P > const & q 
)
+
+ +

Compute a cross product between a vector and a quaternion.

+
See also
GLM_GTX_quaternion
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL tquat<T, P> glm::exp (tquat< T, P > const & q)
+
+ +

Returns a exp of a quaternion.

+
See also
GLM_GTX_quaternion
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL T glm::extractRealComponent (tquat< T, P > const & q)
+
+ +

Extract the real component of a quaternion.

+
See also
GLM_GTX_quaternion
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL tquat<T, P> glm::fastMix (tquat< T, P > const & x,
tquat< T, P > const & y,
T const & a 
)
+
+ +

Quaternion normalized linear interpolation.

+
See also
GLM_GTX_quaternion
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL tquat<T, P> glm::intermediate (tquat< T, P > const & prev,
tquat< T, P > const & curr,
tquat< T, P > const & next 
)
+
+ +

Returns an intermediate control point for squad interpolation.

+
See also
GLM_GTX_quaternion
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL T glm::length2 (tquat< T, P > const & q)
+
+ +

Returns the squared length of x.

+
See also
GLM_GTX_quaternion
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL tquat<T, P> glm::log (tquat< T, P > const & q)
+
+ +

Returns a log of a quaternion.

+
See also
GLM_GTX_quaternion
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL tquat<T, P> glm::pow (tquat< T, P > const & x,
T const & y 
)
+
+ +

Returns x raised to the y power.

+
See also
GLM_GTX_quaternion
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL tvec3<T, P> glm::rotate (tquat< T, P > const & q,
tvec3< T, P > const & v 
)
+
+ +

Returns quarternion square root.

+
See also
GLM_GTX_quaternion Rotates a 3 components vector by a quaternion.
+
+GLM_GTX_quaternion
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL tvec4<T, P> glm::rotate (tquat< T, P > const & q,
tvec4< T, P > const & v 
)
+
+ +

Rotates a 4 components vector by a quaternion.

+
See also
GLM_GTX_quaternion
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL tquat<T, P> glm::rotation (tvec3< T, P > const & orig,
tvec3< T, P > const & dest 
)
+
+ +

Compute the rotation between two vectors.

+

param orig vector, needs to be normalized param dest vector, needs to be normalized

+
See also
GLM_GTX_quaternion
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL tquat<T, P> glm::shortMix (tquat< T, P > const & x,
tquat< T, P > const & y,
T const & a 
)
+
+ +

Quaternion interpolation using the rotation short path.

+
See also
GLM_GTX_quaternion
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL tquat<T, P> glm::squad (tquat< T, P > const & q1,
tquat< T, P > const & q2,
tquat< T, P > const & s1,
tquat< T, P > const & s2,
T const & h 
)
+
+ +

Compute a point on a path according squad equation.

+

q1 and q2 are control points; s1 and s2 are intermediate control points.

+
See also
GLM_GTX_quaternion
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL tmat3x3<T, P> glm::toMat3 (tquat< T, P > const & x)
+
+ +

Converts a quaternion to a 3 * 3 matrix.

+
See also
GLM_GTX_quaternion
+ +

Definition at line 153 of file gtx/quaternion.hpp.

+ +

References glm::mat3_cast().

+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL tmat4x4<T, P> glm::toMat4 (tquat< T, P > const & x)
+
+ +

Converts a quaternion to a 4 * 4 matrix.

+
See also
GLM_GTX_quaternion
+ +

Definition at line 160 of file gtx/quaternion.hpp.

+ +

References glm::mat4_cast().

+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL tquat<T, P> glm::toQuat (tmat3x3< T, P > const & x)
+
+ +

Converts a 3 * 3 matrix to a quaternion.

+
See also
GLM_GTX_quaternion
+ +

Definition at line 167 of file gtx/quaternion.hpp.

+ +

References glm::quat_cast().

+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL tquat<T, P> glm::toQuat (tmat4x4< T, P > const & x)
+
+ +

Converts a 4 * 4 matrix to a quaternion.

+
See also
GLM_GTX_quaternion
+ +

Definition at line 174 of file gtx/quaternion.hpp.

+ +

References glm::quat_cast().

@@ -89,7 +607,7 @@ Functions diff --git a/doc/api/a00222.html b/doc/api/a00222.html index 22f552ed..4bcbe9de 100644 --- a/doc/api/a00222.html +++ b/doc/api/a00222.html @@ -3,8 +3,8 @@ - -GLM: GLM_GTX_quaternion + +0.9.6: GLM_GTX_range @@ -16,9 +16,9 @@ + @@ -26,590 +26,30 @@
-
GLM -  0.9.5 +
0.9.6
- +
-
-Functions
-
+
GLM_GTX_range
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename T , precision P>
detail::tvec3< T, P > cross (detail::tquat< T, P > const &q, detail::tvec3< T, P > const &v)
 
template<typename T , precision P>
detail::tvec3< T, P > cross (detail::tvec3< T, P > const &v, detail::tquat< T, P > const &q)
 
template<typename T , precision P>
detail::tquat< T, P > exp (detail::tquat< T, P > const &q)
 
template<typename T , precision P>
extractRealComponent (detail::tquat< T, P > const &q)
 
template<typename T , precision P>
detail::tquat< T, P > fastMix (detail::tquat< T, P > const &x, detail::tquat< T, P > const &y, T const &a)
 
template<typename T , precision P>
detail::tquat< T, P > intermediate (detail::tquat< T, P > const &prev, detail::tquat< T, P > const &curr, detail::tquat< T, P > const &next)
 
template<typename T , precision P>
length2 (detail::tquat< T, P > const &q)
 
template<typename T , precision P>
detail::tquat< T, P > log (detail::tquat< T, P > const &q)
 
template<typename T , precision P>
detail::tquat< T, P > pow (detail::tquat< T, P > const &x, T const &y)
 
template<typename T , precision P>
detail::tvec3< T, P > rotate (detail::tquat< T, P > const &q, detail::tvec3< T, P > const &v)
 
template<typename T , precision P>
detail::tvec4< T, P > rotate (detail::tquat< T, P > const &q, detail::tvec4< T, P > const &v)
 
template<typename T , precision P>
detail::tquat< T, P > rotation (detail::tvec3< T, P > const &orig, detail::tvec3< T, P > const &dest)
 
template<typename T , precision P>
detail::tquat< T, P > shortMix (detail::tquat< T, P > const &x, detail::tquat< T, P > const &y, T const &a)
 
template<typename T , precision P>
detail::tquat< T, P > squad (detail::tquat< T, P > const &q1, detail::tquat< T, P > const &q2, detail::tquat< T, P > const &s1, detail::tquat< T, P > const &s2, T const &h)
 
template<typename T , precision P>
detail::tmat3x3< T, P > toMat3 (detail::tquat< T, P > const &x)
 
template<typename T , precision P>
detail::tmat4x4< T, P > toMat4 (detail::tquat< T, P > const &x)
 
template<typename T , precision P>
detail::tquat< T, P > toQuat (detail::tmat3x3< T, P > const &x)
 
template<typename T , precision P>
detail::tquat< T, P > toQuat (detail::tmat4x4< T, P > const &x)
 

Detailed Description

-

Extented quaternion types and functions.

-

<glm/gtx/quaternion.hpp> need to be included to use these functionalities.

-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - -
detail::tvec3<T, P> glm::cross (detail::tquat< T, P > const & q,
detail::tvec3< T, P > const & v 
)
-
- -

Compute a cross product between a quaternion and a vector.

-
See Also
GLM_GTX_quaternion
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
detail::tvec3<T, P> glm::cross (detail::tvec3< T, P > const & v,
detail::tquat< T, P > const & q 
)
-
- -

Compute a cross product between a vector and a quaternion.

-
See Also
GLM_GTX_quaternion
- -
-
- -
-
- - - - - - - - -
detail::tquat<T, P> glm::exp (detail::tquat< T, P > const & q)
-
- -

Returns a exp of a quaternion.

-
See Also
GLM_GTX_quaternion
- -
-
- -
-
- - - - - - - - -
T glm::extractRealComponent (detail::tquat< T, P > const & q)
-
- -

Extract the real component of a quaternion.

-
See Also
GLM_GTX_quaternion
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
detail::tquat<T, P> glm::fastMix (detail::tquat< T, P > const & x,
detail::tquat< T, P > const & y,
T const & a 
)
-
- -

Quaternion normalized linear interpolation.

-
See Also
GLM_GTX_quaternion
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
detail::tquat<T, P> glm::intermediate (detail::tquat< T, P > const & prev,
detail::tquat< T, P > const & curr,
detail::tquat< T, P > const & next 
)
-
- -

Returns an intermediate control point for squad interpolation.

-
See Also
GLM_GTX_quaternion
- -
-
- -
-
- - - - - - - - -
T glm::length2 (detail::tquat< T, P > const & q)
-
- -

Returns the squared length of x.

-
See Also
GLM_GTX_quaternion
- -
-
- -
-
- - - - - - - - -
detail::tquat<T, P> glm::log (detail::tquat< T, P > const & q)
-
- -

Returns a log of a quaternion.

-
See Also
GLM_GTX_quaternion
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
detail::tquat<T, P> glm::pow (detail::tquat< T, P > const & x,
T const & y 
)
-
- -

Returns x raised to the y power.

-
See Also
GLM_GTX_quaternion
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
detail::tvec3<T, P> glm::rotate (detail::tquat< T, P > const & q,
detail::tvec3< T, P > const & v 
)
-
- -

Returns quarternion square root.

-
See Also
GLM_GTX_quaternion Rotates a 3 components vector by a quaternion.
-
-GLM_GTX_quaternion
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
detail::tvec4<T, P> glm::rotate (detail::tquat< T, P > const & q,
detail::tvec4< T, P > const & v 
)
-
- -

Rotates a 4 components vector by a quaternion.

-
See Also
GLM_GTX_quaternion
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
detail::tquat<T, P> glm::rotation (detail::tvec3< T, P > const & orig,
detail::tvec3< T, P > const & dest 
)
-
- -

Compute the rotation between two vectors.

-

param orig vector, needs to be normalized param dest vector, needs to be normalized

-
See Also
GLM_GTX_quaternion
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
detail::tquat<T, P> glm::shortMix (detail::tquat< T, P > const & x,
detail::tquat< T, P > const & y,
T const & a 
)
-
- -

Quaternion interpolation using the rotation short path.

-
See Also
GLM_GTX_quaternion
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
detail::tquat<T, P> glm::squad (detail::tquat< T, P > const & q1,
detail::tquat< T, P > const & q2,
detail::tquat< T, P > const & s1,
detail::tquat< T, P > const & s2,
T const & h 
)
-
- -

Compute a point on a path according squad equation.

-

q1 and q2 are control points; s1 and s2 are intermediate control points.

-
See Also
GLM_GTX_quaternion
- -
-
- -
-
- - - - - - - - -
detail::tmat3x3<T, P> glm::toMat3 (detail::tquat< T, P > const & x)
-
- -

Converts a quaternion to a 3 * 3 matrix.

-
See Also
GLM_GTX_quaternion
- -

Definition at line 150 of file gtx/quaternion.hpp.

- -

References glm::mat3_cast().

- -
-
- -
-
- - - - - - - - -
detail::tmat4x4<T, P> glm::toMat4 (detail::tquat< T, P > const & x)
-
- -

Converts a quaternion to a 4 * 4 matrix.

-
See Also
GLM_GTX_quaternion
- -

Definition at line 157 of file gtx/quaternion.hpp.

- -

References glm::mat4_cast().

- -
-
- -
-
- - - - - - - - -
detail::tquat<T, P> glm::toQuat (detail::tmat3x3< T, P > const & x)
-
- -

Converts a 3 * 3 matrix to a quaternion.

-
See Also
GLM_GTX_quaternion
- -

Definition at line 164 of file gtx/quaternion.hpp.

- -

References glm::quat_cast().

- -
-
- -
-
- - - - - - - - -
detail::tquat<T, P> glm::toQuat (detail::tmat4x4< T, P > const & x)
-
- -

Converts a 4 * 4 matrix to a quaternion.

-
See Also
GLM_GTX_quaternion
- -

Definition at line 171 of file gtx/quaternion.hpp.

- -

References glm::quat_cast().

- -
-
+

Defines begin and end for vectors and matrices.

+

Useful for range-based for loop. The range is defined over the elements, not over columns or rows (e.g. mat4 has 16 elements).

+

<glm/gtx/range.hpp> need to be included to use these functionalities.

diff --git a/doc/api/a00223.html b/doc/api/a00223.html index 95a19871..02fb17f6 100644 --- a/doc/api/a00223.html +++ b/doc/api/a00223.html @@ -3,8 +3,8 @@ - -GLM: GLM_GTX_raw_data + +0.9.6: GLM_GTX_raw_data @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -41,7 +39,7 @@
Typedefs
-
GLM_GTX_raw_data
+
GLM_GTX_raw_data
GTX Extensions (Experimental)
@@ -58,7 +56,7 @@ Typedefs

Detailed Description

Projection of a vector to other one.

-

<glm/gtx/raw_data.hpp> need to be included to use these functionalities.

+

<glm/gtx/raw_data.hpp> need to be included to use these functionalities.

Typedef Documentation

@@ -73,7 +71,7 @@ Typedefs

Type for byte numbers.

From GLM_GTX_raw_data extension.

-

Definition at line 55 of file raw_data.hpp.

+

Definition at line 59 of file raw_data.hpp.

@@ -90,7 +88,7 @@ Typedefs

Type for dword numbers.

From GLM_GTX_raw_data extension.

-

Definition at line 63 of file raw_data.hpp.

+

Definition at line 67 of file raw_data.hpp.

@@ -107,7 +105,7 @@ Typedefs

Type for qword numbers.

From GLM_GTX_raw_data extension.

-

Definition at line 67 of file raw_data.hpp.

+

Definition at line 71 of file raw_data.hpp.

@@ -124,7 +122,7 @@ Typedefs

Type for word numbers.

From GLM_GTX_raw_data extension.

-

Definition at line 59 of file raw_data.hpp.

+

Definition at line 63 of file raw_data.hpp.

@@ -133,7 +131,7 @@ Typedefs diff --git a/doc/api/a00224.html b/doc/api/a00224.html index 318ec0f9..f5bc9a1a 100644 --- a/doc/api/a00224.html +++ b/doc/api/a00224.html @@ -3,8 +3,8 @@ - -GLM: GLM_GTX_rotate_normalized_axis + +0.9.6: GLM_GTX_rotate_normalized_axis @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -41,31 +39,31 @@
Functions
-
GLM_GTX_rotate_normalized_axis
+
GLM_GTX_rotate_normalized_axis
GTX Extensions (Experimental)
- - - - - - + + + + + +

Functions

template<typename T , precision P>
detail::tmat4x4< T, P > rotateNormalizedAxis (detail::tmat4x4< T, P > const &m, T const &angle, detail::tvec3< T, P > const &axis)
 
template<typename T , precision P>
detail::tquat< T, P > rotateNormalizedAxis (detail::tquat< T, P > const &q, T const &angle, detail::tvec3< T, P > const &axis)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat4x4< T, P > rotateNormalizedAxis (tmat4x4< T, P > const &m, T const &angle, tvec3< T, P > const &axis)
 
template<typename T , precision P>
GLM_FUNC_DECL tquat< T, P > rotateNormalizedAxis (tquat< T, P > const &q, T const &angle, tvec3< T, P > const &axis)
 

Detailed Description

Quaternions and matrices rotations around normalized axis.

-

<glm/gtx/rotate_normalized_axis.hpp> need to be included to use these functionalities.

+

<glm/gtx/rotate_normalized_axis.hpp> need to be included to use these functionalities.

Function Documentation

- +
- + - + @@ -77,7 +75,7 @@ Functions - + @@ -103,24 +101,24 @@ Functions
detail::tmat4x4<T, P> glm::rotateNormalizedAxis GLM_FUNC_DECL tmat4x4<T, P> glm::rotateNormalizedAxis (detail::tmat4x4< T, P > const & tmat4x4< T, P > const &  m,
detail::tvec3< T, P > const & tvec3< T, P > const &  axis 
-
See Also
GLM_GTX_rotate_normalized_axis
+
See also
GLM_GTX_rotate_normalized_axis
- rotate(T angle, T x, T y, T z)
-- rotate(detail::tmat4x4<T, P> const & m, T angle, T x, T y, T z)
+- rotate(tmat4x4<T, P> const & m, T angle, T x, T y, T z)
-- rotate(T angle, detail::tvec3<T, P> const & v)
+- rotate(T angle, tvec3<T, P> const & v)
- +
- + - + @@ -132,7 +130,7 @@ Functions - + @@ -152,7 +150,7 @@ Functions
detail::tquat<T, P> glm::rotateNormalizedAxis GLM_FUNC_DECL tquat<T, P> glm::rotateNormalizedAxis (detail::tquat< T, P > const & tquat< T, P > const &  q,
detail::tvec3< T, P > const & tvec3< T, P > const &  axis 
-
See Also
GLM_GTX_rotate_normalized_axis
+
See also
GLM_GTX_rotate_normalized_axis
@@ -161,7 +159,7 @@ Functions diff --git a/doc/api/a00225.html b/doc/api/a00225.html index 23df10a8..818c4334 100644 --- a/doc/api/a00225.html +++ b/doc/api/a00225.html @@ -3,8 +3,8 @@ - -GLM: GLM_GTX_rotate_vector + +0.9.6: GLM_GTX_rotate_vector @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -41,61 +39,64 @@
Functions
-
GLM_GTX_rotate_vector
+
GLM_GTX_rotate_vector
GTX Extensions (Experimental)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Functions

template<typename T , precision P>
detail::tmat4x4< T, P > orientation (detail::tvec3< T, P > const &Normal, detail::tvec3< T, P > const &Up)
 
template<typename T , precision P>
detail::tvec2< T, P > rotate (detail::tvec2< T, P > const &v, T const &angle)
 
template<typename T , precision P>
detail::tvec3< T, P > rotate (detail::tvec3< T, P > const &v, T const &angle, detail::tvec3< T, P > const &normal)
 
template<typename T , precision P>
detail::tvec4< T, P > rotate (detail::tvec4< T, P > const &v, T const &angle, detail::tvec3< T, P > const &normal)
 
template<typename T , precision P>
detail::tvec3< T, P > rotateX (detail::tvec3< T, P > const &v, T const &angle)
 
template<typename T , precision P>
detail::tvec4< T, P > rotateX (detail::tvec4< T, P > const &v, T const &angle)
 
template<typename T , precision P>
detail::tvec3< T, P > rotateY (detail::tvec3< T, P > const &v, T const &angle)
 
template<typename T , precision P>
detail::tvec4< T, P > rotateY (detail::tvec4< T, P > const &v, T const &angle)
 
template<typename T , precision P>
detail::tvec3< T, P > rotateZ (detail::tvec3< T, P > const &v, T const &angle)
 
template<typename T , precision P>
detail::tvec4< T, P > rotateZ (detail::tvec4< T, P > const &v, T const &angle)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat4x4< T, P > orientation (tvec3< T, P > const &Normal, tvec3< T, P > const &Up)
 
template<typename T , precision P>
GLM_FUNC_DECL tvec2< T, P > rotate (tvec2< T, P > const &v, T const &angle)
 
template<typename T , precision P>
GLM_FUNC_DECL tvec3< T, P > rotate (tvec3< T, P > const &v, T const &angle, tvec3< T, P > const &normal)
 
template<typename T , precision P>
GLM_FUNC_DECL tvec4< T, P > rotate (tvec4< T, P > const &v, T const &angle, tvec3< T, P > const &normal)
 
template<typename T , precision P>
GLM_FUNC_DECL tvec3< T, P > rotateX (tvec3< T, P > const &v, T const &angle)
 
template<typename T , precision P>
GLM_FUNC_DECL tvec4< T, P > rotateX (tvec4< T, P > const &v, T const &angle)
 
template<typename T , precision P>
GLM_FUNC_DECL tvec3< T, P > rotateY (tvec3< T, P > const &v, T const &angle)
 
template<typename T , precision P>
GLM_FUNC_DECL tvec4< T, P > rotateY (tvec4< T, P > const &v, T const &angle)
 
template<typename T , precision P>
GLM_FUNC_DECL tvec3< T, P > rotateZ (tvec3< T, P > const &v, T const &angle)
 
template<typename T , precision P>
GLM_FUNC_DECL tvec4< T, P > rotateZ (tvec4< T, P > const &v, T const &angle)
 
template<typename T , precision P>
GLM_FUNC_DECL tvec3< T, P > slerp (tvec3< T, P > const &x, tvec3< T, P > const &y, T const &a)
 

Detailed Description

Function to directly rotate a vector.

-

<glm/gtx/rotate_vector.hpp> need to be included to use these functionalities.

+

<glm/gtx/rotate_vector.hpp> need to be included to use these functionalities.

Function Documentation

- +
- + - + - + @@ -111,14 +112,14 @@ Functions - +
detail::tmat4x4<T, P> glm::orientation GLM_FUNC_DECL tmat4x4<T, P> glm::orientation (detail::tvec3< T, P > const & tvec3< T, P > const &  Normal,
detail::tvec3< T, P > const & tvec3< T, P > const &  Up 
- + - + @@ -140,14 +141,14 @@ Functions - +
detail::tvec2<T, P> glm::rotate GLM_FUNC_DECL tvec2<T, P> glm::rotate (detail::tvec2< T, P > const & tvec2< T, P > const &  v,
- + - + @@ -159,7 +160,7 @@ Functions - + @@ -175,14 +176,14 @@ Functions - +
detail::tvec3<T, P> glm::rotate GLM_FUNC_DECL tvec3<T, P> glm::rotate (detail::tvec3< T, P > const & tvec3< T, P > const &  v,
detail::tvec3< T, P > const & tvec3< T, P > const &  normal 
- + - + @@ -194,7 +195,7 @@ Functions - + @@ -210,14 +211,14 @@ Functions - +
detail::tvec4<T, P> glm::rotate GLM_FUNC_DECL tvec4<T, P> glm::rotate (detail::tvec4< T, P > const & tvec4< T, P > const &  v,
detail::tvec3< T, P > const & tvec3< T, P > const &  normal 
- + - + @@ -239,14 +240,14 @@ Functions - +
detail::tvec3<T, P> glm::rotateX GLM_FUNC_DECL tvec3<T, P> glm::rotateX (detail::tvec3< T, P > const & tvec3< T, P > const &  v,
- + - + @@ -268,14 +269,14 @@ Functions - +
detail::tvec4<T, P> glm::rotateX GLM_FUNC_DECL tvec4<T, P> glm::rotateX (detail::tvec4< T, P > const & tvec4< T, P > const &  v,
- + - + @@ -297,14 +298,14 @@ Functions - +
detail::tvec3<T, P> glm::rotateY GLM_FUNC_DECL tvec3<T, P> glm::rotateY (detail::tvec3< T, P > const & tvec3< T, P > const &  v,
- + - + @@ -326,14 +327,14 @@ Functions - +
detail::tvec4<T, P> glm::rotateY GLM_FUNC_DECL tvec4<T, P> glm::rotateY (detail::tvec4< T, P > const & tvec4< T, P > const &  v,
- + - + @@ -355,14 +356,14 @@ Functions - +
detail::tvec3<T, P> glm::rotateZ GLM_FUNC_DECL tvec3<T, P> glm::rotateZ (detail::tvec3< T, P > const & tvec3< T, P > const &  v,
- + - + @@ -382,6 +383,49 @@ Functions

Rotate a four dimensional vector around the X axis.

From GLM_GTX_rotate_vector extension.

+ + + +
+
+
detail::tvec4<T, P> glm::rotateZ GLM_FUNC_DECL tvec4<T, P> glm::rotateZ (detail::tvec4< T, P > const & tvec4< T, P > const &  v,
+ + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL tvec3<T, P> glm::slerp (tvec3< T, P > const & x,
tvec3< T, P > const & y,
T const & a 
)
+
+ +

Returns Spherical interpolation between two vectors.

+
Parameters
+ + + + +
xA first vector
yA second vector
aInterpolation factor. The interpolation is defined beyond the range [0, 1].
+
+
+
See also
GLM_GTX_rotate_vector
+
@@ -389,7 +433,7 @@ Functions diff --git a/doc/api/a00226.html b/doc/api/a00226.html index e1bd2e7f..4bc5fc5b 100644 --- a/doc/api/a00226.html +++ b/doc/api/a00226.html @@ -3,8 +3,8 @@ - -GLM: GLM_GTX_simd_mat4 + +0.9.6: GLM_GTX_scalar_relational @@ -16,9 +16,9 @@ + @@ -26,30 +26,28 @@
-
GLM -  0.9.5 +
0.9.6
- +
-
+
GLM_GTX_scalar_relational
-

SIMD implementation of mat4 type.

-

<glm/gtx/simd_mat4.hpp> need to be included to use these functionalities.

+

Extend a position from a source to a position at a defined length.

+

<glm/gtx/scalar_relational.hpp> need to be included to use these functionalities.

diff --git a/doc/api/a00227.html b/doc/api/a00227.html index 0d361d90..47a6f191 100644 --- a/doc/api/a00227.html +++ b/doc/api/a00227.html @@ -3,8 +3,8 @@ - -GLM: GLM_GTX_simd_quat + +0.9.6: GLM_GTX_simd_mat4 @@ -16,9 +16,9 @@ + @@ -26,32 +26,28 @@
-
GLM -  0.9.5 +
0.9.6
- +
-
+
GLM_GTX_simd_mat4
-

SIMD implementation of quat type.

-

SIMD implementation of vec4 type.

-

<glm/gtx/simd_quat.hpp> need to be included to use these functionalities.

-

<glm/gtx/simd_vec4.hpp> need to be included to use these functionalities.

+

SIMD implementation of mat4 type.

+

<glm/gtx/simd_mat4.hpp> need to be included to use these functionalities.

diff --git a/doc/api/a00228.html b/doc/api/a00228.html index bea683bb..88873944 100644 --- a/doc/api/a00228.html +++ b/doc/api/a00228.html @@ -3,8 +3,8 @@ - -GLM: GLM_GTX_spline + +0.9.6: GLM_GTX_simd_quat @@ -16,9 +16,9 @@ + @@ -26,188 +26,28 @@
-
GLM -  0.9.5 +
0.9.6
- +
-
-Functions
-
+
GLM_GTX_simd_quat
- - - - - - - - - - - -

-Functions

template<typename genType >
GLM_FUNC_DECL genType catmullRom (genType const &v1, genType const &v2, genType const &v3, genType const &v4, typename genType::value_type const &s)
 
template<typename genType >
GLM_FUNC_DECL genType cubic (genType const &v1, genType const &v2, genType const &v3, genType const &v4, typename genType::value_type const &s)
 
template<typename genType >
GLM_FUNC_DECL genType hermite (genType const &v1, genType const &t1, genType const &v2, genType const &t2, typename genType::value_type const &s)
 
-

Detailed Description

-

Spline functions.

-

<glm/gtx/spline.hpp> need to be included to use these functionalities.

-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL genType glm::catmullRom (genType const & v1,
genType const & v2,
genType const & v3,
genType const & v4,
typename genType::value_type const & s 
)
-
- -

Return a point from a catmull rom curve.

-
See Also
GLM_GTX_spline extension.
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL genType glm::cubic (genType const & v1,
genType const & v2,
genType const & v3,
genType const & v4,
typename genType::value_type const & s 
)
-
- -

Return a point from a cubic curve.

-
See Also
GLM_GTX_spline extension.
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL genType glm::hermite (genType const & v1,
genType const & t1,
genType const & v2,
genType const & t2,
typename genType::value_type const & s 
)
-
- -

Return a point from a hermite curve.

-
See Also
GLM_GTX_spline extension.
- -
-
+

SIMD implementation of quat type.

+

<glm/gtx/simd_quat.hpp> need to be included to use these functionalities.

diff --git a/doc/api/a00229.html b/doc/api/a00229.html index 4fddf018..02c512c0 100644 --- a/doc/api/a00229.html +++ b/doc/api/a00229.html @@ -3,8 +3,8 @@ - -GLM: GLM_GTX_std_based_type + +0.9.6: GLM_GTX_simd_vec4 @@ -16,9 +16,9 @@ + @@ -26,158 +26,28 @@
-
GLM -  0.9.5 +
0.9.6
- +
-
-Typedefs
-
GLM_GTX_std_based_type
+
GLM_GTX_simd_vec4
- - - - - - - - - - - - - - -

-Typedefs

typedef detail::tvec2
-< std::size_t, defaultp > 
size2
 
typedef detail::tvec2
-< std::size_t, defaultp > 
size2_t
 
typedef detail::tvec3
-< std::size_t, defaultp > 
size3
 
typedef detail::tvec3
-< std::size_t, defaultp > 
size3_t
 
typedef detail::tvec4
-< std::size_t, defaultp > 
size4
 
typedef detail::tvec4
-< std::size_t, defaultp > 
size4_t
 
-

Detailed Description

-

Adds vector types based on STL value types.

-

<glm/gtx/std_based_type.hpp> need to be included to use these functionalities.

-

Typedef Documentation

- -
-
- - - - -
typedef detail::tvec2<std::size_t, defaultp> size2
-
- -

Vector type based of two std::size_t components.

-
See Also
GLM_GTX_std_based_type
- -

Definition at line 56 of file std_based_type.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2<std::size_t, defaultp> size2_t
-
- -

Vector type based of two std::size_t components.

-
See Also
GLM_GTX_std_based_type
- -

Definition at line 68 of file std_based_type.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3<std::size_t, defaultp> size3
-
- -

Vector type based of three std::size_t components.

-
See Also
GLM_GTX_std_based_type
- -

Definition at line 60 of file std_based_type.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3<std::size_t, defaultp> size3_t
-
- -

Vector type based of three std::size_t components.

-
See Also
GLM_GTX_std_based_type
- -

Definition at line 72 of file std_based_type.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4<std::size_t, defaultp> size4
-
- -

Vector type based of four std::size_t components.

-
See Also
GLM_GTX_std_based_type
- -

Definition at line 64 of file std_based_type.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4<std::size_t, defaultp> size4_t
-
- -

Vector type based of four std::size_t components.

-
See Also
GLM_GTX_std_based_type
- -

Definition at line 76 of file std_based_type.hpp.

- -
-
+

SIMD implementation of vec4 type.

+

<glm/gtx/simd_vec4.hpp> need to be included to use these functionalities.

diff --git a/doc/api/a00230.html b/doc/api/a00230.html index cdf4838a..9f1f7fee 100644 --- a/doc/api/a00230.html +++ b/doc/api/a00230.html @@ -3,8 +3,8 @@ - -GLM: GLM_GTX_string_cast + +0.9.6: GLM_GTX_spline @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -41,36 +39,164 @@
Functions
-
GLM_GTX_string_cast
+
GLM_GTX_spline
GTX Extensions (Experimental)
- - - + + + + + + + + +

Functions

template<typename genType >
std::string to_string (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType catmullRom (genType const &v1, genType const &v2, genType const &v3, genType const &v4, typename genType::value_type const &s)
 
template<typename genType >
GLM_FUNC_DECL genType cubic (genType const &v1, genType const &v2, genType const &v3, genType const &v4, typename genType::value_type const &s)
 
template<typename genType >
GLM_FUNC_DECL genType hermite (genType const &v1, genType const &t1, genType const &v2, genType const &t2, typename genType::value_type const &s)
 

Detailed Description

-

Setup strings for GLM type values.

-

<glm/gtx/string_cast.hpp> need to be included to use these functionalities.

+

Spline functions.

+

<glm/gtx/spline.hpp> need to be included to use these functionalities.

Function Documentation

- +
- + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
std::string glm::to_string GLM_FUNC_DECL genType glm::catmullRom ( genType const & x)v1,
genType const & v2,
genType const & v3,
genType const & v4,
typename genType::value_type const & s 
)
-

Create a string from a GLM type value.

-
See Also
GLM_GTX_string_cast extension.
+

Return a point from a catmull rom curve.

+
See also
GLM_GTX_spline extension.
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL genType glm::cubic (genType const & v1,
genType const & v2,
genType const & v3,
genType const & v4,
typename genType::value_type const & s 
)
+
+ +

Return a point from a cubic curve.

+
See also
GLM_GTX_spline extension.
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL genType glm::hermite (genType const & v1,
genType const & t1,
genType const & v2,
genType const & t2,
typename genType::value_type const & s 
)
+
+ +

Return a point from a hermite curve.

+
See also
GLM_GTX_spline extension.
@@ -79,7 +205,7 @@ Functions diff --git a/doc/api/a00231.html b/doc/api/a00231.html index f365e5b9..e3033ec5 100644 --- a/doc/api/a00231.html +++ b/doc/api/a00231.html @@ -3,8 +3,8 @@ - -GLM: GLM_GTX_transform + +0.9.6: GLM_GTX_std_based_type @@ -16,9 +16,9 @@ + @@ -26,114 +26,187 @@
-
GLM -  0.9.5 +
0.9.6
- +
-Functions
+Typedefs
-
GLM_GTX_transform
+
GLM_GTX_std_based_type
GTX Extensions (Experimental)
- - - - - - - - - - + + + + + + + + + + + + + + + + +

-Functions

template<typename T , precision P>
detail::tmat4x4< T, P > rotate (T angle, detail::tvec3< T, P > const &v)
 
template<typename T , precision P>
detail::tmat4x4< T, P > scale (detail::tvec3< T, P > const &v)
 
template<typename T , precision P>
detail::tmat4x4< T, P > translate (detail::tvec3< T, P > const &v)
 

+Typedefs

typedef tvec1< std::size_t,
+defaultp > 
size1
 
typedef tvec1< std::size_t,
+defaultp > 
size1_t
 
typedef tvec2< std::size_t,
+defaultp > 
size2
 
typedef tvec2< std::size_t,
+defaultp > 
size2_t
 
typedef tvec3< std::size_t,
+defaultp > 
size3
 
typedef tvec3< std::size_t,
+defaultp > 
size3_t
 
typedef tvec4< std::size_t,
+defaultp > 
size4
 
typedef tvec4< std::size_t,
+defaultp > 
size4_t
 

Detailed Description

-

Add transformation matrices.

-

<glm/gtx/transform.hpp> need to be included to use these functionalities.

-

Function Documentation

- +

Adds vector types based on STL value types.

+

<glm/gtx/std_based_type.hpp> need to be included to use these functionalities.

+

Typedef Documentation

+
- - - - - - - - - - - - - - - +
detail::tmat4x4<T, P> glm::rotate (angle,
detail::tvec3< T, P > const & v 
)typedef tvec1<std::size_t, defaultp> size1
-

Builds a rotation 4 * 4 matrix created from an axis of 3 scalars and an angle expressed in degrees.

- +

Vector type based of one std::size_t component.

+
See also
GLM_GTX_std_based_type
+ +

Definition at line 59 of file std_based_type.hpp.

- +
- - - - - +
detail::tmat4x4<T, P> glm::scale (detail::tvec3< T, P > const & v)typedef tvec1<std::size_t, defaultp> size1_t
-

Transforms a matrix with a scale 4 * 4 matrix created from a vector of 3 components.

- +

Vector type based of one std::size_t component.

+
See also
GLM_GTX_std_based_type
+ +

Definition at line 75 of file std_based_type.hpp.

- +
- - - - - +
detail::tmat4x4<T, P> glm::translate (detail::tvec3< T, P > const & v)typedef tvec2<std::size_t, defaultp> size2
-

Transforms a matrix with a translation 4 * 4 matrix created from 3 scalars.

- +

Vector type based of two std::size_t components.

+
See also
GLM_GTX_std_based_type
+ +

Definition at line 63 of file std_based_type.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec2<std::size_t, defaultp> size2_t
+
+ +

Vector type based of two std::size_t components.

+
See also
GLM_GTX_std_based_type
+ +

Definition at line 79 of file std_based_type.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec3<std::size_t, defaultp> size3
+
+ +

Vector type based of three std::size_t components.

+
See also
GLM_GTX_std_based_type
+ +

Definition at line 67 of file std_based_type.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec3<std::size_t, defaultp> size3_t
+
+ +

Vector type based of three std::size_t components.

+
See also
GLM_GTX_std_based_type
+ +

Definition at line 83 of file std_based_type.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec4<std::size_t, defaultp> size4
+
+ +

Vector type based of four std::size_t components.

+
See also
GLM_GTX_std_based_type
+ +

Definition at line 71 of file std_based_type.hpp.

+ +
+
+ +
+
+ + + + +
typedef tvec4<std::size_t, defaultp> size4_t
+
+ +

Vector type based of four std::size_t components.

+
See also
GLM_GTX_std_based_type
+ +

Definition at line 87 of file std_based_type.hpp.

@@ -142,7 +215,7 @@ Functions diff --git a/doc/api/a00232.html b/doc/api/a00232.html index 41380249..e78a4e57 100644 --- a/doc/api/a00232.html +++ b/doc/api/a00232.html @@ -3,8 +3,8 @@ - -GLM: GLM_GTX_transform2 + +0.9.6: GLM_GTX_string_cast @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -41,325 +39,36 @@
Functions
-
GLM_GTX_transform2
+
GLM_GTX_string_cast
GTX Extensions (Experimental)
- - - - - - - - - - - - - - - - - - - - - - - - - - - + + +

Functions

template<typename T , precision P>
detail::tmat3x3< T, P > proj2D (const detail::tmat3x3< T, P > &m, const detail::tvec3< T, P > &normal)
 
template<typename T , precision P>
detail::tmat4x4< T, P > proj3D (const detail::tmat4x4< T, P > &m, const detail::tvec3< T, P > &normal)
 
template<typename valType , precision P>
detail::tmat4x4< valType, P > scaleBias (valType scale, valType bias)
 
template<typename valType , precision P>
detail::tmat4x4< valType, P > scaleBias (detail::tmat4x4< valType, P > const &m, valType scale, valType bias)
 
template<typename T , precision P>
detail::tmat3x3< T, P > shearX2D (detail::tmat3x3< T, P > const &m, T y)
 
template<typename T , precision P>
detail::tmat4x4< T, P > shearX3D (const detail::tmat4x4< T, P > &m, T y, T z)
 
template<typename T , precision P>
detail::tmat3x3< T, P > shearY2D (detail::tmat3x3< T, P > const &m, T x)
 
template<typename T , precision P>
detail::tmat4x4< T, P > shearY3D (const detail::tmat4x4< T, P > &m, T x, T z)
 
template<typename T , precision P>
detail::tmat4x4< T, P > shearZ3D (const detail::tmat4x4< T, P > &m, T x, T y)
 
template<template< typename, precision > class matType, typename T , precision P>
GLM_FUNC_DECL std::string to_string (matType< T, P > const &x)
 

Detailed Description

-

Add extra transformation matrices.

-

<glm/gtx/transform2.hpp> need to be included to use these functionalities.

+

Setup strings for GLM type values.

+

<glm/gtx/string_cast.hpp> need to be included to use these functionalities. This extension is not supported with CUDA

Function Documentation

- +
- + - - - - - + + - - - - - - -
detail::tmat3x3<T, P> glm::proj2D GLM_FUNC_DECL std::string glm::to_string (const detail::tmat3x3< T, P > & m,
matType< T, P > const & x) const detail::tvec3< T, P > & normal 
)
-

Build planar projection matrix along normal axis.

-

From GLM_GTX_transform2 extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
detail::tmat4x4<T, P> glm::proj3D (const detail::tmat4x4< T, P > & m,
const detail::tvec3< T, P > & normal 
)
-
- -

Build planar projection matrix along normal axis.

-

From GLM_GTX_transform2 extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
detail::tmat4x4<valType, P> glm::scaleBias (valType scale,
valType bias 
)
-
- -

Build a scale bias matrix.

-

From GLM_GTX_transform2 extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
detail::tmat4x4<valType, P> glm::scaleBias (detail::tmat4x4< valType, P > const & m,
valType scale,
valType bias 
)
-
- -

Build a scale bias matrix.

-

From GLM_GTX_transform2 extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
detail::tmat3x3<T, P> glm::shearX2D (detail::tmat3x3< T, P > const & m,
y 
)
-
- -

Transforms a matrix with a shearing on X axis.

-

From GLM_GTX_transform2 extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
detail::tmat4x4<T, P> glm::shearX3D (const detail::tmat4x4< T, P > & m,
y,
z 
)
-
- -

Transforms a matrix with a shearing on X axis From GLM_GTX_transform2 extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
detail::tmat3x3<T, P> glm::shearY2D (detail::tmat3x3< T, P > const & m,
x 
)
-
- -

Transforms a matrix with a shearing on Y axis.

-

From GLM_GTX_transform2 extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
detail::tmat4x4<T, P> glm::shearY3D (const detail::tmat4x4< T, P > & m,
x,
z 
)
-
- -

Transforms a matrix with a shearing on Y axis.

-

From GLM_GTX_transform2 extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
detail::tmat4x4<T, P> glm::shearZ3D (const detail::tmat4x4< T, P > & m,
x,
y 
)
-
- -

Transforms a matrix with a shearing on Z axis.

-

From GLM_GTX_transform2 extension.

+

Create a string from a GLM vector or matrix typed variable.

+
See also
GLM_GTX_string_cast extension.
@@ -368,7 +77,7 @@ Functions diff --git a/doc/api/a00233.html b/doc/api/a00233.html index b8418eb0..9034516c 100644 --- a/doc/api/a00233.html +++ b/doc/api/a00233.html @@ -3,8 +3,8 @@ - -GLM: GLM_GTX_vec1 + +0.9.6: GLM_GTX_transform @@ -16,9 +16,9 @@ + @@ -26,30 +26,118 @@
-
GLM -  0.9.5 +
0.9.6
- +
+
+Functions
-
+
GLM_GTX_transform
-

Add vec1, ivec1, uvec1 and bvec1 types.

-

<glm/gtx/vec1.hpp> need to be included to use these functionalities.

+ + + + + + + + + + + +

+Functions

template<typename T , precision P>
GLM_FUNC_DECL tmat4x4< T, P > rotate (T angle, tvec3< T, P > const &v)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat4x4< T, P > scale (tvec3< T, P > const &v)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat4x4< T, P > translate (tvec3< T, P > const &v)
 
+

Detailed Description

+

Add transformation matrices.

+

<glm/gtx/transform.hpp> need to be included to use these functionalities.

+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL tmat4x4<T, P> glm::rotate (angle,
tvec3< T, P > const & v 
)
+
+ +

Builds a rotation 4 * 4 matrix created from an axis of 3 scalars and an angle expressed in degrees.

+
See also
GLM_GTC_matrix_transform
+
+GLM_GTX_transform
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL tmat4x4<T, P> glm::scale (tvec3< T, P > const & v)
+
+ +

Transforms a matrix with a scale 4 * 4 matrix created from a vector of 3 components.

+
See also
GLM_GTC_matrix_transform
+
+GLM_GTX_transform
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL tmat4x4<T, P> glm::translate (tvec3< T, P > const & v)
+
+ +

Transforms a matrix with a translation 4 * 4 matrix created from 3 scalars.

+
See also
GLM_GTC_matrix_transform
+
+GLM_GTX_transform
+ +
+
diff --git a/doc/api/a00234.html b/doc/api/a00234.html index 25ee17be..68c2c7db 100644 --- a/doc/api/a00234.html +++ b/doc/api/a00234.html @@ -3,8 +3,8 @@ - -GLM: GLM_GTX_vector_angle + +0.9.6: GLM_GTX_transform2 @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -41,41 +39,180 @@
Functions
-
GLM_GTX_vector_angle
+
GLM_GTX_transform2
GTX Extensions (Experimental)
- - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + +

Functions

template<typename vecType >
GLM_FUNC_QUALIFIER
-vecType::value_type 
angle (vecType const &x, vecType const &y)
 
template<typename T , precision P>
GLM_FUNC_QUALIFIER T orientedAngle (detail::tvec2< T, P > const &x, detail::tvec2< T, P > const &y)
 
template<typename T , precision P>
GLM_FUNC_QUALIFIER T orientedAngle (detail::tvec3< T, P > const &x, detail::tvec3< T, P > const &y, detail::tvec3< T, P > const &ref)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat3x3< T, P > proj2D (const tmat3x3< T, P > &m, const tvec3< T, P > &normal)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat4x4< T, P > proj3D (const tmat4x4< T, P > &m, const tvec3< T, P > &normal)
 
template<typename valType , precision P>
GLM_FUNC_DECL tmat4x4< valType, P > scaleBias (valType scale, valType bias)
 
template<typename valType , precision P>
GLM_FUNC_DECL tmat4x4< valType, P > scaleBias (tmat4x4< valType, P > const &m, valType scale, valType bias)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat3x3< T, P > shearX2D (tmat3x3< T, P > const &m, T y)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat4x4< T, P > shearX3D (const tmat4x4< T, P > &m, T y, T z)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat3x3< T, P > shearY2D (tmat3x3< T, P > const &m, T x)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat4x4< T, P > shearY3D (const tmat4x4< T, P > &m, T x, T z)
 
template<typename T , precision P>
GLM_FUNC_DECL tmat4x4< T, P > shearZ3D (const tmat4x4< T, P > &m, T x, T y)
 

Detailed Description

-

Compute angle between vectors.

-

<glm/gtx/vector_angle.hpp> need to be included to use these functionalities.

+

Add extra transformation matrices.

+

<glm/gtx/transform2.hpp> need to be included to use these functionalities.

Function Documentation

- +
- + - - + + - + + + + + + + + +
GLM_FUNC_QUALIFIER vecType::value_type glm::angle GLM_FUNC_DECL tmat3x3<T, P> glm::proj2D (vecType const & x, const tmat3x3< T, P > & m,
vecType const & const tvec3< T, P > & normal 
)
+
+ +

Build planar projection matrix along normal axis.

+

From GLM_GTX_transform2 extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL tmat4x4<T, P> glm::proj3D (const tmat4x4< T, P > & m,
const tvec3< T, P > & normal 
)
+
+ +

Build planar projection matrix along normal axis.

+

From GLM_GTX_transform2 extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL tmat4x4<valType, P> glm::scaleBias (valType scale,
valType bias 
)
+
+ +

Build a scale bias matrix.

+

From GLM_GTX_transform2 extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL tmat4x4<valType, P> glm::scaleBias (tmat4x4< valType, P > const & m,
valType scale,
valType bias 
)
+
+ +

Build a scale bias matrix.

+

From GLM_GTX_transform2 extension.

+ +
+
+ +
+
+ + + + + + + + + + + @@ -86,61 +223,32 @@ vecType::value_type  diff --git a/doc/api/a00237.html b/doc/api/a00237.html index e0f5817f..cf52723c 100644 --- a/doc/api/a00237.html +++ b/doc/api/a00237.html @@ -3,8 +3,8 @@ - -GLM: GLM_VIRTREV_xstream: xml like output + +0.9.6: GLM_GTX_vector_query @@ -16,9 +16,9 @@
GLM_FUNC_DECL tmat3x3<T, P> glm::shearX2D (tmat3x3< T, P > const & m,
y 
-

Returns the absolute angle between two vectors Parameters need to be normalized.

-
See Also
GLM_GTX_vector_angle extension
+

Transforms a matrix with a shearing on X axis.

+

From GLM_GTX_transform2 extension.

- +
- + - - + + - - - - - - - - -
GLM_FUNC_QUALIFIER T glm::orientedAngle GLM_FUNC_DECL tmat4x4<T, P> glm::shearX3D (detail::tvec2< T, P > const & x, const tmat4x4< T, P > & m,
detail::tvec2< T, P > const & y 
)
-
- -

Returns the oriented angle between two 2d vectors Parameters need to be normalized.

-
See Also
GLM_GTX_vector_angle extension.
- -
-
- -
-
- - - - - - - - - - - + - - + + @@ -150,9 +258,106 @@ vecType::value_type  diff --git a/doc/api/a00236.html b/doc/api/a00236.html index 5656d3e5..c224080d 100644 --- a/doc/api/a00236.html +++ b/doc/api/a00236.html @@ -3,8 +3,8 @@ - -GLM: GLM_GTX_wrap + +0.9.6: GLM_GTX_vector_angle @@ -16,9 +16,9 @@
GLM_FUNC_QUALIFIER T glm::orientedAngle (detail::tvec3< T, P > const & x,
detail::tvec3< T, P > const &  y,
detail::tvec3< T, P > const & ref z 
-

Returns the oriented angle between two 3d vectors based from a reference axis.

-

Parameters need to be normalized.

-
See Also
GLM_GTX_vector_angle extension.
+

Transforms a matrix with a shearing on X axis From GLM_GTX_transform2 extension.

+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL tmat3x3<T, P> glm::shearY2D (tmat3x3< T, P > const & m,
x 
)
+
+ +

Transforms a matrix with a shearing on Y axis.

+

From GLM_GTX_transform2 extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL tmat4x4<T, P> glm::shearY3D (const tmat4x4< T, P > & m,
x,
z 
)
+
+ +

Transforms a matrix with a shearing on Y axis.

+

From GLM_GTX_transform2 extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL tmat4x4<T, P> glm::shearZ3D (const tmat4x4< T, P > & m,
x,
y 
)
+
+ +

Transforms a matrix with a shearing on Z axis.

+

From GLM_GTX_transform2 extension.

@@ -161,7 +366,7 @@ vecType::value_type 
diff --git a/doc/api/a00235.html b/doc/api/a00235.html index a91b973e..bc369ced 100644 --- a/doc/api/a00235.html +++ b/doc/api/a00235.html @@ -3,8 +3,8 @@ - -GLM: GLM_GTX_vector_query + +0.9.6: GLM_GTX_type_aligned @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -41,56 +39,457 @@
-
GLM_GTX_vector_query
+
GLM_GTX_type_aligned
- - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Functions

template<typename T , precision P, template< typename, precision > class vecType>
bool areCollinear (vecType< T, P > const &v0, vecType< T, P > const &v1, T const &epsilon)
 
template<typename T , precision P, template< typename, precision > class vecType>
bool areOrthogonal (vecType< T, P > const &v0, vecType< T, P > const &v1, T const &epsilon)
 
template<typename T , precision P, template< typename, precision > class vecType>
bool areOrthonormal (vecType< T, P > const &v0, vecType< T, P > const &v1, T const &epsilon)
 
template<typename T , precision P, template< typename, precision > class vecType>
vecType< bool, P > isCompNull (vecType< T, P > const &v, T const &epsilon)
 
template<typename T , precision P, template< typename, precision > class vecType>
bool isNormalized (vecType< T, P > const &v, T const &epsilon)
 
template<typename T , precision P, template< typename, precision > class vecType>
bool isNull (vecType< T, P > const &v, T const &epsilon)
 
 GLM_ALIGNED_TYPEDEF (lowp_int8, aligned_lowp_int8, 1)
 
 GLM_ALIGNED_TYPEDEF (lowp_int16, aligned_lowp_int16, 2)
 
 GLM_ALIGNED_TYPEDEF (lowp_int32, aligned_lowp_int32, 4)
 
 GLM_ALIGNED_TYPEDEF (lowp_int64, aligned_lowp_int64, 8)
 
 GLM_ALIGNED_TYPEDEF (lowp_int8_t, aligned_lowp_int8_t, 1)
 
 GLM_ALIGNED_TYPEDEF (lowp_int16_t, aligned_lowp_int16_t, 2)
 
 GLM_ALIGNED_TYPEDEF (lowp_int32_t, aligned_lowp_int32_t, 4)
 
 GLM_ALIGNED_TYPEDEF (lowp_int64_t, aligned_lowp_int64_t, 8)
 
 GLM_ALIGNED_TYPEDEF (lowp_i8, aligned_lowp_i8, 1)
 
 GLM_ALIGNED_TYPEDEF (lowp_i16, aligned_lowp_i16, 2)
 
 GLM_ALIGNED_TYPEDEF (lowp_i32, aligned_lowp_i32, 4)
 
 GLM_ALIGNED_TYPEDEF (lowp_i64, aligned_lowp_i64, 8)
 
 GLM_ALIGNED_TYPEDEF (mediump_int8, aligned_mediump_int8, 1)
 
 GLM_ALIGNED_TYPEDEF (mediump_int16, aligned_mediump_int16, 2)
 
 GLM_ALIGNED_TYPEDEF (mediump_int32, aligned_mediump_int32, 4)
 
 GLM_ALIGNED_TYPEDEF (mediump_int64, aligned_mediump_int64, 8)
 
 GLM_ALIGNED_TYPEDEF (mediump_int8_t, aligned_mediump_int8_t, 1)
 
 GLM_ALIGNED_TYPEDEF (mediump_int16_t, aligned_mediump_int16_t, 2)
 
 GLM_ALIGNED_TYPEDEF (mediump_int32_t, aligned_mediump_int32_t, 4)
 
 GLM_ALIGNED_TYPEDEF (mediump_int64_t, aligned_mediump_int64_t, 8)
 
 GLM_ALIGNED_TYPEDEF (mediump_i8, aligned_mediump_i8, 1)
 
 GLM_ALIGNED_TYPEDEF (mediump_i16, aligned_mediump_i16, 2)
 
 GLM_ALIGNED_TYPEDEF (mediump_i32, aligned_mediump_i32, 4)
 
 GLM_ALIGNED_TYPEDEF (mediump_i64, aligned_mediump_i64, 8)
 
 GLM_ALIGNED_TYPEDEF (highp_int8, aligned_highp_int8, 1)
 
 GLM_ALIGNED_TYPEDEF (highp_int16, aligned_highp_int16, 2)
 
 GLM_ALIGNED_TYPEDEF (highp_int32, aligned_highp_int32, 4)
 
 GLM_ALIGNED_TYPEDEF (highp_int64, aligned_highp_int64, 8)
 
 GLM_ALIGNED_TYPEDEF (highp_int8_t, aligned_highp_int8_t, 1)
 
 GLM_ALIGNED_TYPEDEF (highp_int16_t, aligned_highp_int16_t, 2)
 
 GLM_ALIGNED_TYPEDEF (highp_int32_t, aligned_highp_int32_t, 4)
 
 GLM_ALIGNED_TYPEDEF (highp_int64_t, aligned_highp_int64_t, 8)
 
 GLM_ALIGNED_TYPEDEF (highp_i8, aligned_highp_i8, 1)
 
 GLM_ALIGNED_TYPEDEF (highp_i16, aligned_highp_i16, 2)
 
 GLM_ALIGNED_TYPEDEF (highp_i32, aligned_highp_i32, 4)
 
 GLM_ALIGNED_TYPEDEF (highp_i64, aligned_highp_i64, 8)
 
 GLM_ALIGNED_TYPEDEF (int8, aligned_int8, 1)
 
 GLM_ALIGNED_TYPEDEF (int16, aligned_int16, 2)
 
 GLM_ALIGNED_TYPEDEF (int32, aligned_int32, 4)
 
 GLM_ALIGNED_TYPEDEF (int64, aligned_int64, 8)
 
 GLM_ALIGNED_TYPEDEF (int8_t, aligned_int8_t, 1)
 
 GLM_ALIGNED_TYPEDEF (int16_t, aligned_int16_t, 2)
 
 GLM_ALIGNED_TYPEDEF (int32_t, aligned_int32_t, 4)
 
 GLM_ALIGNED_TYPEDEF (int64_t, aligned_int64_t, 8)
 
 GLM_ALIGNED_TYPEDEF (i8, aligned_i8, 1)
 
 GLM_ALIGNED_TYPEDEF (i16, aligned_i16, 2)
 
 GLM_ALIGNED_TYPEDEF (i32, aligned_i32, 4)
 
 GLM_ALIGNED_TYPEDEF (i64, aligned_i64, 8)
 
 GLM_ALIGNED_TYPEDEF (ivec1, aligned_ivec1, 4)
 
 GLM_ALIGNED_TYPEDEF (ivec2, aligned_ivec2, 8)
 
 GLM_ALIGNED_TYPEDEF (ivec3, aligned_ivec3, 16)
 
 GLM_ALIGNED_TYPEDEF (ivec4, aligned_ivec4, 16)
 
 GLM_ALIGNED_TYPEDEF (i8vec1, aligned_i8vec1, 1)
 
 GLM_ALIGNED_TYPEDEF (i8vec2, aligned_i8vec2, 2)
 
 GLM_ALIGNED_TYPEDEF (i8vec3, aligned_i8vec3, 4)
 
 GLM_ALIGNED_TYPEDEF (i8vec4, aligned_i8vec4, 4)
 
 GLM_ALIGNED_TYPEDEF (i16vec1, aligned_i16vec1, 2)
 
 GLM_ALIGNED_TYPEDEF (i16vec2, aligned_i16vec2, 4)
 
 GLM_ALIGNED_TYPEDEF (i16vec3, aligned_i16vec3, 8)
 
 GLM_ALIGNED_TYPEDEF (i16vec4, aligned_i16vec4, 8)
 
 GLM_ALIGNED_TYPEDEF (i32vec1, aligned_i32vec1, 4)
 
 GLM_ALIGNED_TYPEDEF (i32vec2, aligned_i32vec2, 8)
 
 GLM_ALIGNED_TYPEDEF (i32vec3, aligned_i32vec3, 16)
 
 GLM_ALIGNED_TYPEDEF (i32vec4, aligned_i32vec4, 16)
 
 GLM_ALIGNED_TYPEDEF (i64vec1, aligned_i64vec1, 8)
 
 GLM_ALIGNED_TYPEDEF (i64vec2, aligned_i64vec2, 16)
 
 GLM_ALIGNED_TYPEDEF (i64vec3, aligned_i64vec3, 32)
 
 GLM_ALIGNED_TYPEDEF (i64vec4, aligned_i64vec4, 32)
 
 GLM_ALIGNED_TYPEDEF (lowp_uint8, aligned_lowp_uint8, 1)
 
 GLM_ALIGNED_TYPEDEF (lowp_uint16, aligned_lowp_uint16, 2)
 
 GLM_ALIGNED_TYPEDEF (lowp_uint32, aligned_lowp_uint32, 4)
 
 GLM_ALIGNED_TYPEDEF (lowp_uint64, aligned_lowp_uint64, 8)
 
 GLM_ALIGNED_TYPEDEF (lowp_uint8_t, aligned_lowp_uint8_t, 1)
 
 GLM_ALIGNED_TYPEDEF (lowp_uint16_t, aligned_lowp_uint16_t, 2)
 
 GLM_ALIGNED_TYPEDEF (lowp_uint32_t, aligned_lowp_uint32_t, 4)
 
 GLM_ALIGNED_TYPEDEF (lowp_uint64_t, aligned_lowp_uint64_t, 8)
 
 GLM_ALIGNED_TYPEDEF (lowp_u8, aligned_lowp_u8, 1)
 
 GLM_ALIGNED_TYPEDEF (lowp_u16, aligned_lowp_u16, 2)
 
 GLM_ALIGNED_TYPEDEF (lowp_u32, aligned_lowp_u32, 4)
 
 GLM_ALIGNED_TYPEDEF (lowp_u64, aligned_lowp_u64, 8)
 
 GLM_ALIGNED_TYPEDEF (mediump_uint8, aligned_mediump_uint8, 1)
 
 GLM_ALIGNED_TYPEDEF (mediump_uint16, aligned_mediump_uint16, 2)
 
 GLM_ALIGNED_TYPEDEF (mediump_uint32, aligned_mediump_uint32, 4)
 
 GLM_ALIGNED_TYPEDEF (mediump_uint64, aligned_mediump_uint64, 8)
 
 GLM_ALIGNED_TYPEDEF (mediump_uint8_t, aligned_mediump_uint8_t, 1)
 
 GLM_ALIGNED_TYPEDEF (mediump_uint16_t, aligned_mediump_uint16_t, 2)
 
 GLM_ALIGNED_TYPEDEF (mediump_uint32_t, aligned_mediump_uint32_t, 4)
 
 GLM_ALIGNED_TYPEDEF (mediump_uint64_t, aligned_mediump_uint64_t, 8)
 
 GLM_ALIGNED_TYPEDEF (mediump_u8, aligned_mediump_u8, 1)
 
 GLM_ALIGNED_TYPEDEF (mediump_u16, aligned_mediump_u16, 2)
 
 GLM_ALIGNED_TYPEDEF (mediump_u32, aligned_mediump_u32, 4)
 
 GLM_ALIGNED_TYPEDEF (mediump_u64, aligned_mediump_u64, 8)
 
 GLM_ALIGNED_TYPEDEF (highp_uint8, aligned_highp_uint8, 1)
 
 GLM_ALIGNED_TYPEDEF (highp_uint16, aligned_highp_uint16, 2)
 
 GLM_ALIGNED_TYPEDEF (highp_uint32, aligned_highp_uint32, 4)
 
 GLM_ALIGNED_TYPEDEF (highp_uint64, aligned_highp_uint64, 8)
 
 GLM_ALIGNED_TYPEDEF (highp_uint8_t, aligned_highp_uint8_t, 1)
 
 GLM_ALIGNED_TYPEDEF (highp_uint16_t, aligned_highp_uint16_t, 2)
 
 GLM_ALIGNED_TYPEDEF (highp_uint32_t, aligned_highp_uint32_t, 4)
 
 GLM_ALIGNED_TYPEDEF (highp_uint64_t, aligned_highp_uint64_t, 8)
 
 GLM_ALIGNED_TYPEDEF (highp_u8, aligned_highp_u8, 1)
 
 GLM_ALIGNED_TYPEDEF (highp_u16, aligned_highp_u16, 2)
 
 GLM_ALIGNED_TYPEDEF (highp_u32, aligned_highp_u32, 4)
 
 GLM_ALIGNED_TYPEDEF (highp_u64, aligned_highp_u64, 8)
 
 GLM_ALIGNED_TYPEDEF (uint8, aligned_uint8, 1)
 
 GLM_ALIGNED_TYPEDEF (uint16, aligned_uint16, 2)
 
 GLM_ALIGNED_TYPEDEF (uint32, aligned_uint32, 4)
 
 GLM_ALIGNED_TYPEDEF (uint64, aligned_uint64, 8)
 
 GLM_ALIGNED_TYPEDEF (uint8_t, aligned_uint8_t, 1)
 
 GLM_ALIGNED_TYPEDEF (uint16_t, aligned_uint16_t, 2)
 
 GLM_ALIGNED_TYPEDEF (uint32_t, aligned_uint32_t, 4)
 
 GLM_ALIGNED_TYPEDEF (uint64_t, aligned_uint64_t, 8)
 
 GLM_ALIGNED_TYPEDEF (u8, aligned_u8, 1)
 
 GLM_ALIGNED_TYPEDEF (u16, aligned_u16, 2)
 
 GLM_ALIGNED_TYPEDEF (u32, aligned_u32, 4)
 
 GLM_ALIGNED_TYPEDEF (u64, aligned_u64, 8)
 
 GLM_ALIGNED_TYPEDEF (uvec1, aligned_uvec1, 4)
 
 GLM_ALIGNED_TYPEDEF (uvec2, aligned_uvec2, 8)
 
 GLM_ALIGNED_TYPEDEF (uvec3, aligned_uvec3, 16)
 
 GLM_ALIGNED_TYPEDEF (uvec4, aligned_uvec4, 16)
 
 GLM_ALIGNED_TYPEDEF (u8vec1, aligned_u8vec1, 1)
 
 GLM_ALIGNED_TYPEDEF (u8vec2, aligned_u8vec2, 2)
 
 GLM_ALIGNED_TYPEDEF (u8vec3, aligned_u8vec3, 4)
 
 GLM_ALIGNED_TYPEDEF (u8vec4, aligned_u8vec4, 4)
 
 GLM_ALIGNED_TYPEDEF (u16vec1, aligned_u16vec1, 2)
 
 GLM_ALIGNED_TYPEDEF (u16vec2, aligned_u16vec2, 4)
 
 GLM_ALIGNED_TYPEDEF (u16vec3, aligned_u16vec3, 8)
 
 GLM_ALIGNED_TYPEDEF (u16vec4, aligned_u16vec4, 8)
 
 GLM_ALIGNED_TYPEDEF (u32vec1, aligned_u32vec1, 4)
 
 GLM_ALIGNED_TYPEDEF (u32vec2, aligned_u32vec2, 8)
 
 GLM_ALIGNED_TYPEDEF (u32vec3, aligned_u32vec3, 16)
 
 GLM_ALIGNED_TYPEDEF (u32vec4, aligned_u32vec4, 16)
 
 GLM_ALIGNED_TYPEDEF (u64vec1, aligned_u64vec1, 8)
 
 GLM_ALIGNED_TYPEDEF (u64vec2, aligned_u64vec2, 16)
 
 GLM_ALIGNED_TYPEDEF (u64vec3, aligned_u64vec3, 32)
 
 GLM_ALIGNED_TYPEDEF (u64vec4, aligned_u64vec4, 32)
 
 GLM_ALIGNED_TYPEDEF (float32, aligned_float32, 4)
 
 GLM_ALIGNED_TYPEDEF (float64, aligned_float64, 8)
 
 GLM_ALIGNED_TYPEDEF (float32_t, aligned_float32_t, 4)
 
 GLM_ALIGNED_TYPEDEF (float64_t, aligned_float64_t, 8)
 
 GLM_ALIGNED_TYPEDEF (float32, aligned_f32, 4)
 
 GLM_ALIGNED_TYPEDEF (float64, aligned_f64, 8)
 
 GLM_ALIGNED_TYPEDEF (vec1, aligned_vec1, 4)
 
 GLM_ALIGNED_TYPEDEF (vec2, aligned_vec2, 8)
 
 GLM_ALIGNED_TYPEDEF (vec3, aligned_vec3, 16)
 
 GLM_ALIGNED_TYPEDEF (vec4, aligned_vec4, 16)
 
 GLM_ALIGNED_TYPEDEF (fvec1, aligned_fvec1, 4)
 
 GLM_ALIGNED_TYPEDEF (fvec2, aligned_fvec2, 8)
 
 GLM_ALIGNED_TYPEDEF (fvec3, aligned_fvec3, 16)
 
 GLM_ALIGNED_TYPEDEF (fvec4, aligned_fvec4, 16)
 
 GLM_ALIGNED_TYPEDEF (f32vec1, aligned_f32vec1, 4)
 
 GLM_ALIGNED_TYPEDEF (f32vec2, aligned_f32vec2, 8)
 
 GLM_ALIGNED_TYPEDEF (f32vec3, aligned_f32vec3, 16)
 
 GLM_ALIGNED_TYPEDEF (f32vec4, aligned_f32vec4, 16)
 
 GLM_ALIGNED_TYPEDEF (dvec1, aligned_dvec1, 8)
 
 GLM_ALIGNED_TYPEDEF (dvec2, aligned_dvec2, 16)
 
 GLM_ALIGNED_TYPEDEF (dvec3, aligned_dvec3, 32)
 
 GLM_ALIGNED_TYPEDEF (dvec4, aligned_dvec4, 32)
 
 GLM_ALIGNED_TYPEDEF (f64vec1, aligned_f64vec1, 8)
 
 GLM_ALIGNED_TYPEDEF (f64vec2, aligned_f64vec2, 16)
 
 GLM_ALIGNED_TYPEDEF (f64vec3, aligned_f64vec3, 32)
 
 GLM_ALIGNED_TYPEDEF (f64vec4, aligned_f64vec4, 32)
 
 GLM_ALIGNED_TYPEDEF (mat2, aligned_mat2, 16)
 
 GLM_ALIGNED_TYPEDEF (mat3, aligned_mat3, 16)
 
 GLM_ALIGNED_TYPEDEF (mat4, aligned_mat4, 16)
 
 GLM_ALIGNED_TYPEDEF (mat2x2, aligned_mat2x2, 16)
 
 GLM_ALIGNED_TYPEDEF (mat3x3, aligned_mat3x3, 16)
 
 GLM_ALIGNED_TYPEDEF (mat4x4, aligned_mat4x4, 16)
 
 GLM_ALIGNED_TYPEDEF (fmat2x2, aligned_fmat2, 16)
 
 GLM_ALIGNED_TYPEDEF (fmat3x3, aligned_fmat3, 16)
 
 GLM_ALIGNED_TYPEDEF (fmat4x4, aligned_fmat4, 16)
 
 GLM_ALIGNED_TYPEDEF (fmat2x2, aligned_fmat2x2, 16)
 
 GLM_ALIGNED_TYPEDEF (fmat2x3, aligned_fmat2x3, 16)
 
 GLM_ALIGNED_TYPEDEF (fmat2x4, aligned_fmat2x4, 16)
 
 GLM_ALIGNED_TYPEDEF (fmat3x2, aligned_fmat3x2, 16)
 
 GLM_ALIGNED_TYPEDEF (fmat3x3, aligned_fmat3x3, 16)
 
 GLM_ALIGNED_TYPEDEF (fmat3x4, aligned_fmat3x4, 16)
 
 GLM_ALIGNED_TYPEDEF (fmat4x2, aligned_fmat4x2, 16)
 
 GLM_ALIGNED_TYPEDEF (fmat4x3, aligned_fmat4x3, 16)
 
 GLM_ALIGNED_TYPEDEF (fmat4x4, aligned_fmat4x4, 16)
 
 GLM_ALIGNED_TYPEDEF (f32mat2x2, aligned_f32mat2, 16)
 
 GLM_ALIGNED_TYPEDEF (f32mat3x3, aligned_f32mat3, 16)
 
 GLM_ALIGNED_TYPEDEF (f32mat4x4, aligned_f32mat4, 16)
 
 GLM_ALIGNED_TYPEDEF (f32mat2x2, aligned_f32mat2x2, 16)
 
 GLM_ALIGNED_TYPEDEF (f32mat2x3, aligned_f32mat2x3, 16)
 
 GLM_ALIGNED_TYPEDEF (f32mat2x4, aligned_f32mat2x4, 16)
 
 GLM_ALIGNED_TYPEDEF (f32mat3x2, aligned_f32mat3x2, 16)
 
 GLM_ALIGNED_TYPEDEF (f32mat3x3, aligned_f32mat3x3, 16)
 
 GLM_ALIGNED_TYPEDEF (f32mat3x4, aligned_f32mat3x4, 16)
 
 GLM_ALIGNED_TYPEDEF (f32mat4x2, aligned_f32mat4x2, 16)
 
 GLM_ALIGNED_TYPEDEF (f32mat4x3, aligned_f32mat4x3, 16)
 
 GLM_ALIGNED_TYPEDEF (f32mat4x4, aligned_f32mat4x4, 16)
 
 GLM_ALIGNED_TYPEDEF (f64mat2x2, aligned_f64mat2, 32)
 
 GLM_ALIGNED_TYPEDEF (f64mat3x3, aligned_f64mat3, 32)
 
 GLM_ALIGNED_TYPEDEF (f64mat4x4, aligned_f64mat4, 32)
 
 GLM_ALIGNED_TYPEDEF (f64mat2x2, aligned_f64mat2x2, 32)
 
 GLM_ALIGNED_TYPEDEF (f64mat2x3, aligned_f64mat2x3, 32)
 
 GLM_ALIGNED_TYPEDEF (f64mat2x4, aligned_f64mat2x4, 32)
 
 GLM_ALIGNED_TYPEDEF (f64mat3x2, aligned_f64mat3x2, 32)
 
 GLM_ALIGNED_TYPEDEF (f64mat3x3, aligned_f64mat3x3, 32)
 
 GLM_ALIGNED_TYPEDEF (f64mat3x4, aligned_f64mat3x4, 32)
 
 GLM_ALIGNED_TYPEDEF (f64mat4x2, aligned_f64mat4x2, 32)
 
 GLM_ALIGNED_TYPEDEF (f64mat4x3, aligned_f64mat4x3, 32)
 
 GLM_ALIGNED_TYPEDEF (f64mat4x4, aligned_f64mat4x4, 32)
 
 GLM_ALIGNED_TYPEDEF (quat, aligned_quat, 16)
 
 GLM_ALIGNED_TYPEDEF (fquat, aligned_fquat, 16)
 
 GLM_ALIGNED_TYPEDEF (dquat, aligned_dquat, 32)
 
 GLM_ALIGNED_TYPEDEF (f32quat, aligned_f32quat, 16)
 
 GLM_ALIGNED_TYPEDEF (f64quat, aligned_f64quat, 32)
 

Detailed Description

-

Query informations of vector types.

-

<glm/gtx/vector_query.hpp> need to be included to use these functionalities.

+

Defines aligned types.

+

Precision types defines aligned types.

+

<glm/gtx/type_aligned.hpp> need to be included to use these functionalities.

Function Documentation

- +
- + - - + + - - + + - - + + @@ -100,32 +499,32 @@ Functions
bool glm::areCollinear glm::GLM_ALIGNED_TYPEDEF (vecType< T, P > const & v0, lowp_int8 ,
vecType< T, P > const & v1, aligned_lowp_int8 ,
T const & epsilon  
-

Check whether two vectors are collinears.

-
See Also
GLM_GTX_vector_query extensions.
+

Low precision 8 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
- +
- + - - + + - - + + - - + + @@ -135,32 +534,32 @@ Functions
bool glm::areOrthogonal glm::GLM_ALIGNED_TYPEDEF (vecType< T, P > const & v0, lowp_int16 ,
vecType< T, P > const & v1, aligned_lowp_int16 ,
T const & epsilon  
-

Check whether two vectors are orthogonals.

-
See Also
GLM_GTX_vector_query extensions.
+

Low precision 16 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
- +
- + - - + + - - + + - - + + @@ -170,26 +569,32 @@ Functions
bool glm::areOrthonormal glm::GLM_ALIGNED_TYPEDEF (vecType< T, P > const & v0, lowp_int32 ,
vecType< T, P > const & v1, aligned_lowp_int32 ,
T const & epsilon  
-

Check whether two vectors are orthonormal.

-
See Also
GLM_GTX_vector_query extensions.
+

Low precision 32 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
- +
- + - - + + - - + + + + + + + + @@ -199,26 +604,32 @@ Functions
vecType<bool, P> glm::isCompNull glm::GLM_ALIGNED_TYPEDEF (vecType< T, P > const & v, lowp_int64 ,
T const & epsilon aligned_lowp_int64 ,
 
-

Check whether a each component of a vector is null.

-
See Also
GLM_GTX_vector_query extensions.
+

Low precision 64 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
- +
- + - - + + - - + + + + + + + + @@ -228,26 +639,32 @@ Functions
bool glm::isNormalized glm::GLM_ALIGNED_TYPEDEF (vecType< T, P > const & v, lowp_int8_t ,
T const & epsilon aligned_lowp_int8_t ,
 
-

Check whether a vector is normalized.

-
See Also
GLM_GTX_vector_query extensions.
+

Low precision 8 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
- +
- + - - + + - - + + + + + + + + @@ -257,8 +674,7129 @@ Functions
bool glm::isNull glm::GLM_ALIGNED_TYPEDEF (vecType< T, P > const & v, lowp_int16_t ,
T const & epsilon aligned_lowp_int16_t ,
 
-

Check whether a vector is null.

-
See Also
GLM_GTX_vector_query extensions.
+

Low precision 16 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (lowp_int32_t ,
aligned_lowp_int32_t ,
 
)
+
+ +

Low precision 32 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (lowp_int64_t ,
aligned_lowp_int64_t ,
 
)
+
+ +

Low precision 64 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (lowp_i8 ,
aligned_lowp_i8 ,
 
)
+
+ +

Low precision 8 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (lowp_i16 ,
aligned_lowp_i16 ,
 
)
+
+ +

Low precision 16 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (lowp_i32 ,
aligned_lowp_i32 ,
 
)
+
+ +

Low precision 32 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (lowp_i64 ,
aligned_lowp_i64 ,
 
)
+
+ +

Low precision 64 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (mediump_int8 ,
aligned_mediump_int8 ,
 
)
+
+ +

Medium precision 8 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (mediump_int16 ,
aligned_mediump_int16 ,
 
)
+
+ +

Medium precision 16 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (mediump_int32 ,
aligned_mediump_int32 ,
 
)
+
+ +

Medium precision 32 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (mediump_int64 ,
aligned_mediump_int64 ,
 
)
+
+ +

Medium precision 64 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (mediump_int8_t ,
aligned_mediump_int8_t ,
 
)
+
+ +

Medium precision 8 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (mediump_int16_t ,
aligned_mediump_int16_t ,
 
)
+
+ +

Medium precision 16 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (mediump_int32_t ,
aligned_mediump_int32_t ,
 
)
+
+ +

Medium precision 32 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (mediump_int64_t ,
aligned_mediump_int64_t ,
 
)
+
+ +

Medium precision 64 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (mediump_i8 ,
aligned_mediump_i8 ,
 
)
+
+ +

Medium precision 8 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (mediump_i16 ,
aligned_mediump_i16 ,
 
)
+
+ +

Medium precision 16 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (mediump_i32 ,
aligned_mediump_i32 ,
 
)
+
+ +

Medium precision 32 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (mediump_i64 ,
aligned_mediump_i64 ,
 
)
+
+ +

Medium precision 64 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (highp_int8 ,
aligned_highp_int8 ,
 
)
+
+ +

High precision 8 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (highp_int16 ,
aligned_highp_int16 ,
 
)
+
+ +

High precision 16 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (highp_int32 ,
aligned_highp_int32 ,
 
)
+
+ +

High precision 32 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (highp_int64 ,
aligned_highp_int64 ,
 
)
+
+ +

High precision 64 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (highp_int8_t ,
aligned_highp_int8_t ,
 
)
+
+ +

High precision 8 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (highp_int16_t ,
aligned_highp_int16_t ,
 
)
+
+ +

High precision 16 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (highp_int32_t ,
aligned_highp_int32_t ,
 
)
+
+ +

High precision 32 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (highp_int64_t ,
aligned_highp_int64_t ,
 
)
+
+ +

High precision 64 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (highp_i8 ,
aligned_highp_i8 ,
 
)
+
+ +

High precision 8 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (highp_i16 ,
aligned_highp_i16 ,
 
)
+
+ +

High precision 16 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (highp_i32 ,
aligned_highp_i32 ,
 
)
+
+ +

High precision 32 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (highp_i64 ,
aligned_highp_i64 ,
 
)
+
+ +

High precision 64 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (int8 ,
aligned_int8 ,
 
)
+
+ +

Default precision 8 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (int16 ,
aligned_int16 ,
 
)
+
+ +

Default precision 16 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (int32 ,
aligned_int32 ,
 
)
+
+ +

Default precision 32 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (int64 ,
aligned_int64 ,
 
)
+
+ +

Default precision 64 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (int8_t ,
aligned_int8_t ,
 
)
+
+ +

Default precision 8 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (int16_t ,
aligned_int16_t ,
 
)
+
+ +

Default precision 16 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (int32_t ,
aligned_int32_t ,
 
)
+
+ +

Default precision 32 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (int64_t ,
aligned_int64_t ,
 
)
+
+ +

Default precision 64 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (i8 ,
aligned_i8 ,
 
)
+
+ +

Default precision 8 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (i16 ,
aligned_i16 ,
 
)
+
+ +

Default precision 16 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (i32 ,
aligned_i32 ,
 
)
+
+ +

Default precision 32 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (i64 ,
aligned_i64 ,
 
)
+
+ +

Default precision 64 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (ivec1 ,
aligned_ivec1 ,
 
)
+
+ +

Default precision 32 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (ivec2 ,
aligned_ivec2 ,
 
)
+
+ +

Default precision 32 bit signed integer aligned vector of 2 components type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (ivec3 ,
aligned_ivec3 ,
16  
)
+
+ +

Default precision 32 bit signed integer aligned vector of 3 components type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (ivec4 ,
aligned_ivec4 ,
16  
)
+
+ +

Default precision 32 bit signed integer aligned vector of 4 components type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (i8vec1 ,
aligned_i8vec1 ,
 
)
+
+ +

Default precision 8 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (i8vec2 ,
aligned_i8vec2 ,
 
)
+
+ +

Default precision 8 bit signed integer aligned vector of 2 components type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (i8vec3 ,
aligned_i8vec3 ,
 
)
+
+ +

Default precision 8 bit signed integer aligned vector of 3 components type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (i8vec4 ,
aligned_i8vec4 ,
 
)
+
+ +

Default precision 8 bit signed integer aligned vector of 4 components type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (i16vec1 ,
aligned_i16vec1 ,
 
)
+
+ +

Default precision 16 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (i16vec2 ,
aligned_i16vec2 ,
 
)
+
+ +

Default precision 16 bit signed integer aligned vector of 2 components type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (i16vec3 ,
aligned_i16vec3 ,
 
)
+
+ +

Default precision 16 bit signed integer aligned vector of 3 components type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (i16vec4 ,
aligned_i16vec4 ,
 
)
+
+ +

Default precision 16 bit signed integer aligned vector of 4 components type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (i32vec1 ,
aligned_i32vec1 ,
 
)
+
+ +

Default precision 32 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (i32vec2 ,
aligned_i32vec2 ,
 
)
+
+ +

Default precision 32 bit signed integer aligned vector of 2 components type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (i32vec3 ,
aligned_i32vec3 ,
16  
)
+
+ +

Default precision 32 bit signed integer aligned vector of 3 components type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (i32vec4 ,
aligned_i32vec4 ,
16  
)
+
+ +

Default precision 32 bit signed integer aligned vector of 4 components type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (i64vec1 ,
aligned_i64vec1 ,
 
)
+
+ +

Default precision 64 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (i64vec2 ,
aligned_i64vec2 ,
16  
)
+
+ +

Default precision 64 bit signed integer aligned vector of 2 components type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (i64vec3 ,
aligned_i64vec3 ,
32  
)
+
+ +

Default precision 64 bit signed integer aligned vector of 3 components type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (i64vec4 ,
aligned_i64vec4 ,
32  
)
+
+ +

Default precision 64 bit signed integer aligned vector of 4 components type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (lowp_uint8 ,
aligned_lowp_uint8 ,
 
)
+
+ +

Low precision 8 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (lowp_uint16 ,
aligned_lowp_uint16 ,
 
)
+
+ +

Low precision 16 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (lowp_uint32 ,
aligned_lowp_uint32 ,
 
)
+
+ +

Low precision 32 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (lowp_uint64 ,
aligned_lowp_uint64 ,
 
)
+
+ +

Low precision 64 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (lowp_uint8_t ,
aligned_lowp_uint8_t ,
 
)
+
+ +

Low precision 8 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (lowp_uint16_t ,
aligned_lowp_uint16_t ,
 
)
+
+ +

Low precision 16 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (lowp_uint32_t ,
aligned_lowp_uint32_t ,
 
)
+
+ +

Low precision 32 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (lowp_uint64_t ,
aligned_lowp_uint64_t ,
 
)
+
+ +

Low precision 64 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (lowp_u8 ,
aligned_lowp_u8 ,
 
)
+
+ +

Low precision 8 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (lowp_u16 ,
aligned_lowp_u16 ,
 
)
+
+ +

Low precision 16 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (lowp_u32 ,
aligned_lowp_u32 ,
 
)
+
+ +

Low precision 32 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (lowp_u64 ,
aligned_lowp_u64 ,
 
)
+
+ +

Low precision 64 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (mediump_uint8 ,
aligned_mediump_uint8 ,
 
)
+
+ +

Medium precision 8 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (mediump_uint16 ,
aligned_mediump_uint16 ,
 
)
+
+ +

Medium precision 16 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (mediump_uint32 ,
aligned_mediump_uint32 ,
 
)
+
+ +

Medium precision 32 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (mediump_uint64 ,
aligned_mediump_uint64 ,
 
)
+
+ +

Medium precision 64 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (mediump_uint8_t ,
aligned_mediump_uint8_t ,
 
)
+
+ +

Medium precision 8 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (mediump_uint16_t ,
aligned_mediump_uint16_t ,
 
)
+
+ +

Medium precision 16 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (mediump_uint32_t ,
aligned_mediump_uint32_t ,
 
)
+
+ +

Medium precision 32 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (mediump_uint64_t ,
aligned_mediump_uint64_t ,
 
)
+
+ +

Medium precision 64 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (mediump_u8 ,
aligned_mediump_u8 ,
 
)
+
+ +

Medium precision 8 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (mediump_u16 ,
aligned_mediump_u16 ,
 
)
+
+ +

Medium precision 16 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (mediump_u32 ,
aligned_mediump_u32 ,
 
)
+
+ +

Medium precision 32 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (mediump_u64 ,
aligned_mediump_u64 ,
 
)
+
+ +

Medium precision 64 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (highp_uint8 ,
aligned_highp_uint8 ,
 
)
+
+ +

High precision 8 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (highp_uint16 ,
aligned_highp_uint16 ,
 
)
+
+ +

High precision 16 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (highp_uint32 ,
aligned_highp_uint32 ,
 
)
+
+ +

High precision 32 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (highp_uint64 ,
aligned_highp_uint64 ,
 
)
+
+ +

High precision 64 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (highp_uint8_t ,
aligned_highp_uint8_t ,
 
)
+
+ +

High precision 8 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (highp_uint16_t ,
aligned_highp_uint16_t ,
 
)
+
+ +

High precision 16 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (highp_uint32_t ,
aligned_highp_uint32_t ,
 
)
+
+ +

High precision 32 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (highp_uint64_t ,
aligned_highp_uint64_t ,
 
)
+
+ +

High precision 64 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (highp_u8 ,
aligned_highp_u8 ,
 
)
+
+ +

High precision 8 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (highp_u16 ,
aligned_highp_u16 ,
 
)
+
+ +

High precision 16 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (highp_u32 ,
aligned_highp_u32 ,
 
)
+
+ +

High precision 32 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (highp_u64 ,
aligned_highp_u64 ,
 
)
+
+ +

High precision 64 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (uint8 ,
aligned_uint8 ,
 
)
+
+ +

Default precision 8 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (uint16 ,
aligned_uint16 ,
 
)
+
+ +

Default precision 16 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (uint32 ,
aligned_uint32 ,
 
)
+
+ +

Default precision 32 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (uint64 ,
aligned_uint64 ,
 
)
+
+ +

Default precision 64 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (uint8_t ,
aligned_uint8_t ,
 
)
+
+ +

Default precision 8 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (uint16_t ,
aligned_uint16_t ,
 
)
+
+ +

Default precision 16 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (uint32_t ,
aligned_uint32_t ,
 
)
+
+ +

Default precision 32 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (uint64_t ,
aligned_uint64_t ,
 
)
+
+ +

Default precision 64 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (u8 ,
aligned_u8 ,
 
)
+
+ +

Default precision 8 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (u16 ,
aligned_u16 ,
 
)
+
+ +

Default precision 16 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (u32 ,
aligned_u32 ,
 
)
+
+ +

Default precision 32 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (u64 ,
aligned_u64 ,
 
)
+
+ +

Default precision 64 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (uvec1 ,
aligned_uvec1 ,
 
)
+
+ +

Default precision 32 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (uvec2 ,
aligned_uvec2 ,
 
)
+
+ +

Default precision 32 bit unsigned integer aligned vector of 2 components type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (uvec3 ,
aligned_uvec3 ,
16  
)
+
+ +

Default precision 32 bit unsigned integer aligned vector of 3 components type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (uvec4 ,
aligned_uvec4 ,
16  
)
+
+ +

Default precision 32 bit unsigned integer aligned vector of 4 components type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (u8vec1 ,
aligned_u8vec1 ,
 
)
+
+ +

Default precision 8 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (u8vec2 ,
aligned_u8vec2 ,
 
)
+
+ +

Default precision 8 bit unsigned integer aligned vector of 2 components type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (u8vec3 ,
aligned_u8vec3 ,
 
)
+
+ +

Default precision 8 bit unsigned integer aligned vector of 3 components type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (u8vec4 ,
aligned_u8vec4 ,
 
)
+
+ +

Default precision 8 bit unsigned integer aligned vector of 4 components type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (u16vec1 ,
aligned_u16vec1 ,
 
)
+
+ +

Default precision 16 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (u16vec2 ,
aligned_u16vec2 ,
 
)
+
+ +

Default precision 16 bit unsigned integer aligned vector of 2 components type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (u16vec3 ,
aligned_u16vec3 ,
 
)
+
+ +

Default precision 16 bit unsigned integer aligned vector of 3 components type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (u16vec4 ,
aligned_u16vec4 ,
 
)
+
+ +

Default precision 16 bit unsigned integer aligned vector of 4 components type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (u32vec1 ,
aligned_u32vec1 ,
 
)
+
+ +

Default precision 32 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (u32vec2 ,
aligned_u32vec2 ,
 
)
+
+ +

Default precision 32 bit unsigned integer aligned vector of 2 components type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (u32vec3 ,
aligned_u32vec3 ,
16  
)
+
+ +

Default precision 32 bit unsigned integer aligned vector of 3 components type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (u32vec4 ,
aligned_u32vec4 ,
16  
)
+
+ +

Default precision 32 bit unsigned integer aligned vector of 4 components type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (u64vec1 ,
aligned_u64vec1 ,
 
)
+
+ +

Default precision 64 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (u64vec2 ,
aligned_u64vec2 ,
16  
)
+
+ +

Default precision 64 bit unsigned integer aligned vector of 2 components type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (u64vec3 ,
aligned_u64vec3 ,
32  
)
+
+ +

Default precision 64 bit unsigned integer aligned vector of 3 components type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (u64vec4 ,
aligned_u64vec4 ,
32  
)
+
+ +

Default precision 64 bit unsigned integer aligned vector of 4 components type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (float32 ,
aligned_float32 ,
 
)
+
+ +

32 bit single-precision floating-point aligned scalar.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (float64 ,
aligned_float64 ,
 
)
+
+ +

64 bit double-precision floating-point aligned scalar.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (float32_t ,
aligned_float32_t ,
 
)
+
+ +

32 bit single-precision floating-point aligned scalar.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (float64_t ,
aligned_float64_t ,
 
)
+
+ +

64 bit double-precision floating-point aligned scalar.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (float32 ,
aligned_f32 ,
 
)
+
+ +

32 bit single-precision floating-point aligned scalar.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (float64 ,
aligned_f64 ,
 
)
+
+ +

64 bit double-precision floating-point aligned scalar.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (vec1 ,
aligned_vec1 ,
 
)
+
+ +

Single-precision floating-point aligned vector of 1 component.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (vec2 ,
aligned_vec2 ,
 
)
+
+ +

Single-precision floating-point aligned vector of 2 components.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (vec3 ,
aligned_vec3 ,
16  
)
+
+ +

Single-precision floating-point aligned vector of 3 components.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (vec4 ,
aligned_vec4 ,
16  
)
+
+ +

Single-precision floating-point aligned vector of 4 components.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (fvec1 ,
aligned_fvec1 ,
 
)
+
+ +

Single-precision floating-point aligned vector of 1 component.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (fvec2 ,
aligned_fvec2 ,
 
)
+
+ +

Single-precision floating-point aligned vector of 2 components.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (fvec3 ,
aligned_fvec3 ,
16  
)
+
+ +

Single-precision floating-point aligned vector of 3 components.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (fvec4 ,
aligned_fvec4 ,
16  
)
+
+ +

Single-precision floating-point aligned vector of 4 components.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (f32vec1 ,
aligned_f32vec1 ,
 
)
+
+ +

Single-precision floating-point aligned vector of 1 component.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (f32vec2 ,
aligned_f32vec2 ,
 
)
+
+ +

Single-precision floating-point aligned vector of 2 components.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (f32vec3 ,
aligned_f32vec3 ,
16  
)
+
+ +

Single-precision floating-point aligned vector of 3 components.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (f32vec4 ,
aligned_f32vec4 ,
16  
)
+
+ +

Single-precision floating-point aligned vector of 4 components.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (dvec1 ,
aligned_dvec1 ,
 
)
+
+ +

Double-precision floating-point aligned vector of 1 component.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (dvec2 ,
aligned_dvec2 ,
16  
)
+
+ +

Double-precision floating-point aligned vector of 2 components.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (dvec3 ,
aligned_dvec3 ,
32  
)
+
+ +

Double-precision floating-point aligned vector of 3 components.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (dvec4 ,
aligned_dvec4 ,
32  
)
+
+ +

Double-precision floating-point aligned vector of 4 components.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (f64vec1 ,
aligned_f64vec1 ,
 
)
+
+ +

Double-precision floating-point aligned vector of 1 component.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (f64vec2 ,
aligned_f64vec2 ,
16  
)
+
+ +

Double-precision floating-point aligned vector of 2 components.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (f64vec3 ,
aligned_f64vec3 ,
32  
)
+
+ +

Double-precision floating-point aligned vector of 3 components.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (f64vec4 ,
aligned_f64vec4 ,
32  
)
+
+ +

Double-precision floating-point aligned vector of 4 components.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (mat2 ,
aligned_mat2 ,
16  
)
+
+ +

Single-precision floating-point aligned 1x1 matrix.

+
See also
GLM_GTX_type_aligned Single-precision floating-point aligned 2x2 matrix.
+
+GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (mat3 ,
aligned_mat3 ,
16  
)
+
+ +

Single-precision floating-point aligned 3x3 matrix.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (mat4 ,
aligned_mat4 ,
16  
)
+
+ +

Single-precision floating-point aligned 4x4 matrix.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (mat2x2 ,
aligned_mat2x2 ,
16  
)
+
+ +

Single-precision floating-point aligned 1x1 matrix.

+
See also
GLM_GTX_type_aligned Single-precision floating-point aligned 2x2 matrix.
+
+GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (mat3x3 ,
aligned_mat3x3 ,
16  
)
+
+ +

Single-precision floating-point aligned 3x3 matrix.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (mat4x4 ,
aligned_mat4x4 ,
16  
)
+
+ +

Single-precision floating-point aligned 4x4 matrix.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (fmat2x2 ,
aligned_fmat2 ,
16  
)
+
+ +

Single-precision floating-point aligned 1x1 matrix.

+
See also
GLM_GTX_type_aligned Single-precision floating-point aligned 2x2 matrix.
+
+GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (fmat3x3 ,
aligned_fmat3 ,
16  
)
+
+ +

Single-precision floating-point aligned 3x3 matrix.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (fmat4x4 ,
aligned_fmat4 ,
16  
)
+
+ +

Single-precision floating-point aligned 4x4 matrix.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (fmat2x2 ,
aligned_fmat2x2 ,
16  
)
+
+ +

Single-precision floating-point aligned 1x1 matrix.

+
See also
GLM_GTX_type_aligned Single-precision floating-point aligned 2x2 matrix.
+
+GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (fmat2x3 ,
aligned_fmat2x3 ,
16  
)
+
+ +

Single-precision floating-point aligned 2x3 matrix.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (fmat2x4 ,
aligned_fmat2x4 ,
16  
)
+
+ +

Single-precision floating-point aligned 2x4 matrix.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (fmat3x2 ,
aligned_fmat3x2 ,
16  
)
+
+ +

Single-precision floating-point aligned 3x2 matrix.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (fmat3x3 ,
aligned_fmat3x3 ,
16  
)
+
+ +

Single-precision floating-point aligned 3x3 matrix.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (fmat3x4 ,
aligned_fmat3x4 ,
16  
)
+
+ +

Single-precision floating-point aligned 3x4 matrix.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (fmat4x2 ,
aligned_fmat4x2 ,
16  
)
+
+ +

Single-precision floating-point aligned 4x2 matrix.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (fmat4x3 ,
aligned_fmat4x3 ,
16  
)
+
+ +

Single-precision floating-point aligned 4x3 matrix.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (fmat4x4 ,
aligned_fmat4x4 ,
16  
)
+
+ +

Single-precision floating-point aligned 4x4 matrix.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (f32mat2x2 ,
aligned_f32mat2 ,
16  
)
+
+ +

Single-precision floating-point aligned 1x1 matrix.

+
See also
GLM_GTX_type_aligned Single-precision floating-point aligned 2x2 matrix.
+
+GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (f32mat3x3 ,
aligned_f32mat3 ,
16  
)
+
+ +

Single-precision floating-point aligned 3x3 matrix.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (f32mat4x4 ,
aligned_f32mat4 ,
16  
)
+
+ +

Single-precision floating-point aligned 4x4 matrix.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (f32mat2x2 ,
aligned_f32mat2x2 ,
16  
)
+
+ +

Single-precision floating-point aligned 1x1 matrix.

+
See also
GLM_GTX_type_aligned Single-precision floating-point aligned 2x2 matrix.
+
+GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (f32mat2x3 ,
aligned_f32mat2x3 ,
16  
)
+
+ +

Single-precision floating-point aligned 2x3 matrix.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (f32mat2x4 ,
aligned_f32mat2x4 ,
16  
)
+
+ +

Single-precision floating-point aligned 2x4 matrix.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (f32mat3x2 ,
aligned_f32mat3x2 ,
16  
)
+
+ +

Single-precision floating-point aligned 3x2 matrix.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (f32mat3x3 ,
aligned_f32mat3x3 ,
16  
)
+
+ +

Single-precision floating-point aligned 3x3 matrix.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (f32mat3x4 ,
aligned_f32mat3x4 ,
16  
)
+
+ +

Single-precision floating-point aligned 3x4 matrix.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (f32mat4x2 ,
aligned_f32mat4x2 ,
16  
)
+
+ +

Single-precision floating-point aligned 4x2 matrix.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (f32mat4x3 ,
aligned_f32mat4x3 ,
16  
)
+
+ +

Single-precision floating-point aligned 4x3 matrix.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (f32mat4x4 ,
aligned_f32mat4x4 ,
16  
)
+
+ +

Single-precision floating-point aligned 4x4 matrix.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (f64mat2x2 ,
aligned_f64mat2 ,
32  
)
+
+ +

Double-precision floating-point aligned 1x1 matrix.

+
See also
GLM_GTX_type_aligned Double-precision floating-point aligned 2x2 matrix.
+
+GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (f64mat3x3 ,
aligned_f64mat3 ,
32  
)
+
+ +

Double-precision floating-point aligned 3x3 matrix.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (f64mat4x4 ,
aligned_f64mat4 ,
32  
)
+
+ +

Double-precision floating-point aligned 4x4 matrix.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (f64mat2x2 ,
aligned_f64mat2x2 ,
32  
)
+
+ +

Double-precision floating-point aligned 1x1 matrix.

+
See also
GLM_GTX_type_aligned Double-precision floating-point aligned 2x2 matrix.
+
+GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (f64mat2x3 ,
aligned_f64mat2x3 ,
32  
)
+
+ +

Double-precision floating-point aligned 2x3 matrix.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (f64mat2x4 ,
aligned_f64mat2x4 ,
32  
)
+
+ +

Double-precision floating-point aligned 2x4 matrix.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (f64mat3x2 ,
aligned_f64mat3x2 ,
32  
)
+
+ +

Double-precision floating-point aligned 3x2 matrix.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (f64mat3x3 ,
aligned_f64mat3x3 ,
32  
)
+
+ +

Double-precision floating-point aligned 3x3 matrix.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (f64mat3x4 ,
aligned_f64mat3x4 ,
32  
)
+
+ +

Double-precision floating-point aligned 3x4 matrix.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (f64mat4x2 ,
aligned_f64mat4x2 ,
32  
)
+
+ +

Double-precision floating-point aligned 4x2 matrix.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (f64mat4x3 ,
aligned_f64mat4x3 ,
32  
)
+
+ +

Double-precision floating-point aligned 4x3 matrix.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (f64mat4x4 ,
aligned_f64mat4x4 ,
32  
)
+
+ +

Double-precision floating-point aligned 4x4 matrix.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (quat ,
aligned_quat ,
16  
)
+
+ +

Single-precision floating-point aligned quaternion.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (fquat ,
aligned_fquat ,
16  
)
+
+ +

Single-precision floating-point aligned quaternion.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (dquat ,
aligned_dquat ,
32  
)
+
+ +

Double-precision floating-point aligned quaternion.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (f32quat ,
aligned_f32quat ,
16  
)
+
+ +

Single-precision floating-point aligned quaternion.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (f64quat ,
aligned_f64quat ,
32  
)
+
+ +

Double-precision floating-point aligned quaternion.

+
See also
GLM_GTX_type_aligned
@@ -267,7 +7805,7 @@ Functions
+ @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -41,80 +39,116 @@ +
GLM_GTX_vector_angle
- - - - - - - - - + + + + + + + + +

Functions

template<typename genType >
GLM_FUNC_DECL genType clamp (genType const &Texcoord)
 
template<typename genType >
GLM_FUNC_DECL genType mirrorRepeat (genType const &Texcoord)
 
template<typename genType >
GLM_FUNC_DECL genType repeat (genType const &Texcoord)
 
template<typename vecType >
GLM_FUNC_DECL vecType::value_type angle (vecType const &x, vecType const &y)
 
template<typename T , precision P>
GLM_FUNC_DECL T orientedAngle (tvec2< T, P > const &x, tvec2< T, P > const &y)
 
template<typename T , precision P>
GLM_FUNC_DECL T orientedAngle (tvec3< T, P > const &x, tvec3< T, P > const &y, tvec3< T, P > const &ref)
 

Detailed Description

-

Wrapping mode of texture coordinates.

-

<glm/gtx/wrap.hpp> need to be included to use these functionalities.

+

Compute angle between vectors.

+

<glm/gtx/vector_angle.hpp> need to be included to use these functionalities.

Function Documentation

- +
- + - - + + + + + + + + + + + +
GLM_FUNC_DECL genType glm::clamp GLM_FUNC_DECL vecType::value_type glm::angle (genType const & Texcoord)vecType const & x,
vecType const & y 
)
-

Simulate GL_CLAMP OpenGL wrap mode.

-
See Also
GLM_GTX_wrap extension.
+

Returns the absolute angle between two vectors Parameters need to be normalized.

+
See also
GLM_GTX_vector_angle extension
- +
- + - - + + + + + + + + + + + +
GLM_FUNC_DECL genType glm::mirrorRepeat GLM_FUNC_DECL T glm::orientedAngle (genType const & Texcoord)tvec2< T, P > const & x,
tvec2< T, P > const & y 
)
-

Simulate GL_MIRROR_REPEAT OpenGL wrap mode.

-
See Also
GLM_GTX_wrap extension.
+

Returns the oriented angle between two 2d vectors Parameters need to be normalized.

+
See also
GLM_GTX_vector_angle extension.
- +
- + - - + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL genType glm::repeat GLM_FUNC_DECL T glm::orientedAngle (genType const & Texcoord)tvec3< T, P > const & x,
tvec3< T, P > const & y,
tvec3< T, P > const & ref 
)
-

Simulate GL_REPEAT OpenGL wrap mode.

-
See Also
GLM_GTX_wrap extension.
+

Returns the oriented angle between two 3d vectors based from a reference axis.

+

Parameters need to be normalized.

See also
GLM_GTX_vector_angle extension.
@@ -123,7 +157,7 @@ Functions
+ @@ -26,30 +26,246 @@
-
GLM -  0.9.5 +
0.9.6
- +
+
-
GLM_VIRTREV_xstream: xml like output
+
GLM_GTX_vector_query
-

Streaming vector and matrix in a xml way.

-

Include <glm/virtrev/xstream.hpp> for this functionality.

+ + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL bool areCollinear (vecType< T, P > const &v0, vecType< T, P > const &v1, T const &epsilon)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL bool areOrthogonal (vecType< T, P > const &v0, vecType< T, P > const &v1, T const &epsilon)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL bool areOrthonormal (vecType< T, P > const &v0, vecType< T, P > const &v1, T const &epsilon)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< bool, P > isCompNull (vecType< T, P > const &v, T const &epsilon)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL bool isNormalized (vecType< T, P > const &v, T const &epsilon)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL bool isNull (vecType< T, P > const &v, T const &epsilon)
 
+

Detailed Description

+

Query informations of vector types.

+

<glm/gtx/vector_query.hpp> need to be included to use these functionalities.

+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL bool glm::areCollinear (vecType< T, P > const & v0,
vecType< T, P > const & v1,
T const & epsilon 
)
+
+ +

Check whether two vectors are collinears.

+
See also
GLM_GTX_vector_query extensions.
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL bool glm::areOrthogonal (vecType< T, P > const & v0,
vecType< T, P > const & v1,
T const & epsilon 
)
+
+ +

Check whether two vectors are orthogonals.

+
See also
GLM_GTX_vector_query extensions.
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL bool glm::areOrthonormal (vecType< T, P > const & v0,
vecType< T, P > const & v1,
T const & epsilon 
)
+
+ +

Check whether two vectors are orthonormal.

+
See also
GLM_GTX_vector_query extensions.
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vecType<bool, P> glm::isCompNull (vecType< T, P > const & v,
T const & epsilon 
)
+
+ +

Check whether a each component of a vector is null.

+
See also
GLM_GTX_vector_query extensions.
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL bool glm::isNormalized (vecType< T, P > const & v,
T const & epsilon 
)
+
+ +

Check whether a vector is normalized.

+
See also
GLM_GTX_vector_query extensions.
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL bool glm::isNull (vecType< T, P > const & v,
T const & epsilon 
)
+
+ +

Check whether a vector is null.

+
See also
GLM_GTX_vector_query extensions.
+ +
+
diff --git a/doc/api/a00238.html b/doc/api/a00238.html index 6145b10b..0241f54d 100644 --- a/doc/api/a00238.html +++ b/doc/api/a00238.html @@ -3,8 +3,8 @@ - -GLM: Gtx_scalar_relational + +0.9.6: GLM_GTX_wrap @@ -16,9 +16,9 @@ + @@ -26,28 +26,102 @@
-
GLM -  0.9.5 +
0.9.6
- +
+
+Functions
-
Gtx_scalar_relational
+
GLM_GTX_wrap
+ + + + + + + + + + + +

+Functions

template<typename genType >
GLM_FUNC_DECL genType clamp (genType const &Texcoord)
 
template<typename genType >
GLM_FUNC_DECL genType mirrorRepeat (genType const &Texcoord)
 
template<typename genType >
GLM_FUNC_DECL genType repeat (genType const &Texcoord)
 
+

Detailed Description

+

Wrapping mode of texture coordinates.

+

<glm/gtx/wrap.hpp> need to be included to use these functionalities.

+

Function Documentation

+ +
+
+ + + + + + + + +
GLM_FUNC_DECL genType glm::clamp (genType const & Texcoord)
+
+ +

Simulate GL_CLAMP OpenGL wrap mode.

+
See also
GLM_GTX_wrap extension.
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL genType glm::mirrorRepeat (genType const & Texcoord)
+
+ +

Simulate GL_MIRROR_REPEAT OpenGL wrap mode.

+
See also
GLM_GTX_wrap extension.
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL genType glm::repeat (genType const & Texcoord)
+
+ +

Simulate GL_REPEAT OpenGL wrap mode.

+
See also
GLM_GTX_wrap extension.
+ +
+
diff --git a/doc/api/a00240.html b/doc/api/a00240.html deleted file mode 100644 index 9d09b446..00000000 --- a/doc/api/a00240.html +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - -GLM: Todo List - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - -
-
-
-
Todo List
-
-
-
-
Member glm::bitCount (genIUType< T > const &Value)
-
Clarify the declaration to specify that scalars are suported.
-
Member glm::epsilon ()
-
Implement epsilon for half-precision floating point type.
-
Member glm::findLSB (genIUType< T > const &Value)
-
Clarify the declaration to specify that scalars are suported.
-
Member glm::findMSB (genIUType< T > const &Value)
-
Clarify the declaration to specify that scalars are suported.
-
-
- - - - diff --git a/doc/api/dir_04e4a28b8d58785d7769817294d623f5.html b/doc/api/dir_04e4a28b8d58785d7769817294d623f5.html deleted file mode 100644 index ba4be446..00000000 --- a/doc/api/dir_04e4a28b8d58785d7769817294d623f5.html +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - -GLM: virtrev Directory Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - -
-
-
-
virtrev Directory Reference
-
-
- - - - -

-Files

file  xstream.hpp [code]
 
-
- - - - diff --git a/doc/api/dir_968fb7988749a6351e7b3d0c1783dec4.html b/doc/api/dir_0c6652232a835be54bedd6cfd7502504.html similarity index 71% rename from doc/api/dir_968fb7988749a6351e7b3d0c1783dec4.html rename to doc/api/dir_0c6652232a835be54bedd6cfd7502504.html index af15b98c..731c6f64 100644 --- a/doc/api/dir_968fb7988749a6351e7b3d0c1783dec4.html +++ b/doc/api/dir_0c6652232a835be54bedd6cfd7502504.html @@ -3,8 +3,8 @@ - -GLM: Groove Directory Reference + +0.9.6: G-Truc Directory Reference @@ -16,9 +16,9 @@ + @@ -26,30 +26,28 @@
-
GLM -  0.9.5 +
0.9.6
- +
-
Groove Directory Reference
+
G-Truc Directory Reference
- +

Directories

directory  Documents
directory  glm
 
@@ -57,7 +55,7 @@ Directories diff --git a/doc/api/dir_8ceffd4ee35c3518d4e8bdc7e638efe8.html b/doc/api/dir_153b03dd71a7bff437c38ec53cb2e014.html similarity index 74% rename from doc/api/dir_8ceffd4ee35c3518d4e8bdc7e638efe8.html rename to doc/api/dir_153b03dd71a7bff437c38ec53cb2e014.html index f8528c9f..23cc25e9 100644 --- a/doc/api/dir_8ceffd4ee35c3518d4e8bdc7e638efe8.html +++ b/doc/api/dir_153b03dd71a7bff437c38ec53cb2e014.html @@ -3,8 +3,8 @@ - -GLM: Users Directory Reference + +0.9.6: Source Directory Reference @@ -16,9 +16,9 @@ + @@ -26,30 +26,28 @@
-
GLM -  0.9.5 +
0.9.6
- +
-
Users Directory Reference
+
Source Directory Reference
- +

Directories

directory  Groove
directory  G-Truc
 
@@ -57,7 +55,7 @@ Directories diff --git a/doc/api/dir_e50778361fd4ab4de52181ed9eb2b726.html b/doc/api/dir_5cf96241cdcf6779b80e104875f9716f.html similarity index 55% rename from doc/api/dir_e50778361fd4ab4de52181ed9eb2b726.html rename to doc/api/dir_5cf96241cdcf6779b80e104875f9716f.html index 985b0ce6..f33d474c 100644 --- a/doc/api/dir_e50778361fd4ab4de52181ed9eb2b726.html +++ b/doc/api/dir_5cf96241cdcf6779b80e104875f9716f.html @@ -3,8 +3,8 @@ - -GLM: glm Directory Reference + +0.9.6: glm Directory Reference @@ -16,9 +16,9 @@ + @@ -26,19 +26,17 @@
-
GLM -  0.9.5 +
0.9.6
- +
@@ -49,62 +47,60 @@ - + - + - - - +

Directories

directory  detail
directory  detail
 
directory  gtc
directory  gtc
 
directory  gtx
 
directory  virtrev
directory  gtx
 
- + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - +

Files

file  common.hpp [code]
file  common.hpp [code]
 
file  exponential.hpp [code]
file  exponential.hpp [code]
 
file  ext.hpp [code]
file  ext.hpp [code]
 
file  fwd.hpp [code]
file  fwd.hpp [code]
 
file  geometric.hpp [code]
file  geometric.hpp [code]
 
file  glm.hpp [code]
file  glm.hpp [code]
 
file  integer.hpp [code]
file  integer.hpp [code]
 
file  mat2x2.hpp [code]
file  mat2x2.hpp [code]
 
file  mat2x3.hpp [code]
file  mat2x3.hpp [code]
 
file  mat2x4.hpp [code]
file  mat2x4.hpp [code]
 
file  mat3x2.hpp [code]
file  mat3x2.hpp [code]
 
file  mat3x3.hpp [code]
file  mat3x3.hpp [code]
 
file  mat3x4.hpp [code]
file  mat3x4.hpp [code]
 
file  mat4x2.hpp [code]
file  mat4x2.hpp [code]
 
file  mat4x3.hpp [code]
file  mat4x3.hpp [code]
 
file  mat4x4.hpp [code]
file  mat4x4.hpp [code]
 
file  matrix.hpp [code]
file  matrix.hpp [code]
 
file  packing.hpp [code]
file  packing.hpp [code]
 
file  trigonometric.hpp [code]
file  trigonometric.hpp [code]
 
file  vec2.hpp [code]
file  vec2.hpp [code]
 
file  vec3.hpp [code]
file  vec3.hpp [code]
 
file  vec4.hpp [code]
file  vec4.hpp [code]
 
file  vector_relational.hpp [code]
file  vector_relational.hpp [code]
 
@@ -112,7 +108,7 @@ Files diff --git a/doc/api/dir_a8d99eddac27b2368ab5252ce80ded11.html b/doc/api/dir_5d3642ea3c7f2dae4a957f2cf472c9ae.html similarity index 54% rename from doc/api/dir_a8d99eddac27b2368ab5252ce80ded11.html rename to doc/api/dir_5d3642ea3c7f2dae4a957f2cf472c9ae.html index 5e24055d..e0cf15e9 100644 --- a/doc/api/dir_a8d99eddac27b2368ab5252ce80ded11.html +++ b/doc/api/dir_5d3642ea3c7f2dae4a957f2cf472c9ae.html @@ -3,8 +3,8 @@ - -GLM: gtx Directory Reference + +0.9.6: gtx Directory Reference @@ -16,9 +16,9 @@ + @@ -26,19 +26,17 @@
-
GLM -  0.9.5 +
0.9.6
- +
@@ -49,129 +47,121 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - +

Files

file  associated_min_max.hpp [code]
file  associated_min_max.hpp [code]
 
file  bit.hpp [code]
file  bit.hpp [code]
 
file  closest_point.hpp [code]
file  closest_point.hpp [code]
 
file  color_space.hpp [code]
file  color_space.hpp [code]
 
file  color_space_YCoCg.hpp [code]
file  color_space_YCoCg.hpp [code]
 
file  compatibility.hpp [code]
file  gtx/common.hpp [code]
 
file  component_wise.hpp [code]
file  compatibility.hpp [code]
 
file  gtx/constants.hpp [code]
file  component_wise.hpp [code]
 
file  dual_quaternion.hpp [code]
file  dual_quaternion.hpp [code]
 
file  gtx/epsilon.hpp [code]
file  euler_angles.hpp [code]
 
file  euler_angles.hpp [code]
file  extend.hpp [code]
 
file  extend.hpp [code]
file  extented_min_max.hpp [code]
 
file  extented_min_max.hpp [code]
file  fast_exponential.hpp [code]
 
file  fast_exponential.hpp [code]
file  fast_square_root.hpp [code]
 
file  fast_square_root.hpp [code]
file  fast_trigonometry.hpp [code]
 
file  fast_trigonometry.hpp [code]
file  gradient_paint.hpp [code]
 
file  gradient_paint.hpp [code]
file  handed_coordinate_space.hpp [code]
 
file  handed_coordinate_space.hpp [code]
file  gtx/integer.hpp [code]
 
file  inertia.hpp [code]
file  intersect.hpp [code]
 
file  int_10_10_10_2.hpp [code]
file  io.hpp [code]
 
file  gtx/integer.hpp [code]
file  log_base.hpp [code]
 
file  intersect.hpp [code]
file  matrix_cross_product.hpp [code]
 
file  io.hpp [code]
file  matrix_decompose.hpp [code]
 
file  log_base.hpp [code]
file  matrix_interpolation.hpp [code]
 
file  matrix_cross_product.hpp [code]
file  matrix_major_storage.hpp [code]
 
file  matrix_interpolation.hpp [code]
file  matrix_operation.hpp [code]
 
file  matrix_major_storage.hpp [code]
file  matrix_query.hpp [code]
 
file  matrix_operation.hpp [code]
file  matrix_transform_2d.hpp [code]
 
file  matrix_query.hpp [code]
file  mixed_product.hpp [code]
 
file  mixed_product.hpp [code]
file  multiple.hpp [code]
 
file  multiple.hpp [code]
file  norm.hpp [code]
 
file  gtx/noise.hpp [code]
file  normal.hpp [code]
 
file  norm.hpp [code]
file  normalize_dot.hpp [code]
 
file  normal.hpp [code]
file  number_precision.hpp [code]
 
file  normalize_dot.hpp [code]
file  optimum_pow.hpp [code]
 
file  number_precision.hpp [code]
file  orthonormalize.hpp [code]
 
file  optimum_pow.hpp [code]
file  perpendicular.hpp [code]
 
file  orthonormalize.hpp [code]
file  polar_coordinates.hpp [code]
 
file  perpendicular.hpp [code]
file  projection.hpp [code]
 
file  polar_coordinates.hpp [code]
file  gtx/quaternion.hpp [code]
 
file  projection.hpp [code]
file  range.hpp [code]
 
file  gtx/quaternion.hpp [code]
file  raw_data.hpp [code]
 
file  gtx/random.hpp [code]
file  rotate_normalized_axis.hpp [code]
 
file  raw_data.hpp [code]
file  rotate_vector.hpp [code]
 
file  gtx/reciprocal.hpp [code]
file  scalar_multiplication.hpp [code]
 
file  rotate_normalized_axis.hpp [code]
file  scalar_relational.hpp [code]
 
file  rotate_vector.hpp [code]
file  simd_mat4.hpp [code]
 
file  scalar_relational.hpp [code]
file  simd_quat.hpp [code]
 
file  simd_mat4.hpp [code]
file  simd_vec4.hpp [code]
 
file  simd_quat.hpp [code]
file  spline.hpp [code]
 
file  simd_vec4.hpp [code]
file  std_based_type.hpp [code]
 
file  spline.hpp [code]
file  string_cast.hpp [code]
 
file  std_based_type.hpp [code]
file  transform.hpp [code]
 
file  string_cast.hpp [code]
file  transform2.hpp [code]
 
file  transform.hpp [code]
file  type_aligned.hpp [code]
 
file  transform2.hpp [code]
file  vector_angle.hpp [code]
 
file  gtx/ulp.hpp [code]
file  vector_query.hpp [code]
 
file  unsigned_int.hpp [code]
 
file  vec1.hpp [code]
 
file  vector_angle.hpp [code]
 
file  vector_query.hpp [code]
 
file  wrap.hpp [code]
file  wrap.hpp [code]
 
@@ -179,7 +169,7 @@ Files diff --git a/doc/api/dir_6e418c18ca640a0404613de005739e2e.html b/doc/api/dir_885cc87fac2d91e269af0a5a959fa5f6.html similarity index 68% rename from doc/api/dir_6e418c18ca640a0404613de005739e2e.html rename to doc/api/dir_885cc87fac2d91e269af0a5a959fa5f6.html index 34916310..cb56305c 100644 --- a/doc/api/dir_6e418c18ca640a0404613de005739e2e.html +++ b/doc/api/dir_885cc87fac2d91e269af0a5a959fa5f6.html @@ -3,8 +3,8 @@ - -GLM: Documents Directory Reference + +0.9.6: E: Directory Reference @@ -16,9 +16,9 @@ + @@ -26,30 +26,28 @@
-
GLM -  0.9.5 +
0.9.6
- +
-
Documents Directory Reference
+
E: Directory Reference
- +

Directories

directory  GitHub
directory  Source
 
@@ -57,7 +55,7 @@ Directories diff --git a/doc/api/dir_8aa733b201d3a9f98631fbccc86ae6c7.html b/doc/api/dir_8aa733b201d3a9f98631fbccc86ae6c7.html new file mode 100644 index 00000000..255e5882 --- /dev/null +++ b/doc/api/dir_8aa733b201d3a9f98631fbccc86ae6c7.html @@ -0,0 +1,95 @@ + + + + + + +0.9.6: gtc Directory Reference + + + + + + +
+
+ + + + + + + +
+
0.9.6 +
+
+
+ + + + +
+
+
+
gtc Directory Reference
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Files

file  bitfield.hpp [code]
 
file  constants.hpp [code]
 
file  epsilon.hpp [code]
 
file  gtc/integer.hpp [code]
 
file  matrix_access.hpp [code]
 
file  matrix_integer.hpp [code]
 
file  matrix_inverse.hpp [code]
 
file  matrix_transform.hpp [code]
 
file  noise.hpp [code]
 
file  gtc/packing.hpp [code]
 
file  gtc/quaternion.hpp [code]
 
file  random.hpp [code]
 
file  reciprocal.hpp [code]
 
file  round.hpp [code]
 
file  type_precision.hpp [code]
 
file  type_ptr.hpp [code]
 
file  ulp.hpp [code]
 
file  vec1.hpp [code]
 
+
+ + + + diff --git a/doc/api/dir_4d1ca7e3aefdd5b86b5dba8da1c3d503.html b/doc/api/dir_9b22c367036d391e575f56d067c9855b.html similarity index 57% rename from doc/api/dir_4d1ca7e3aefdd5b86b5dba8da1c3d503.html rename to doc/api/dir_9b22c367036d391e575f56d067c9855b.html index b8233111..ec6bcf98 100644 --- a/doc/api/dir_4d1ca7e3aefdd5b86b5dba8da1c3d503.html +++ b/doc/api/dir_9b22c367036d391e575f56d067c9855b.html @@ -3,8 +3,8 @@ - -GLM: detail Directory Reference + +0.9.6: detail Directory Reference @@ -16,9 +16,9 @@ + @@ -26,19 +26,17 @@
-
GLM -  0.9.5 +
0.9.6
- +
@@ -49,95 +47,91 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - +

Files

file  _features.hpp [code]
file  _features.hpp [code]
 
file  _fixes.hpp [code]
file  _fixes.hpp [code]
 
file  _literals.hpp [code]
file  _noise.hpp [code]
 
file  _noise.hpp [code]
file  _swizzle.hpp [code]
 
file  _swizzle.hpp [code]
file  _swizzle_func.hpp [code]
 
file  _swizzle_func.hpp [code]
file  _vectorize.hpp [code]
 
file  _vectorize.hpp [code]
file  func_common.hpp [code]
 
file  func_common.hpp [code]
file  func_exponential.hpp [code]
 
file  func_exponential.hpp [code]
file  func_geometric.hpp [code]
 
file  func_geometric.hpp [code]
file  func_integer.hpp [code]
 
file  func_integer.hpp [code]
file  func_matrix.hpp [code]
 
file  func_matrix.hpp [code]
file  func_noise.hpp [code]
 
file  func_noise.hpp [code]
file  func_packing.hpp [code]
 
file  func_packing.hpp [code]
file  func_trigonometric.hpp [code]
 
file  func_trigonometric.hpp [code]
file  func_vector_relational.hpp [code]
 
file  func_vector_relational.hpp [code]
file  intrinsic_common.hpp [code]
 
file  hint.hpp [code]
file  intrinsic_exponential.hpp [code]
 
file  intrinsic_common.hpp [code]
file  intrinsic_geometric.hpp [code]
 
file  intrinsic_exponential.hpp [code]
file  intrinsic_integer.hpp [code]
 
file  intrinsic_geometric.hpp [code]
file  intrinsic_matrix.hpp [code]
 
file  intrinsic_integer.hpp [code]
file  intrinsic_trigonometric.hpp [code]
 
file  intrinsic_matrix.hpp [code]
file  intrinsic_vector_relational.hpp [code]
 
file  intrinsic_trigonometric.hpp [code]
file  precision.hpp [code]
 
file  intrinsic_vector_relational.hpp [code]
file  setup.hpp [code]
 
file  precision.hpp [code]
file  type_float.hpp [code]
 
file  setup.hpp [code]
file  type_gentype.hpp [code]
 
file  type_float.hpp [code]
file  type_half.hpp [code]
 
file  type_gentype.hpp [code]
file  type_int.hpp [code]
 
file  type_half.hpp [code]
file  type_mat.hpp [code]
 
file  type_int.hpp [code]
file  type_mat2x2.hpp [code]
 
file  type_mat.hpp [code]
file  type_mat2x3.hpp [code]
 
file  type_mat2x2.hpp [code]
file  type_mat2x4.hpp [code]
 
file  type_mat2x3.hpp [code]
file  type_mat3x2.hpp [code]
 
file  type_mat2x4.hpp [code]
file  type_mat3x3.hpp [code]
 
file  type_mat3x2.hpp [code]
file  type_mat3x4.hpp [code]
 
file  type_mat3x3.hpp [code]
file  type_mat4x2.hpp [code]
 
file  type_mat3x4.hpp [code]
file  type_mat4x3.hpp [code]
 
file  type_mat4x2.hpp [code]
file  type_mat4x4.hpp [code]
 
file  type_mat4x3.hpp [code]
file  type_vec.hpp [code]
 
file  type_mat4x4.hpp [code]
file  type_vec1.hpp [code]
 
file  type_vec.hpp [code]
file  type_vec2.hpp [code]
 
file  type_vec1.hpp [code]
file  type_vec3.hpp [code]
 
file  type_vec2.hpp [code]
 
file  type_vec3.hpp [code]
 
file  type_vec4.hpp [code]
file  type_vec4.hpp [code]
 
@@ -145,7 +139,7 @@ Files diff --git a/doc/api/dir_edf753475b928be648c1cf1c6443cf63.html b/doc/api/dir_e2c7faa62a52820b5be8795affd6e495.html similarity index 65% rename from doc/api/dir_edf753475b928be648c1cf1c6443cf63.html rename to doc/api/dir_e2c7faa62a52820b5be8795affd6e495.html index e228e45e..33e51156 100644 --- a/doc/api/dir_edf753475b928be648c1cf1c6443cf63.html +++ b/doc/api/dir_e2c7faa62a52820b5be8795affd6e495.html @@ -3,8 +3,8 @@ - -GLM: glm Directory Reference + +0.9.6: glm Directory Reference @@ -16,9 +16,9 @@ + @@ -26,19 +26,17 @@
-
GLM -  0.9.5 +
0.9.6
- +
@@ -49,9 +47,9 @@ - + - +

Directories

directory  doc
directory  doc
 
directory  glm
directory  glm
 
@@ -59,7 +57,7 @@ Directories diff --git a/doc/api/dir_e3ecd7863bd215c92a17f47e2ae3be43.html b/doc/api/dir_e3ecd7863bd215c92a17f47e2ae3be43.html deleted file mode 100644 index c6678a0e..00000000 --- a/doc/api/dir_e3ecd7863bd215c92a17f47e2ae3be43.html +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - -GLM: GitHub Directory Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - -
-
-
-
GitHub Directory Reference
-
-
- - - - -

-Directories

directory  glm
 
-
- - - - diff --git a/doc/api/dir_89daaa151958d75313fcd89dd5f4bdb8.html b/doc/api/dir_e6d11964c5662039c68343b35ca5648c.html similarity index 62% rename from doc/api/dir_89daaa151958d75313fcd89dd5f4bdb8.html rename to doc/api/dir_e6d11964c5662039c68343b35ca5648c.html index e123e913..e4ec16e9 100644 --- a/doc/api/dir_89daaa151958d75313fcd89dd5f4bdb8.html +++ b/doc/api/dir_e6d11964c5662039c68343b35ca5648c.html @@ -3,8 +3,8 @@ - -GLM: doc Directory Reference + +0.9.6: doc Directory Reference @@ -16,9 +16,9 @@ + @@ -26,19 +26,17 @@
-
GLM -  0.9.5 +
0.9.6
- +
@@ -49,9 +47,9 @@ - + - +

Files

file  man.doxy [code]
file  man.doxy [code]
 
file  pages.doxy [code]
file  pages.doxy [code]
 
@@ -59,7 +57,7 @@ Files diff --git a/doc/api/dir_f7324829a002c536307b42a892c06451.html b/doc/api/dir_f7324829a002c536307b42a892c06451.html deleted file mode 100644 index bce28a80..00000000 --- a/doc/api/dir_f7324829a002c536307b42a892c06451.html +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - -GLM: gtc Directory Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - -
-
-
-
gtc Directory Reference
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Files

file  gtc/constants.hpp [code]
 
file  gtc/epsilon.hpp [code]
 
file  matrix_access.hpp [code]
 
file  matrix_integer.hpp [code]
 
file  matrix_inverse.hpp [code]
 
file  matrix_transform.hpp [code]
 
file  gtc/noise.hpp [code]
 
file  gtc/packing.hpp [code]
 
file  gtc/quaternion.hpp [code]
 
file  gtc/random.hpp [code]
 
file  gtc/reciprocal.hpp [code]
 
file  type_precision.hpp [code]
 
file  type_ptr.hpp [code]
 
file  gtc/ulp.hpp [code]
 
-
- - - - diff --git a/doc/api/dynsections.js b/doc/api/dynsections.js index 2f15470d..1e6bf07f 100644 --- a/doc/api/dynsections.js +++ b/doc/api/dynsections.js @@ -24,19 +24,20 @@ function updateStripes() $('table.directory tr'). removeClass('even').filter(':visible:even').addClass('even'); } + function toggleLevel(level) { - $('table.directory tr').each(function(){ + $('table.directory tr').each(function() { var l = this.id.split('_').length-1; var i = $('#img'+this.id.substring(3)); var a = $('#arr'+this.id.substring(3)); if (l - -GLM: File List + +0.9.6: File List @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -49,153 +47,150 @@
Here is a list of all documented files with brief descriptions:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
o*_features.hpp
o*_fixes.hpp
o*_literals.hpp
o*_noise.hppOpenGL Mathematics (glm.g-truc.net)
o*_swizzle.hpp
o*_swizzle_func.hpp
o*_vectorize.hpp
o*associated_min_max.hppOpenGL Mathematics (glm.g-truc.net)
o*bit.hppOpenGL Mathematics (glm.g-truc.net)
o*closest_point.hpp
o*color_space.hppOpenGL Mathematics (glm.g-truc.net)
o*color_space_YCoCg.hppOpenGL Mathematics (glm.g-truc.net)
o*common.hppOpenGL Mathematics (glm.g-truc.net)
o*compatibility.hppOpenGL Mathematics (glm.g-truc.net)
o*component_wise.hppOpenGL Mathematics (glm.g-truc.net)
o*gtc/constants.hppOpenGL Mathematics (glm.g-truc.net)
o*gtx/constants.hpp
o*dual_quaternion.hppOpenGL Mathematics (glm.g-truc.net)
o*gtc/epsilon.hppOpenGL Mathematics (glm.g-truc.net)
o*gtx/epsilon.hpp
o*euler_angles.hppOpenGL Mathematics (glm.g-truc.net)
o*exponential.hppOpenGL Mathematics (glm.g-truc.net)
o*ext.hpp
o*extend.hppOpenGL Mathematics (glm.g-truc.net)
o*extented_min_max.hppOpenGL Mathematics (glm.g-truc.net)
o*fast_exponential.hppOpenGL Mathematics (glm.g-truc.net)
o*fast_square_root.hppOpenGL Mathematics (glm.g-truc.net)
o*fast_trigonometry.hppOpenGL Mathematics (glm.g-truc.net)
o*func_common.hpp
o*func_exponential.hpp
o*func_geometric.hpp
o*func_integer.hpp
o*func_matrix.hpp
o*func_noise.hpp
o*func_packing.hpp
o*func_trigonometric.hpp
o*func_vector_relational.hpp
o*fwd.hppOpenGL Mathematics (glm.g-truc.net)
o*geometric.hppOpenGL Mathematics (glm.g-truc.net)
o*glm.hppOpenGL Mathematics (glm.g-truc.net)
o*gradient_paint.hppOpenGL Mathematics (glm.g-truc.net)
o*handed_coordinate_space.hppOpenGL Mathematics (glm.g-truc.net)
o*hint.hpp
o*inertia.hppOpenGL Mathematics (glm.g-truc.net)
o*int_10_10_10_2.hpp
o*gtx/integer.hppOpenGL Mathematics (glm.g-truc.net)
o*integer.hppOpenGL Mathematics (glm.g-truc.net)
o*intersect.hppOpenGL Mathematics (glm.g-truc.net)
o*intrinsic_common.hpp
o*intrinsic_exponential.hpp
o*intrinsic_geometric.hpp
o*intrinsic_integer.hpp
o*intrinsic_matrix.hpp
o*intrinsic_trigonometric.hpp
o*intrinsic_vector_relational.hpp
o*io.hppOpenGL Mathematics (glm.g-truc.net)
o*log_base.hppOpenGL Mathematics (glm.g-truc.net)
o*man.doxy
o*mat2x2.hppOpenGL Mathematics (glm.g-truc.net)
o*mat2x3.hppOpenGL Mathematics (glm.g-truc.net)
o*mat2x4.hppOpenGL Mathematics (glm.g-truc.net)
o*mat3x2.hppOpenGL Mathematics (glm.g-truc.net)
o*mat3x3.hppOpenGL Mathematics (glm.g-truc.net)
o*mat3x4.hppOpenGL Mathematics (glm.g-truc.net)
o*mat4x2.hppOpenGL Mathematics (glm.g-truc.net)
o*mat4x3.hpp
o*mat4x4.hppOpenGL Mathematics (glm.g-truc.net)
o*matrix.hppOpenGL Mathematics (glm.g-truc.net)
o*matrix_access.hppOpenGL Mathematics (glm.g-truc.net)
o*matrix_cross_product.hppOpenGL Mathematics (glm.g-truc.net)
o*matrix_integer.hppOpenGL Mathematics (glm.g-truc.net)
o*matrix_interpolation.hppOpenGL Mathematics (glm.g-truc.net)
o*matrix_inverse.hppOpenGL Mathematics (glm.g-truc.net)
o*matrix_major_storage.hppOpenGL Mathematics (glm.g-truc.net)
o*matrix_operation.hppOpenGL Mathematics (glm.g-truc.net)
o*matrix_query.hppOpenGL Mathematics (glm.g-truc.net)
o*matrix_transform.hppOpenGL Mathematics (glm.g-truc.net)
o*mixed_product.hppOpenGL Mathematics (glm.g-truc.net)
o*multiple.hppOpenGL Mathematics (glm.g-truc.net)
o*gtc/noise.hppOpenGL Mathematics (glm.g-truc.net)
o*gtx/noise.hpp
o*norm.hppOpenGL Mathematics (glm.g-truc.net)
o*normal.hppOpenGL Mathematics (glm.g-truc.net)
o*normalize_dot.hppOpenGL Mathematics (glm.g-truc.net)
o*number_precision.hppOpenGL Mathematics (glm.g-truc.net)
o*optimum_pow.hppOpenGL Mathematics (glm.g-truc.net)
o*orthonormalize.hppOpenGL Mathematics (glm.g-truc.net)
o*gtc/packing.hppOpenGL Mathematics (glm.g-truc.net)
o*packing.hppOpenGL Mathematics (glm.g-truc.net)
o*pages.doxy
o*perpendicular.hppOpenGL Mathematics (glm.g-truc.net)
o*polar_coordinates.hppOpenGL Mathematics (glm.g-truc.net)
o*precision.hpp
o*projection.hppOpenGL Mathematics (glm.g-truc.net)
o*gtc/quaternion.hppOpenGL Mathematics (glm.g-truc.net)
o*gtx/quaternion.hppOpenGL Mathematics (glm.g-truc.net)
o*gtc/random.hppOpenGL Mathematics (glm.g-truc.net)
o*gtx/random.hpp
o*raw_data.hppOpenGL Mathematics (glm.g-truc.net)
o*gtc/reciprocal.hppOpenGL Mathematics (glm.g-truc.net)
o*gtx/reciprocal.hpp
o*rotate_normalized_axis.hppOpenGL Mathematics (glm.g-truc.net)
o*rotate_vector.hppOpenGL Mathematics (glm.g-truc.net)
o*scalar_relational.hppOpenGL Mathematics (glm.g-truc.net)
o*setup.hpp
o*simd_mat4.hpp
o*simd_quat.hppOpenGL Mathematics (glm.g-truc.net)
o*simd_vec4.hppOpenGL Mathematics (glm.g-truc.net)
o*spline.hppOpenGL Mathematics (glm.g-truc.net)
o*std_based_type.hppOpenGL Mathematics (glm.g-truc.net)
o*string_cast.hppOpenGL Mathematics (glm.g-truc.net)
o*transform.hppOpenGL Mathematics (glm.g-truc.net)
o*transform2.hppOpenGL Mathematics (glm.g-truc.net)
o*trigonometric.hppOpenGL Mathematics (glm.g-truc.net)
o*type_float.hpp
o*type_gentype.hpp
o*type_half.hpp
o*type_int.hpp
o*type_mat.hpp
o*type_mat2x2.hpp
o*type_mat2x3.hpp
o*type_mat2x4.hpp
o*type_mat3x2.hpp
o*type_mat3x3.hpp
o*type_mat3x4.hpp
o*type_mat4x2.hpp
o*type_mat4x3.hpp
o*type_mat4x4.hpp
o*type_precision.hppOpenGL Mathematics (glm.g-truc.net)
o*type_ptr.hppOpenGL Mathematics (glm.g-truc.net)
o*type_vec.hpp
o*type_vec1.hpp
o*type_vec2.hpp
o*type_vec3.hpp
o*type_vec4.hpp
o*gtc/ulp.hppOpenGL Mathematics (glm.g-truc.net)
o*gtx/ulp.hpp
o*unsigned_int.hpp
o*vec1.hppOpenGL Mathematics (glm.g-truc.net)
o*vec2.hppOpenGL Mathematics (glm.g-truc.net)
o*vec3.hppOpenGL Mathematics (glm.g-truc.net)
o*vec4.hppOpenGL Mathematics (glm.g-truc.net)
o*vector_angle.hppOpenGL Mathematics (glm.g-truc.net)
o*vector_query.hppOpenGL Mathematics (glm.g-truc.net)
o*vector_relational.hppOpenGL Mathematics (glm.g-truc.net)
o*wrap.hppOpenGL Mathematics (glm.g-truc.net)
\*xstream.hppOpenGL Mathematics (glm.g-truc.net)
 _features.hppOpenGL Mathematics (glm.g-truc.net)
 _fixes.hppOpenGL Mathematics (glm.g-truc.net)
 _noise.hppOpenGL Mathematics (glm.g-truc.net)
 _swizzle.hppOpenGL Mathematics (glm.g-truc.net)
 _swizzle_func.hppOpenGL Mathematics (glm.g-truc.net)
 _vectorize.hppOpenGL Mathematics (glm.g-truc.net)
 associated_min_max.hppOpenGL Mathematics (glm.g-truc.net)
 bit.hppOpenGL Mathematics (glm.g-truc.net)
 bitfield.hppOpenGL Mathematics (glm.g-truc.net)
 closest_point.hppOpenGL Mathematics (glm.g-truc.net)
 color_space.hppOpenGL Mathematics (glm.g-truc.net)
 color_space_YCoCg.hppOpenGL Mathematics (glm.g-truc.net)
 common.hppOpenGL Mathematics (glm.g-truc.net)
 gtx/common.hppOpenGL Mathematics (glm.g-truc.net)
 compatibility.hppOpenGL Mathematics (glm.g-truc.net)
 component_wise.hppOpenGL Mathematics (glm.g-truc.net)
 constants.hppOpenGL Mathematics (glm.g-truc.net)
 dual_quaternion.hppOpenGL Mathematics (glm.g-truc.net)
 epsilon.hppOpenGL Mathematics (glm.g-truc.net)
 euler_angles.hppOpenGL Mathematics (glm.g-truc.net)
 exponential.hppOpenGL Mathematics (glm.g-truc.net)
 ext.hpp
 extend.hppOpenGL Mathematics (glm.g-truc.net)
 extented_min_max.hppOpenGL Mathematics (glm.g-truc.net)
 fast_exponential.hppOpenGL Mathematics (glm.g-truc.net)
 fast_square_root.hppOpenGL Mathematics (glm.g-truc.net)
 fast_trigonometry.hppOpenGL Mathematics (glm.g-truc.net)
 func_common.hppOpenGL Mathematics (glm.g-truc.net)
 func_exponential.hppOpenGL Mathematics (glm.g-truc.net)
 func_geometric.hppOpenGL Mathematics (glm.g-truc.net)
 func_integer.hppOpenGL Mathematics (glm.g-truc.net)
 func_matrix.hppOpenGL Mathematics (glm.g-truc.net)
 func_noise.hppOpenGL Mathematics (glm.g-truc.net)
 func_packing.hppOpenGL Mathematics (glm.g-truc.net)
 func_trigonometric.hppOpenGL Mathematics (glm.g-truc.net)
 func_vector_relational.hppOpenGL Mathematics (glm.g-truc.net)
 fwd.hppOpenGL Mathematics (glm.g-truc.net)
 geometric.hppOpenGL Mathematics (glm.g-truc.net)
 glm.hppOpenGL Mathematics (glm.g-truc.net)
 gradient_paint.hppOpenGL Mathematics (glm.g-truc.net)
 handed_coordinate_space.hppOpenGL Mathematics (glm.g-truc.net)
 gtc/integer.hppOpenGL Mathematics (glm.g-truc.net)
 gtx/integer.hppOpenGL Mathematics (glm.g-truc.net)
 integer.hppOpenGL Mathematics (glm.g-truc.net)
 intersect.hppOpenGL Mathematics (glm.g-truc.net)
 intrinsic_common.hppOpenGL Mathematics (glm.g-truc.net)
 intrinsic_exponential.hppOpenGL Mathematics (glm.g-truc.net)
 intrinsic_geometric.hppOpenGL Mathematics (glm.g-truc.net)
 intrinsic_integer.hppOpenGL Mathematics (glm.g-truc.net)
 intrinsic_matrix.hpp
 intrinsic_trigonometric.hppOpenGL Mathematics (glm.g-truc.net)
 intrinsic_vector_relational.hppOpenGL Mathematics (glm.g-truc.net)
 io.hppOpenGL Mathematics (glm.g-truc.net)
 log_base.hppOpenGL Mathematics (glm.g-truc.net)
 man.doxy
 mat2x2.hppOpenGL Mathematics (glm.g-truc.net)
 mat2x3.hppOpenGL Mathematics (glm.g-truc.net)
 mat2x4.hppOpenGL Mathematics (glm.g-truc.net)
 mat3x2.hppOpenGL Mathematics (glm.g-truc.net)
 mat3x3.hppOpenGL Mathematics (glm.g-truc.net)
 mat3x4.hppOpenGL Mathematics (glm.g-truc.net)
 mat4x2.hppOpenGL Mathematics (glm.g-truc.net)
 mat4x3.hpp
 mat4x4.hppOpenGL Mathematics (glm.g-truc.net)
 matrix.hppOpenGL Mathematics (glm.g-truc.net)
 matrix_access.hppOpenGL Mathematics (glm.g-truc.net)
 matrix_cross_product.hppOpenGL Mathematics (glm.g-truc.net)
 matrix_decompose.hppOpenGL Mathematics (glm.g-truc.net)
 matrix_integer.hppOpenGL Mathematics (glm.g-truc.net)
 matrix_interpolation.hppOpenGL Mathematics (glm.g-truc.net)
 matrix_inverse.hppOpenGL Mathematics (glm.g-truc.net)
 matrix_major_storage.hppOpenGL Mathematics (glm.g-truc.net)
 matrix_operation.hppOpenGL Mathematics (glm.g-truc.net)
 matrix_query.hppOpenGL Mathematics (glm.g-truc.net)
 matrix_transform.hppOpenGL Mathematics (glm.g-truc.net)
 matrix_transform_2d.hppOpenGL Mathematics (glm.g-truc.net)
 mixed_product.hppOpenGL Mathematics (glm.g-truc.net)
 multiple.hppOpenGL Mathematics (glm.g-truc.net)
 noise.hppOpenGL Mathematics (glm.g-truc.net)
 norm.hppOpenGL Mathematics (glm.g-truc.net)
 normal.hppOpenGL Mathematics (glm.g-truc.net)
 normalize_dot.hppOpenGL Mathematics (glm.g-truc.net)
 number_precision.hppOpenGL Mathematics (glm.g-truc.net)
 optimum_pow.hppOpenGL Mathematics (glm.g-truc.net)
 orthonormalize.hppOpenGL Mathematics (glm.g-truc.net)
 gtc/packing.hppOpenGL Mathematics (glm.g-truc.net)
 packing.hppOpenGL Mathematics (glm.g-truc.net)
 pages.doxy
 perpendicular.hppOpenGL Mathematics (glm.g-truc.net)
 polar_coordinates.hppOpenGL Mathematics (glm.g-truc.net)
 precision.hppOpenGL Mathematics (glm.g-truc.net)
 projection.hppOpenGL Mathematics (glm.g-truc.net)
 gtc/quaternion.hppOpenGL Mathematics (glm.g-truc.net)
 gtx/quaternion.hppOpenGL Mathematics (glm.g-truc.net)
 random.hppOpenGL Mathematics (glm.g-truc.net)
 range.hppOpenGL Mathematics (glm.g-truc.net)
 raw_data.hppOpenGL Mathematics (glm.g-truc.net)
 reciprocal.hppOpenGL Mathematics (glm.g-truc.net)
 rotate_normalized_axis.hppOpenGL Mathematics (glm.g-truc.net)
 rotate_vector.hppOpenGL Mathematics (glm.g-truc.net)
 round.hppOpenGL Mathematics (glm.g-truc.net)
 scalar_multiplication.hppOpenGL Mathematics (glm.g-truc.net)
 scalar_relational.hppOpenGL Mathematics (glm.g-truc.net)
 setup.hppOpenGL Mathematics (glm.g-truc.net)
 simd_mat4.hppOpenGL Mathematics (glm.g-truc.net)
 simd_quat.hppOpenGL Mathematics (glm.g-truc.net)
 simd_vec4.hppOpenGL Mathematics (glm.g-truc.net)
 spline.hppOpenGL Mathematics (glm.g-truc.net)
 std_based_type.hppOpenGL Mathematics (glm.g-truc.net)
 string_cast.hppOpenGL Mathematics (glm.g-truc.net)
 transform.hppOpenGL Mathematics (glm.g-truc.net)
 transform2.hppOpenGL Mathematics (glm.g-truc.net)
 trigonometric.hppOpenGL Mathematics (glm.g-truc.net)
 type_aligned.hppOpenGL Mathematics (glm.g-truc.net)
 type_float.hppOpenGL Mathematics (glm.g-truc.net)
 type_gentype.hppOpenGL Mathematics (glm.g-truc.net)
 type_half.hppOpenGL Mathematics (glm.g-truc.net)
 type_int.hppOpenGL Mathematics (glm.g-truc.net)
 type_mat.hppOpenGL Mathematics (glm.g-truc.net)
 type_mat2x2.hppOpenGL Mathematics (glm.g-truc.net)
 type_mat2x3.hppOpenGL Mathematics (glm.g-truc.net)
 type_mat2x4.hppOpenGL Mathematics (glm.g-truc.net)
 type_mat3x2.hppOpenGL Mathematics (glm.g-truc.net)
 type_mat3x3.hppOpenGL Mathematics (glm.g-truc.net)
 type_mat3x4.hppOpenGL Mathematics (glm.g-truc.net)
 type_mat4x2.hppOpenGL Mathematics (glm.g-truc.net)
 type_mat4x3.hppOpenGL Mathematics (glm.g-truc.net)
 type_mat4x4.hppOpenGL Mathematics (glm.g-truc.net)
 type_precision.hppOpenGL Mathematics (glm.g-truc.net)
 type_ptr.hppOpenGL Mathematics (glm.g-truc.net)
 type_vec.hppOpenGL Mathematics (glm.g-truc.net)
 type_vec1.hppOpenGL Mathematics (glm.g-truc.net)
 type_vec2.hppOpenGL Mathematics (glm.g-truc.net)
 type_vec3.hppOpenGL Mathematics (glm.g-truc.net)
 type_vec4.hppOpenGL Mathematics (glm.g-truc.net)
 ulp.hppOpenGL Mathematics (glm.g-truc.net)
 vec1.hppOpenGL Mathematics (glm.g-truc.net)
 vec2.hppOpenGL Mathematics (glm.g-truc.net)
 vec3.hppOpenGL Mathematics (glm.g-truc.net)
 vec4.hppOpenGL Mathematics (glm.g-truc.net)
 vector_angle.hppOpenGL Mathematics (glm.g-truc.net)
 vector_query.hppOpenGL Mathematics (glm.g-truc.net)
 vector_relational.hppOpenGL Mathematics (glm.g-truc.net)
 wrap.hppOpenGL Mathematics (glm.g-truc.net)
@@ -203,7 +198,7 @@ diff --git a/doc/api/ftv2cl.png b/doc/api/ftv2cl.png deleted file mode 100644 index 132f6577..00000000 Binary files a/doc/api/ftv2cl.png and /dev/null differ diff --git a/doc/api/ftv2mo.png b/doc/api/ftv2mo.png deleted file mode 100644 index 4bfb80f7..00000000 Binary files a/doc/api/ftv2mo.png and /dev/null differ diff --git a/doc/api/ftv2ns.png b/doc/api/ftv2ns.png deleted file mode 100644 index 72e3d71c..00000000 Binary files a/doc/api/ftv2ns.png and /dev/null differ diff --git a/doc/api/index.html b/doc/api/index.html index 5055de14..298508b3 100644 --- a/doc/api/index.html +++ b/doc/api/index.html @@ -3,8 +3,8 @@ - -GLM: OpenGL Mathematics + +0.9.6: OpenGL Mathematics @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -42,30 +40,29 @@
OpenGL Mathematics
-

OpenGL Mathematics (GLM) is a header only C++ mathematics library for graphics software based on the OpenGL Shading Language (GLSL) specification.

+

OpenGL Mathematics (GLM) is a header only C++ mathematics library for graphics software based on the OpenGL Shading Language (GLSL) specification.

GLM provides classes and functions designed and implemented with the same naming conventions and functionalities than GLSL so that when a programmer knows GLSL, he knows GLM as well which makes it really easy to use.

-

This project isn't limited to GLSL features. An extension system, based on the GLSL extension conventions, provides extended capabilities: matrix transformations, quaternions, half-based types, random numbers, procedural noise functions, etc...

-

This library works perfectly with OpenGL but it also ensures interoperability with third party libraries and SDKs. It is a good candidate for software rendering (Raytracing / Rasterisation), image processing, physic simulations and any context that requires a simple and convenient mathematics library.

-

GLM is written in C++98 but can take advantage of C++11 when supported by the compiler. It is a platform independent library with no dependence and officially supports the following compilers:

-
    -
  • Clang 2.6 and higher
  • -
  • CUDA 3.0 and higher
  • -
  • GCC 3.4 and higher
  • -
  • Intel C++ Composer XE 2013 and higher
  • -
  • LLVM 2.3 through GCC 4.2 front-end and higher
  • -
  • Visual Studio 2005 and higher
  • -
  • Any conform C++98 or C++11 compiler
  • +

    This project isn't limited to GLSL features. An extension system, based on the GLSL extension conventions, provides extended capabilities: matrix transformations, quaternions, half-based types, random numbers, noise, etc...

    +

    This library works perfectly with OpenGL but it also ensures interoperability with other third party libraries and SDK. It is a good candidate for software rendering (raytracing / rasterisation), image processing, physic simulations and any development context that requires a simple and convenient mathematics library.

    +

    GLM is written in C++98 but can take advantage of C++11 when supported by the compiler. It is a platform independent library with no dependence and it officially supports the following compilers:

    -
    Note
    The Doxygen-generated documentation will often state that a type or function is defined in a namespace that is a child of the glm namespace. Please ignore this; All publicly available types and functions can be accessed as a direct children of the glm namespace.
    -

    The source code is licenced under the MIT licence.

    +
    Note
    The Doxygen-generated documentation will often state that a type or function is defined in a namespace that is a child of the glm namespace. Please ignore this; All publicly available types and functions can be accessed as a direct children of the glm namespace.
    +

    The source code is licenced under the Happy Bunny License (Modified MIT) and MIT license.

    These pages are the API reference only. For more information about how to use GLM, please have a look at the manual.

    -

    Thanks for contributing to the project by submitting tickets for bug reports and feature requests. (SF.net account required). Any feedback is welcome at glm@g.nosp@m.-tru.nosp@m.c.net.

    +

    Thanks for contributing to the project by submitting tickets for bug reports and feature requests. Any feedback is welcome at glm@g.nosp@m.-tru.nosp@m.c.net.

diff --git a/doc/api/logo.png b/doc/api/logo.png new file mode 100644 index 00000000..80b5f9d4 Binary files /dev/null and b/doc/api/logo.png differ diff --git a/doc/api/modules.html b/doc/api/modules.html index 1e167949..776c6fe6 100644 --- a/doc/api/modules.html +++ b/doc/api/modules.html @@ -3,8 +3,8 @@ - -GLM: Modules + +0.9.6: Modules @@ -16,9 +16,9 @@ + @@ -26,13 +26,11 @@
-
GLM -  0.9.5 +
0.9.6
- + @@ -44,91 +42,97 @@
Here is a list of all modules:
[detail level 123]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
oGTC Extensions (Stable)Functions and types that the GLSL specification doesn't define, but useful to have for a C++ program
|oGLM_GTC_constantsAllow to perform bit operations on integer values
|oGLM_GTC_epsilonComparison functions for a user defined epsilon values
|oGLM_GTC_matrix_accessDefines functions to access rows or columns of a matrix easily
|oGLM_GTC_matrix_integerDefines a number of matrices with integer types
|oGLM_GTC_matrix_inverseDefines additional matrix inverting functions
|oGLM_GTC_matrix_transformDefines functions that generate common transformation matrices
|oGLM_GTC_noiseDefines 2D, 3D and 4D procedural noise functions Based on the work of Stefan Gustavson and Ashima Arts on "webgl-noise": https://github.com/ashima/webgl-noise Following Stefan Gustavson's paper "Simplex noise demystified": http://www.itn.liu.se/~stegu/simplexnoise/simplexnoise.pdf <glm/gtc/noise.hpp> need to be included to use these functionalities
|oGLM_GTC_packingThis extension provides a set of function to convert vertors to packed formats
|oGLM_GTC_quaternionDefines a templated quaternion type and several quaternion operations
|oGLM_GTC_randomGenerate random number from various distribution methods
|oGLM_GTC_reciprocalDefine secant, cosecant and cotangent functions
|oGLM_GTC_type_precisionDefines specific C++-based precision types
|oGLM_GTC_type_ptrHandles the interaction between pointers and vector, matrix types
|oGLM_GTC_ulpAllow the measurement of the accuracy of a function against a reference implementation
|oGLM_GTX_dual_quaternionDefines a templated dual-quaternion type and several dual-quaternion operations
|\GLM_GTX_rotate_normalized_axisQuaternions and matrices rotations around normalized axis
oGTX Extensions (Experimental)Functions and types that the GLSL specification doesn't define, but useful to have for a C++ program
|oGLM_GTX_associated_min_maxMin and max functions that return associated values not the compared onces
|oGLM_GTX_bitAllow to perform bit operations on integer values
|oGLM_GTX_closest_pointFind the point on a straight line which is the closet of a point
|oGLM_GTX_color_spaceRelated to RGB to HSV conversions and operations
|oGLM_GTX_color_space_YCoCgRGB to YCoCg conversions and operations
|oGLM_GTX_compatibilityProvide functions to increase the compatibility with Cg and HLSL languages
|oGLM_GTX_component_wiseOperations between components of a type
|oGLM_GTX_euler_anglesBuild matrices from Euler angles
|oGLM_GTX_extendExtend a position from a source to a position at a defined length
|oGLM_GTX_extented_min_maxMin and max functions for 3 to 4 parameters
|oGLM_GTX_fast_exponentialFast but less accurate implementations of exponential based functions
|oGLM_GTX_fast_square_rootFast but less accurate implementations of square root based functions
|oGLM_GTX_fast_trigonometryFast but less accurate implementations of trigonometric functions
|oGLM_GTX_gradient_paintFunctions that return the color of procedural gradient for specific coordinates
|oGLM_GTX_handed_coordinate_spaceTo know if a set of three basis vectors defines a right or left-handed coordinate system
|oGLM_GTX_inertiaCreate inertia matrices
|oGLM_GTX_integerAdd support for integer for core functions
|oGLM_GTX_intersectAdd intersection functions
|oGLM_GTX_ioStd::[w]ostream support for glm types
|oGLM_GTX_log_baseLogarithm for any base
|oGLM_GTX_matrix_cross_productBuild cross product matrices
|oGLM_GTX_matrix_interpolationAllows to directly interpolate two exiciting matrices
|oGLM_GTX_matrix_major_storageBuild matrices with specific matrix order, row or column
|oGLM_GTX_matrix_operationBuild diagonal matrices from vectors
|oGLM_GTX_matrix_queryQuery to evaluate matrix properties
|oGLM_GTX_mixed_producteMixed product of 3 vectors
|oGLM_GTX_multipleFind the closest number of a number multiple of other number
|oGLM_GTX_normVarious ways to compute vector norms
|oGLM_GTX_normalCompute the normal of a triangle
|oGLM_GTX_normalize_dotDot product of vectors that need to be normalize with a single square root
|oGLM_GTX_number_precisionDefined size types
|oGLM_GTX_optimum_powInteger exponentiation of power functions
|oGLM_GTX_orthonormalizeOrthonormalize matrices
|oGLM_GTX_perpendicularPerpendicular of a vector from other one
|oGLM_GTX_polar_coordinatesConversion from Euclidean space to polar space and revert
|oGLM_GTX_projectionProjection of a vector to other one
|oGLM_GTX_quaternionExtented quaternion types and functions
|oGLM_GTX_raw_dataProjection of a vector to other one
|oGLM_GTX_rotate_vectorFunction to directly rotate a vector
|oGLM_GTX_simd_mat4SIMD implementation of mat4 type
|oGLM_GTX_simd_quatSIMD implementation of quat type
|oGLM_GTX_splineSpline functions
|oGLM_GTX_std_based_typeAdds vector types based on STL value types
|oGLM_GTX_string_castSetup strings for GLM type values
|oGLM_GTX_transformAdd transformation matrices
|oGLM_GTX_transform2Add extra transformation matrices
|oGLM_GTX_vec1Add vec1, ivec1, uvec1 and bvec1 types
|oGLM_GTX_vector_angleCompute angle between vectors
|oGLM_GTX_vector_queryQuery informations of vector types
|\GLM_GTX_wrapWrapping mode of texture coordinates
oVIRTREV ExtensionsExtensions develop and maintain by Mathieu [matrem] Roumillac (http://www.opengl.org/discussion_boards/ubbthreads.php?ubb=showprofile&User=22660)
|\GLM_VIRTREV_xstream: xml like outputStreaming vector and matrix in a xml way
oGLM CoreThe core of GLM, which implements exactly and only the GLSL specification to the degree possible
|oCommon functionsThese all operate component-wise
|oExponential functionsThese all operate component-wise
|oGeometric functionsThese operate on vectors as vectors, not component-wise
|oInteger functionsThese all operate component-wise
|oMatrix functionsFor each of the following built-in matrix functions, there is both a single-precision floating point version, where all arguments and return values are single precision, and a double-precision floating version, where all arguments and return values are double precision
|oNoise functionsNoise functions are stochastic functions that can be used to increase visual complexity
|oFloating-Point Pack and Unpack FunctionsThese functions do not operate component-wise, rather as described in each case
|oAngle and Trigonometry FunctionsFunction parameters specified as angle are assumed to be in units of radians
|oVector Relational FunctionsRelational and equality operators (<, <=, >, >=, ==, !=) are defined to operate on scalars and produce scalar Boolean results
|oTypesThe standard types defined by the specification
||\Precision typesNon-GLSL types that are used to define precision-based types
|oPrecision typesNon-GLSL types that are used to define precision-based types
|\Template typesThe generic template types used as the basis for the core types
\Gtx_scalar_relational
 GTC Extensions (Stable)Functions and types that the GLSL specification doesn't define, but useful to have for a C++ program
 GLM_GTC_bitfieldAllow to perform bit operations on integer values
 GLM_GTC_constantsProvide a list of constants and precomputed useful values
 GLM_GTC_epsilonComparison functions for a user defined epsilon values
 GLM_GTC_integerAllow to perform bit operations on integer values
 GLM_GTC_matrix_accessDefines functions to access rows or columns of a matrix easily
 GLM_GTC_matrix_integerDefines a number of matrices with integer types
 GLM_GTC_matrix_inverseDefines additional matrix inverting functions
 GLM_GTC_matrix_transformDefines functions that generate common transformation matrices
 GLM_GTC_noiseDefines 2D, 3D and 4D procedural noise functions Based on the work of Stefan Gustavson and Ashima Arts on "webgl-noise": https://github.com/ashima/webgl-noise Following Stefan Gustavson's paper "Simplex noise demystified": http://www.itn.liu.se/~stegu/simplexnoise/simplexnoise.pdf <glm/gtc/noise.hpp> need to be included to use these functionalities
 GLM_GTC_packingThis extension provides a set of function to convert vertors to packed formats
 GLM_GTC_quaternionDefines a templated quaternion type and several quaternion operations
 GLM_GTC_randomGenerate random number from various distribution methods
 GLM_GTC_reciprocalDefine secant, cosecant and cotangent functions
 GLM_GTC_roundRounding value to specific boundings
 GLM_GTC_type_precisionDefines specific C++-based precision types
 GLM_GTC_type_ptrHandles the interaction between pointers and vector, matrix types
 GLM_GTC_ulpAllow the measurement of the accuracy of a function against a reference implementation
 GLM_GTC_vec1Add vec1, ivec1, uvec1 and bvec1 types
 GTX Extensions (Experimental)Functions and types that the GLSL specification doesn't define, but useful to have for a C++ program
 GLM_GTX_associated_min_maxMin and max functions that return associated values not the compared onces
 GLM_GTX_bitAllow to perform bit operations on integer values
 GLM_GTX_closest_pointFind the point on a straight line which is the closet of a point
 GLM_GTX_color_spaceRelated to RGB to HSV conversions and operations
 GLM_GTX_color_space_YCoCgRGB to YCoCg conversions and operations
 GLM_GTX_commonProvide functions to increase the compatibility with Cg and HLSL languages
 GLM_GTX_compatibilityProvide functions to increase the compatibility with Cg and HLSL languages
 GLM_GTX_component_wiseOperations between components of a type
 GLM_GTX_dual_quaternionDefines a templated dual-quaternion type and several dual-quaternion operations
 GLM_GTX_euler_anglesBuild matrices from Euler angles
 GLM_GTX_extendExtend a position from a source to a position at a defined length
 GLM_GTX_extented_min_maxMin and max functions for 3 to 4 parameters
 GLM_GTX_fast_exponentialFast but less accurate implementations of exponential based functions
 GLM_GTX_fast_square_rootFast but less accurate implementations of square root based functions
 GLM_GTX_fast_trigonometryFast but less accurate implementations of trigonometric functions
 GLM_GTX_gradient_paintFunctions that return the color of procedural gradient for specific coordinates
 GLM_GTX_handed_coordinate_spaceTo know if a set of three basis vectors defines a right or left-handed coordinate system
 GLM_GTX_integerAdd support for integer for core functions
 GLM_GTX_intersectAdd intersection functions
 GLM_GTX_ioStd::[w]ostream support for glm types
 GLM_GTX_log_baseLogarithm for any base
 GLM_GTX_matrix_cross_productBuild cross product matrices
 GLM_GTX_matrix_decomposeDecomposes a model matrix to translations, rotation and scale components
 GLM_GTX_matrix_interpolationAllows to directly interpolate two exiciting matrices
 GLM_GTX_matrix_major_storageBuild matrices with specific matrix order, row or column
 GLM_GTX_matrix_operationBuild diagonal matrices from vectors
 GLM_GTX_matrix_queryQuery to evaluate matrix properties
 GLM_GTX_matrix_transform_2dDefines functions that generate common 2d transformation matrices
 GLM_GTX_mixed_producteMixed product of 3 vectors
 GLM_GTX_multipleFind the closest number of a number multiple of other number
 GLM_GTX_normVarious ways to compute vector norms
 GLM_GTX_normalCompute the normal of a triangle
 GLM_GTX_normalize_dotDot product of vectors that need to be normalize with a single square root
 GLM_GTX_number_precisionDefined size types
 GLM_GTX_optimum_powInteger exponentiation of power functions
 GLM_GTX_orthonormalizeOrthonormalize matrices
 GLM_GTX_perpendicularPerpendicular of a vector from other one
 GLM_GTX_polar_coordinatesConversion from Euclidean space to polar space and revert
 GLM_GTX_projectionProjection of a vector to other one
 GLM_GTX_quaternionExtented quaternion types and functions
 GLM_GTX_rangeDefines begin and end for vectors and matrices
 GLM_GTX_raw_dataProjection of a vector to other one
 GLM_GTX_rotate_normalized_axisQuaternions and matrices rotations around normalized axis
 GLM_GTX_rotate_vectorFunction to directly rotate a vector
 GLM_GTX_scalar_relationalExtend a position from a source to a position at a defined length
 GLM_GTX_simd_mat4SIMD implementation of mat4 type
 GLM_GTX_simd_quatSIMD implementation of quat type
 GLM_GTX_simd_vec4SIMD implementation of vec4 type
 GLM_GTX_splineSpline functions
 GLM_GTX_std_based_typeAdds vector types based on STL value types
 GLM_GTX_string_castSetup strings for GLM type values
 GLM_GTX_transformAdd transformation matrices
 GLM_GTX_transform2Add extra transformation matrices
 GLM_GTX_type_alignedDefines aligned types
 GLM_GTX_vector_angleCompute angle between vectors
 GLM_GTX_vector_queryQuery informations of vector types
 GLM_GTX_wrapWrapping mode of texture coordinates
 GLM CoreThe core of GLM, which implements exactly and only the GLSL specification to the degree possible
 Common functionsThese all operate component-wise
 Exponential functionsThese all operate component-wise
 Geometric functionsThese operate on vectors as vectors, not component-wise
 Integer functionsThese all operate component-wise
 Matrix functionsFor each of the following built-in matrix functions, there is both a single-precision floating point version, where all arguments and return values are single precision, and a double-precision floating version, where all arguments and return values are double precision
 Noise functionsNoise functions are stochastic functions that can be used to increase visual complexity
 Floating-Point Pack and Unpack FunctionsThese functions do not operate component-wise, rather as described in each case
 Angle and Trigonometry FunctionsFunction parameters specified as angle are assumed to be in units of radians
 Vector Relational FunctionsRelational and equality operators (<, <=, >, >=, ==, !=) are defined to operate on scalars and produce scalar Boolean results
 TypesThe standard types defined by the specification
 Precision typesNon-GLSL types that are used to define precision-based types
 Precision typesNon-GLSL types that are used to define precision-based types
 Template typesThe generic template types used as the basis for the core types
@@ -136,7 +140,7 @@ diff --git a/doc/api/namespacemembers.html b/doc/api/namespacemembers.html deleted file mode 100644 index f7252794..00000000 --- a/doc/api/namespacemembers.html +++ /dev/null @@ -1,174 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-
Here is a list of all documented namespace members with links to the namespaces they belong to:
- -

- a -

-
- - - - diff --git a/doc/api/namespacemembers_0x62.html b/doc/api/namespacemembers_0x62.html deleted file mode 100644 index ebf1b176..00000000 --- a/doc/api/namespacemembers_0x62.html +++ /dev/null @@ -1,177 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-
Here is a list of all documented namespace members with links to the namespaces they belong to:
- -

- b -

-
- - - - diff --git a/doc/api/namespacemembers_0x63.html b/doc/api/namespacemembers_0x63.html deleted file mode 100644 index 6ca90fc7..00000000 --- a/doc/api/namespacemembers_0x63.html +++ /dev/null @@ -1,159 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-
Here is a list of all documented namespace members with links to the namespaces they belong to:
- -

- c -

-
- - - - diff --git a/doc/api/namespacemembers_0x64.html b/doc/api/namespacemembers_0x64.html deleted file mode 100644 index cc370307..00000000 --- a/doc/api/namespacemembers_0x64.html +++ /dev/null @@ -1,237 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-
Here is a list of all documented namespace members with links to the namespaces they belong to:
- -

- d -

-
- - - - diff --git a/doc/api/namespacemembers_0x65.html b/doc/api/namespacemembers_0x65.html deleted file mode 100644 index 2bcfecdc..00000000 --- a/doc/api/namespacemembers_0x65.html +++ /dev/null @@ -1,162 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-
Here is a list of all documented namespace members with links to the namespaces they belong to:
- -

- e -

-
- - - - diff --git a/doc/api/namespacemembers_0x66.html b/doc/api/namespacemembers_0x66.html deleted file mode 100644 index 481dd945..00000000 --- a/doc/api/namespacemembers_0x66.html +++ /dev/null @@ -1,411 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-
Here is a list of all documented namespace members with links to the namespaces they belong to:
- -

- f -

-
- - - - diff --git a/doc/api/namespacemembers_0x67.html b/doc/api/namespacemembers_0x67.html deleted file mode 100644 index bf26536a..00000000 --- a/doc/api/namespacemembers_0x67.html +++ /dev/null @@ -1,105 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-
Here is a list of all documented namespace members with links to the namespaces they belong to:
- -

- g -

-
- - - - diff --git a/doc/api/namespacemembers_0x68.html b/doc/api/namespacemembers_0x68.html deleted file mode 100644 index d765b386..00000000 --- a/doc/api/namespacemembers_0x68.html +++ /dev/null @@ -1,672 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-
Here is a list of all documented namespace members with links to the namespaces they belong to:
- -

- h -

-
- - - - diff --git a/doc/api/namespacemembers_0x69.html b/doc/api/namespacemembers_0x69.html deleted file mode 100644 index 83aeec83..00000000 --- a/doc/api/namespacemembers_0x69.html +++ /dev/null @@ -1,333 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-
Here is a list of all documented namespace members with links to the namespaces they belong to:
- -

- i -

-
- - - - diff --git a/doc/api/namespacemembers_0x6c.html b/doc/api/namespacemembers_0x6c.html deleted file mode 100644 index b14463b9..00000000 --- a/doc/api/namespacemembers_0x6c.html +++ /dev/null @@ -1,717 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-
Here is a list of all documented namespace members with links to the namespaces they belong to:
- -

- l -

-
- - - - diff --git a/doc/api/namespacemembers_0x6d.html b/doc/api/namespacemembers_0x6d.html deleted file mode 100644 index 38403d9f..00000000 --- a/doc/api/namespacemembers_0x6d.html +++ /dev/null @@ -1,783 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-
Here is a list of all documented namespace members with links to the namespaces they belong to:
- -

- m -

-
- - - - diff --git a/doc/api/namespacemembers_0x6e.html b/doc/api/namespacemembers_0x6e.html deleted file mode 100644 index 554400f9..00000000 --- a/doc/api/namespacemembers_0x6e.html +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-
Here is a list of all documented namespace members with links to the namespaces they belong to:
- -

- n -

-
- - - - diff --git a/doc/api/namespacemembers_0x6f.html b/doc/api/namespacemembers_0x6f.html deleted file mode 100644 index 20693e76..00000000 --- a/doc/api/namespacemembers_0x6f.html +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-
Here is a list of all documented namespace members with links to the namespaces they belong to:
- -

- o -

-
- - - - diff --git a/doc/api/namespacemembers_0x70.html b/doc/api/namespacemembers_0x70.html deleted file mode 100644 index 5fa2e501..00000000 --- a/doc/api/namespacemembers_0x70.html +++ /dev/null @@ -1,207 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-
Here is a list of all documented namespace members with links to the namespaces they belong to:
- -

- p -

-
- - - - diff --git a/doc/api/namespacemembers_0x71.html b/doc/api/namespacemembers_0x71.html deleted file mode 100644 index 4298146d..00000000 --- a/doc/api/namespacemembers_0x71.html +++ /dev/null @@ -1,105 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-
Here is a list of all documented namespace members with links to the namespaces they belong to:
- -

- q -

-
- - - - diff --git a/doc/api/namespacemembers_0x72.html b/doc/api/namespacemembers_0x72.html deleted file mode 100644 index bab3cc80..00000000 --- a/doc/api/namespacemembers_0x72.html +++ /dev/null @@ -1,180 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-
Here is a list of all documented namespace members with links to the namespaces they belong to:
- -

- r -

-
- - - - diff --git a/doc/api/namespacemembers_0x73.html b/doc/api/namespacemembers_0x73.html deleted file mode 100644 index 04d374e5..00000000 --- a/doc/api/namespacemembers_0x73.html +++ /dev/null @@ -1,180 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-
Here is a list of all documented namespace members with links to the namespaces they belong to:
- -

- s -

-
- - - - diff --git a/doc/api/namespacemembers_0x74.html b/doc/api/namespacemembers_0x74.html deleted file mode 100644 index 9e9592c9..00000000 --- a/doc/api/namespacemembers_0x74.html +++ /dev/null @@ -1,135 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-
Here is a list of all documented namespace members with links to the namespaces they belong to:
- -

- t -

-
- - - - diff --git a/doc/api/namespacemembers_0x75.html b/doc/api/namespacemembers_0x75.html deleted file mode 100644 index 43f6bea3..00000000 --- a/doc/api/namespacemembers_0x75.html +++ /dev/null @@ -1,309 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-
Here is a list of all documented namespace members with links to the namespaces they belong to:
- -

- u -

-
- - - - diff --git a/doc/api/namespacemembers_0x76.html b/doc/api/namespacemembers_0x76.html deleted file mode 100644 index 2e22cb8a..00000000 --- a/doc/api/namespacemembers_0x76.html +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-
Here is a list of all documented namespace members with links to the namespaces they belong to:
- -

- v -

-
- - - - diff --git a/doc/api/namespacemembers_0x77.html b/doc/api/namespacemembers_0x77.html deleted file mode 100644 index a93c00b7..00000000 --- a/doc/api/namespacemembers_0x77.html +++ /dev/null @@ -1,96 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-
Here is a list of all documented namespace members with links to the namespaces they belong to:
- -

- w -

-
- - - - diff --git a/doc/api/namespacemembers_0x79.html b/doc/api/namespacemembers_0x79.html deleted file mode 100644 index dc3932fa..00000000 --- a/doc/api/namespacemembers_0x79.html +++ /dev/null @@ -1,105 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-
Here is a list of all documented namespace members with links to the namespaces they belong to:
- -

- y -

-
- - - - diff --git a/doc/api/namespacemembers_0x7a.html b/doc/api/namespacemembers_0x7a.html deleted file mode 100644 index 7779046d..00000000 --- a/doc/api/namespacemembers_0x7a.html +++ /dev/null @@ -1,96 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-
Here is a list of all documented namespace members with links to the namespaces they belong to:
- -

- z -

-
- - - - diff --git a/doc/api/namespacemembers_func.html b/doc/api/namespacemembers_func.html deleted file mode 100644 index 680070c7..00000000 --- a/doc/api/namespacemembers_func.html +++ /dev/null @@ -1,173 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-  - -

- a -

-
- - - - diff --git a/doc/api/namespacemembers_func_0x62.html b/doc/api/namespacemembers_func_0x62.html deleted file mode 100644 index ae1b9df8..00000000 --- a/doc/api/namespacemembers_func_0x62.html +++ /dev/null @@ -1,119 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-  - -

- b -

-
- - - - diff --git a/doc/api/namespacemembers_func_0x63.html b/doc/api/namespacemembers_func_0x63.html deleted file mode 100644 index 2e008445..00000000 --- a/doc/api/namespacemembers_func_0x63.html +++ /dev/null @@ -1,158 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-  - -

- c -

-
- - - - diff --git a/doc/api/namespacemembers_func_0x64.html b/doc/api/namespacemembers_func_0x64.html deleted file mode 100644 index b949664c..00000000 --- a/doc/api/namespacemembers_func_0x64.html +++ /dev/null @@ -1,137 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-  - -

- d -

-
- - - - diff --git a/doc/api/namespacemembers_func_0x65.html b/doc/api/namespacemembers_func_0x65.html deleted file mode 100644 index e18175e2..00000000 --- a/doc/api/namespacemembers_func_0x65.html +++ /dev/null @@ -1,161 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-  - -

- e -

-
- - - - diff --git a/doc/api/namespacemembers_func_0x66.html b/doc/api/namespacemembers_func_0x66.html deleted file mode 100644 index 061a0aa1..00000000 --- a/doc/api/namespacemembers_func_0x66.html +++ /dev/null @@ -1,194 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-  - -

- f -

-
- - - - diff --git a/doc/api/namespacemembers_func_0x67.html b/doc/api/namespacemembers_func_0x67.html deleted file mode 100644 index de6a27c5..00000000 --- a/doc/api/namespacemembers_func_0x67.html +++ /dev/null @@ -1,104 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-  - -

- g -

-
- - - - diff --git a/doc/api/namespacemembers_func_0x68.html b/doc/api/namespacemembers_func_0x68.html deleted file mode 100644 index 0a27ea95..00000000 --- a/doc/api/namespacemembers_func_0x68.html +++ /dev/null @@ -1,107 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-  - -

- h -

-
- - - - diff --git a/doc/api/namespacemembers_func_0x69.html b/doc/api/namespacemembers_func_0x69.html deleted file mode 100644 index 83a26b84..00000000 --- a/doc/api/namespacemembers_func_0x69.html +++ /dev/null @@ -1,158 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-  - -

- i -

-
- - - - diff --git a/doc/api/namespacemembers_func_0x6c.html b/doc/api/namespacemembers_func_0x6c.html deleted file mode 100644 index fabaf69e..00000000 --- a/doc/api/namespacemembers_func_0x6c.html +++ /dev/null @@ -1,152 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-  - -

- l -

-
- - - - diff --git a/doc/api/namespacemembers_func_0x6d.html b/doc/api/namespacemembers_func_0x6d.html deleted file mode 100644 index 31f4fac3..00000000 --- a/doc/api/namespacemembers_func_0x6d.html +++ /dev/null @@ -1,182 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-  - -

- m -

-
- - - - diff --git a/doc/api/namespacemembers_func_0x6e.html b/doc/api/namespacemembers_func_0x6e.html deleted file mode 100644 index 5fd8f9a2..00000000 --- a/doc/api/namespacemembers_func_0x6e.html +++ /dev/null @@ -1,122 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-  - -

- n -

-
- - - - diff --git a/doc/api/namespacemembers_func_0x6f.html b/doc/api/namespacemembers_func_0x6f.html deleted file mode 100644 index b2f80e93..00000000 --- a/doc/api/namespacemembers_func_0x6f.html +++ /dev/null @@ -1,122 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-  - -

- o -

-
- - - - diff --git a/doc/api/namespacemembers_func_0x70.html b/doc/api/namespacemembers_func_0x70.html deleted file mode 100644 index 619d2480..00000000 --- a/doc/api/namespacemembers_func_0x70.html +++ /dev/null @@ -1,206 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-  - -

- p -

-
- - - - diff --git a/doc/api/namespacemembers_func_0x71.html b/doc/api/namespacemembers_func_0x71.html deleted file mode 100644 index 8515701b..00000000 --- a/doc/api/namespacemembers_func_0x71.html +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-  - -

- q -

-
- - - - diff --git a/doc/api/namespacemembers_func_0x72.html b/doc/api/namespacemembers_func_0x72.html deleted file mode 100644 index d4509cd9..00000000 --- a/doc/api/namespacemembers_func_0x72.html +++ /dev/null @@ -1,179 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-  - -

- r -

-
- - - - diff --git a/doc/api/namespacemembers_func_0x73.html b/doc/api/namespacemembers_func_0x73.html deleted file mode 100644 index 23081c32..00000000 --- a/doc/api/namespacemembers_func_0x73.html +++ /dev/null @@ -1,158 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-  - -

- s -

-
- - - - diff --git a/doc/api/namespacemembers_func_0x74.html b/doc/api/namespacemembers_func_0x74.html deleted file mode 100644 index 9c98b0bd..00000000 --- a/doc/api/namespacemembers_func_0x74.html +++ /dev/null @@ -1,134 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-  - -

- t -

-
- - - - diff --git a/doc/api/namespacemembers_func_0x75.html b/doc/api/namespacemembers_func_0x75.html deleted file mode 100644 index a9d16776..00000000 --- a/doc/api/namespacemembers_func_0x75.html +++ /dev/null @@ -1,173 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-  - -

- u -

-
- - - - diff --git a/doc/api/namespacemembers_func_0x76.html b/doc/api/namespacemembers_func_0x76.html deleted file mode 100644 index bb195a09..00000000 --- a/doc/api/namespacemembers_func_0x76.html +++ /dev/null @@ -1,95 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-  - -

- v -

-
- - - - diff --git a/doc/api/namespacemembers_func_0x79.html b/doc/api/namespacemembers_func_0x79.html deleted file mode 100644 index f1b60bc7..00000000 --- a/doc/api/namespacemembers_func_0x79.html +++ /dev/null @@ -1,104 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-  - -

- y -

-
- - - - diff --git a/doc/api/namespacemembers_func_0x7a.html b/doc/api/namespacemembers_func_0x7a.html deleted file mode 100644 index 084040a0..00000000 --- a/doc/api/namespacemembers_func_0x7a.html +++ /dev/null @@ -1,95 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-  - -

- z -

-
- - - - diff --git a/doc/api/namespacemembers_type.html b/doc/api/namespacemembers_type.html deleted file mode 100644 index 1ea6fb44..00000000 --- a/doc/api/namespacemembers_type.html +++ /dev/null @@ -1,139 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-  - -

- b -

-
- - - - diff --git a/doc/api/namespacemembers_type_0x64.html b/doc/api/namespacemembers_type_0x64.html deleted file mode 100644 index 7eddbe8e..00000000 --- a/doc/api/namespacemembers_type_0x64.html +++ /dev/null @@ -1,181 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-  - -

- d -

-
- - - - diff --git a/doc/api/namespacemembers_type_0x66.html b/doc/api/namespacemembers_type_0x66.html deleted file mode 100644 index 31cc8f8d..00000000 --- a/doc/api/namespacemembers_type_0x66.html +++ /dev/null @@ -1,298 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-  - -

- f -

-
- - - - diff --git a/doc/api/namespacemembers_type_0x68.html b/doc/api/namespacemembers_type_0x68.html deleted file mode 100644 index fe6c6d13..00000000 --- a/doc/api/namespacemembers_type_0x68.html +++ /dev/null @@ -1,646 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-  - -

- h -

-
- - - - diff --git a/doc/api/namespacemembers_type_0x69.html b/doc/api/namespacemembers_type_0x69.html deleted file mode 100644 index fedd19b7..00000000 --- a/doc/api/namespacemembers_type_0x69.html +++ /dev/null @@ -1,256 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-  - -

- i -

-
- - - - diff --git a/doc/api/namespacemembers_type_0x6c.html b/doc/api/namespacemembers_type_0x6c.html deleted file mode 100644 index 659a4e01..00000000 --- a/doc/api/namespacemembers_type_0x6c.html +++ /dev/null @@ -1,646 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-  - -

- l -

-
- - - - diff --git a/doc/api/namespacemembers_type_0x6d.html b/doc/api/namespacemembers_type_0x6d.html deleted file mode 100644 index 4c0e3f8b..00000000 --- a/doc/api/namespacemembers_type_0x6d.html +++ /dev/null @@ -1,682 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-  - -

- m -

-
- - - - diff --git a/doc/api/namespacemembers_type_0x71.html b/doc/api/namespacemembers_type_0x71.html deleted file mode 100644 index 43a34e84..00000000 --- a/doc/api/namespacemembers_type_0x71.html +++ /dev/null @@ -1,88 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-  - -

- q -

-
- - - - diff --git a/doc/api/namespacemembers_type_0x73.html b/doc/api/namespacemembers_type_0x73.html deleted file mode 100644 index 188b7248..00000000 --- a/doc/api/namespacemembers_type_0x73.html +++ /dev/null @@ -1,103 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-  - -

- s -

-
- - - - diff --git a/doc/api/namespacemembers_type_0x75.html b/doc/api/namespacemembers_type_0x75.html deleted file mode 100644 index 9bb5d7ea..00000000 --- a/doc/api/namespacemembers_type_0x75.html +++ /dev/null @@ -1,217 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-  - -

- u -

-
- - - - diff --git a/doc/api/namespacemembers_type_0x76.html b/doc/api/namespacemembers_type_0x76.html deleted file mode 100644 index 5b4d15f1..00000000 --- a/doc/api/namespacemembers_type_0x76.html +++ /dev/null @@ -1,94 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-  - -

- v -

-
- - - - diff --git a/doc/api/namespacemembers_type_0x77.html b/doc/api/namespacemembers_type_0x77.html deleted file mode 100644 index c3d11953..00000000 --- a/doc/api/namespacemembers_type_0x77.html +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-  - -

- w -

-
- - - - diff --git a/doc/api/namespaces.html b/doc/api/namespaces.html deleted file mode 100644 index 79a5cccf..00000000 --- a/doc/api/namespaces.html +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - -GLM: Namespace List - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - -
-
-
-
Namespace List
-
-
-
Here is a list of all documented namespaces with brief descriptions:
- - -
\NglmOpenGL Mathematics (glm.g-truc.net)
-
-
- - - - diff --git a/doc/api/pages.html b/doc/api/pages.html deleted file mode 100644 index 01070273..00000000 --- a/doc/api/pages.html +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - -GLM: Related Pages - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - -
-
-
-
Related Pages
-
-
-
Here is a list of all related documentation pages:
-
- - - - diff --git a/doc/glm.docx b/doc/glm.docx index c23cad5b..ef80499b 100644 Binary files a/doc/glm.docx and b/doc/glm.docx differ diff --git a/doc/glm.pdf b/doc/glm.pdf index 828f8811..dc00efee 100644 Binary files a/doc/glm.pdf and b/doc/glm.pdf differ diff --git a/doc/man.doxy b/doc/man.doxy index f9274071..f5d97fc7 100644 --- a/doc/man.doxy +++ b/doc/man.doxy @@ -1,11 +1,11 @@ -# Doxyfile 1.8.5 +# Doxyfile 1.8.8 # This file describes the settings to be used by the documentation system # doxygen (www.doxygen.org) for a project. -# +# # All text after a double hash (##) is considered a comment and is placed in # front of the TAG it is preceding. -# +# # All text after a single hash (#) is considered a comment and will be ignored. # The format is: # TAG = value [value, ...] @@ -32,13 +32,13 @@ DOXYFILE_ENCODING = UTF-8 # title of most generated pages and in a few other places. # The default value is: My Project. -PROJECT_NAME = GLM +PROJECT_NAME = 0.9.6 # The PROJECT_NUMBER tag can be used to enter a project or revision number. This # could be handy for archiving the generated documentation or if some version # control system is used. -PROJECT_NUMBER = 0.9.5 +PROJECT_NUMBER = # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer a @@ -51,7 +51,7 @@ PROJECT_BRIEF = # and the maximum width should not exceed 200 pixels. Doxygen will copy the logo # to the output directory. -PROJECT_LOGO = G:/Repository/glm/doc/logo.png +PROJECT_LOGO = E:/Source/G-Truc/glm/doc/logo.png # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path # into which the generated documentation will be written. If a relative path is @@ -70,15 +70,25 @@ OUTPUT_DIRECTORY = . CREATE_SUBDIRS = NO +# If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII +# characters to appear in the names of generated files. If set to NO, non-ASCII +# characters will be escaped, for example _xE3_x81_x84 will be used for Unicode +# U+3044. +# The default value is: NO. + +ALLOW_UNICODE_NAMES = NO + # The OUTPUT_LANGUAGE tag is used to specify the language in which all # documentation generated by doxygen is written. Doxygen will use this # information to generate all constant output in the proper language. -# Possible values are: Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese- -# Traditional, Croatian, Czech, Danish, Dutch, English, Esperanto, Farsi, -# Finnish, French, German, Greek, Hungarian, Italian, Japanese, Japanese-en, -# Korean, Korean-en, Latvian, Norwegian, Macedonian, Persian, Polish, -# Portuguese, Romanian, Russian, Serbian, Slovak, Slovene, Spanish, Swedish, -# Turkish, Ukrainian and Vietnamese. +# Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese, +# Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States), +# Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian, +# Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages), +# Korean, Korean-en (Korean with English messages), Latvian, Lithuanian, +# Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian, +# Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish, +# Ukrainian and Vietnamese. # The default value is: English. OUTPUT_LANGUAGE = English @@ -92,7 +102,7 @@ BRIEF_MEMBER_DESC = NO # If the REPEAT_BRIEF tag is set to YES doxygen will prepend the brief # description of a member or function before the detailed description -# +# # Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the # brief descriptions will be completely suppressed. # The default value is: YES. @@ -147,7 +157,7 @@ FULL_PATH_NAMES = NO # part of the path. The tag can be used to show relative paths in the file list. # If left blank the directory from which doxygen is run is used as the path to # strip. -# +# # Note that you can specify absolute paths here, but also relative paths, which # will be relative from the directory where doxygen is started. # This tag requires that the tag FULL_PATH_NAMES is set to YES. @@ -192,7 +202,7 @@ QT_AUTOBRIEF = NO # a brief description. This used to be the default behavior. The new default is # to treat a multi-line C++ comment block as a detailed description. Set this # tag to YES if you prefer the old behavior instead. -# +# # Note that setting this tag to YES also means that rational rose comments are # not recognized any more. # The default value is: NO. @@ -269,12 +279,15 @@ OPTIMIZE_OUTPUT_VHDL = NO # extension. Doxygen has a built-in mapping, but you can override or extend it # using this tag. The format is ext=language, where ext is a file extension, and # language is one of the parsers supported by doxygen: IDL, Java, Javascript, -# C#, C, C++, D, PHP, Objective-C, Python, Fortran, VHDL. For instance to make -# doxygen treat .inc files as Fortran files (default is PHP), and .f files as C -# (default is Fortran), use: inc=Fortran f=C. -# +# C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran: +# FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran: +# Fortran. In the later case the parser tries to guess whether the code is fixed +# or free formatted code, this is the default for Fortran type files), VHDL. For +# instance to make doxygen treat .inc files as Fortran files (default is PHP), +# and .f files as C (default is Fortran), use: inc=Fortran f=C. +# # Note For files without extension you can use no_extension as a placeholder. -# +# # Note that for custom extensions you also need to set FILE_PATTERNS otherwise # the files are not read by doxygen. @@ -353,7 +366,7 @@ SUBGROUPING = NO # are shown inside the group in which they are included (e.g. using \ingroup) # instead of on a separate page (for HTML and Man pages) or section (for LaTeX # and RTF). -# +# # Note that this feature does not work in combination with # SEPARATE_MEMBER_PAGES. # The default value is: NO. @@ -510,6 +523,13 @@ HIDE_SCOPE_NAMES = YES SHOW_INCLUDE_FILES = NO +# If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each +# grouped member an include statement to the documentation, telling the reader +# which file to include in order to use the member. +# The default value is: NO. + +SHOW_GROUPED_MEMB_INC = NO + # If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include # files with double quotes in the documentation rather than with sharp brackets. # The default value is: NO. @@ -531,7 +551,8 @@ SORT_MEMBER_DOCS = YES # If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief # descriptions of file, namespace and class members alphabetically by member -# name. If set to NO the members will appear in declaration order. +# name. If set to NO the members will appear in declaration order. Note that +# this will also influence the order of the classes in the class list. # The default value is: NO. SORT_BRIEF_DOCS = YES @@ -656,7 +677,7 @@ FILE_VERSION_FILTER = # that represents doxygen's defaults, run doxygen with the -l option. You can # optionally specify a file name after the option, if omitted DoxygenLayout.xml # will be used as the name of the layout file. -# +# # Note that if you run doxygen from a directory containing a file called # DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE # tag is left empty. @@ -669,8 +690,7 @@ LAYOUT_FILE = # to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info. # For LaTeX the style of the bibliography can be controlled using # LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the -# search path. Do not use file names with spaces, bibtex cannot handle them. See -# also \cite for info how to create references. +# search path. See also \cite for info how to create references. CITE_BIB_FILES = @@ -688,7 +708,7 @@ QUIET = NO # The WARNINGS tag can be used to turn on/off the warning messages that are # generated to standard error ( stderr) by doxygen. If WARNINGS is set to YES # this implies that the warnings are on. -# +# # Tip: Turn warnings on while writing the documentation. # The default value is: YES. @@ -776,7 +796,7 @@ RECURSIVE = YES # The EXCLUDE tag can be used to specify files and/or directories that should be # excluded from the INPUT source files. This way you can easily exclude a # subdirectory from a directory tree whose root is specified with the INPUT tag. -# +# # Note that relative paths are relative to the directory from which doxygen is # run. @@ -792,7 +812,7 @@ EXCLUDE_SYMLINKS = NO # If the value of the INPUT tag contains directories, you can use the # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude # certain files from those directories. -# +# # Note that the wildcards are matched against the file with absolute path, so to # exclude all test directories for example use the pattern */test/* @@ -803,7 +823,7 @@ EXCLUDE_PATTERNS = # output. The symbol name can be a fully qualified name, a word, or if the # wildcard * is used, a substring. Examples: ANamespace, AClass, # AClass::ANamespace, ANamespace::*Test -# +# # Note that the wildcards are matched against the file with absolute path, so to # exclude all test directories use the pattern */test/* @@ -838,14 +858,14 @@ IMAGE_PATH = # The INPUT_FILTER tag can be used to specify a program that doxygen should # invoke to filter for each input file. Doxygen will invoke the filter program # by executing (via popen()) the command: -# +# # -# +# # where is the value of the INPUT_FILTER tag, and is the # name of an input file. Doxygen will then use the output that the filter # program writes to standard output. If FILTER_PATTERNS is specified, this tag # will be ignored. -# +# # Note that the filter must not add or remove lines; it is applied before the # code is scanned, but not when the output code is generated. If lines are added # or removed, the anchors will not be placed correctly. @@ -889,7 +909,7 @@ USE_MDFILE_AS_MAINPAGE = # If the SOURCE_BROWSER tag is set to YES then a list of source files will be # generated. Documented entities will be cross-referenced with these sources. -# +# # Note: To get rid of all source code in the generated output, make sure that # also VERBATIM_HEADERS is set to NO. # The default value is: NO. @@ -944,16 +964,16 @@ SOURCE_TOOLTIPS = YES # source browser. The htags tool is part of GNU's global source tagging system # (see http://www.gnu.org/software/global/global.html). You will need version # 4.8.6 or higher. -# +# # To use it do the following: # - Install the latest version of global # - Enable SOURCE_BROWSER and USE_HTAGS in the config file # - Make sure the INPUT points to the root of the source tree # - Run doxygen as normal -# +# # Doxygen will invoke htags (and that will in turn invoke gtags), so these # tools must be available from the command line (i.e. in the search path). -# +# # The result: instead of the source browser generated by doxygen, the links to # source code will now point to the output of htags. # The default value is: NO. @@ -970,7 +990,7 @@ USE_HTAGS = NO VERBATIM_HEADERS = YES # If the CLANG_ASSISTED_PARSING tag is set to YES, then doxygen will use the -# clang parser (see: http://clang.llvm.org/) for more acurate parsing at the +# clang parser (see: http://clang.llvm.org/) for more accurate parsing at the # cost of reduced performance. This can be particularly helpful with template # rich C++ code for which doxygen's built-in parser lacks the necessary type # information. @@ -1041,7 +1061,7 @@ HTML_FILE_EXTENSION = .html # The HTML_HEADER tag can be used to specify a user-defined HTML header file for # each generated HTML page. If the tag is left blank doxygen will generate a # standard header. -# +# # To get valid HTML the header file that includes any scripts and style sheets # that doxygen needs, which is dependent on the configuration options used (e.g. # the setting GENERATE_TREEVIEW). It is highly recommended to start with a @@ -1080,13 +1100,15 @@ HTML_FOOTER = HTML_STYLESHEET = -# The HTML_EXTRA_STYLESHEET tag can be used to specify an additional user- -# defined cascading style sheet that is included after the standard style sheets +# The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined +# cascading style sheets that are included after the standard style sheets # created by doxygen. Using this option one can overrule certain style aspects. # This is preferred over using HTML_STYLESHEET since it does not replace the # standard style sheet and is therefor more robust against future updates. -# Doxygen will copy the style sheet file to the output directory. For an example -# see the documentation. +# Doxygen will copy the style sheet files to the output directory. +# Note: The order of the extra stylesheet files is of importance (e.g. the last +# stylesheet in the list overrules the setting of the previous ones in the +# list). For an example see the documentation. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_EXTRA_STYLESHEET = @@ -1209,7 +1231,7 @@ DOCSET_PUBLISHER_NAME = Publisher # index.hhp is a project file that can be read by Microsoft's HTML Help Workshop # (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on # Windows. -# +# # The HTML Help Workshop contains a compiler that can convert all HTML output # generated by doxygen into a single compiled HTML file (.chm). Compiled HTML # files are now used as the Windows 98 help format, and will replace the old @@ -1251,7 +1273,8 @@ GENERATE_CHI = NO CHM_INDEX_ENCODING = # The BINARY_TOC flag controls whether a binary table of contents is generated ( -# YES) or a normal table of contents ( NO) in the .chm file. +# YES) or a normal table of contents ( NO) in the .chm file. Furthermore it +# enables the Previous and Next buttons. # The default value is: NO. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. @@ -1377,7 +1400,7 @@ GENERATE_TREEVIEW = NO # The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that # doxygen will group on one line in the generated HTML documentation. -# +# # Note that a value of 0 will completely suppress the enum values from appearing # in the overview section. # Minimum value: 0, maximum value: 20, default value: 4. @@ -1411,7 +1434,7 @@ FORMULA_FONTSIZE = 10 # Use the FORMULA_TRANPARENT tag to determine whether or not the images # generated for formulas are transparent PNGs. Transparent PNGs are not # supported properly for IE 6.0, but are supported on all modern browsers. -# +# # Note that when changing this option you need to delete any form_*.png files in # the HTML output directory before the changes have effect. # The default value is: YES. @@ -1491,11 +1514,11 @@ SEARCHENGINE = NO # When the SERVER_BASED_SEARCH tag is enabled the search engine will be # implemented using a web server instead of a web client using Javascript. There -# are two flavours of web server based searching depending on the -# EXTERNAL_SEARCH setting. When disabled, doxygen will generate a PHP script for -# searching and an index file used by the script. When EXTERNAL_SEARCH is -# enabled the indexing and searching needs to be provided by external tools. See -# the section "External Indexing and Searching" for details. +# are two flavors of web server based searching depending on the EXTERNAL_SEARCH +# setting. When disabled, doxygen will generate a PHP script for searching and +# an index file used by the script. When EXTERNAL_SEARCH is enabled the indexing +# and searching needs to be provided by external tools. See the section +# "External Indexing and Searching" for details. # The default value is: NO. # This tag requires that the tag SEARCHENGINE is set to YES. @@ -1506,11 +1529,11 @@ SERVER_BASED_SEARCH = NO # which needs to be processed by an external indexer. Doxygen will invoke an # external search engine pointed to by the SEARCHENGINE_URL option to obtain the # search results. -# +# # Doxygen ships with an example indexer ( doxyindexer) and search engine # (doxysearch.cgi) which are based on the open source search engine library # Xapian (see: http://xapian.org/). -# +# # See the section "External Indexing and Searching" for details. # The default value is: NO. # This tag requires that the tag SEARCHENGINE is set to YES. @@ -1519,7 +1542,7 @@ EXTERNAL_SEARCH = NO # The SEARCHENGINE_URL should point to a search engine hosted by a web server # which will return the search results when EXTERNAL_SEARCH is enabled. -# +# # Doxygen ships with an example indexer ( doxyindexer) and search engine # (doxysearch.cgi) which are based on the open source search engine library # Xapian (see: http://xapian.org/). See the section "External Indexing and @@ -1573,7 +1596,7 @@ LATEX_OUTPUT = latex # The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be # invoked. -# +# # Note that when enabling USE_PDFLATEX this option is only used for generating # bitmaps for formulas in the HTML output, but not in the Makefile that is # written to the output directory. @@ -1620,21 +1643,23 @@ EXTRA_PACKAGES = # chapter. If it is left blank doxygen will generate a standard header. See # section "Doxygen usage" for information on how to let doxygen write the # default header to a separate file. -# +# # Note: Only use a user-defined header if you know what you are doing! The # following commands have a special meaning inside the header: $title, -# $datetime, $date, $doxygenversion, $projectname, $projectnumber. Doxygen will -# replace them by respectively the title of the page, the current date and time, -# only the current date, the version number of doxygen, the project name (see -# PROJECT_NAME), or the project number (see PROJECT_NUMBER). +# $datetime, $date, $doxygenversion, $projectname, $projectnumber, +# $projectbrief, $projectlogo. Doxygen will replace $title with the empy string, +# for the replacement values of the other commands the user is refered to +# HTML_HEADER. # This tag requires that the tag GENERATE_LATEX is set to YES. LATEX_HEADER = # The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for the # generated LaTeX document. The footer should contain everything after the last -# chapter. If it is left blank doxygen will generate a standard footer. -# +# chapter. If it is left blank doxygen will generate a standard footer. See +# LATEX_HEADER for more information on how to generate a default footer and what +# special commands can be used inside the footer. +# # Note: Only use a user-defined footer if you know what you are doing! # This tag requires that the tag GENERATE_LATEX is set to YES. @@ -1657,7 +1682,7 @@ LATEX_EXTRA_FILES = PDF_HYPERLINKS = NO -# If the LATEX_PDFLATEX tag is set to YES, doxygen will use pdflatex to generate +# If the USE_PDFLATEX tag is set to YES, doxygen will use pdflatex to generate # the PDF file directly from the LaTeX files. Set this option to YES to get a # higher quality PDF documentation. # The default value is: YES. @@ -1683,7 +1708,7 @@ LATEX_HIDE_INDICES = NO # If the LATEX_SOURCE_CODE tag is set to YES then doxygen will include source # code with syntax highlighting in the LaTeX output. -# +# # Note that which sources are shown also depends on other settings such as # SOURCE_BROWSER. # The default value is: NO. @@ -1731,7 +1756,7 @@ COMPACT_RTF = NO # output) instead of page references. This makes the output suitable for online # browsing using Word or some other Word compatible readers that support those # fields. -# +# # Note: WordPad (write) and others do not support links. # The default value is: NO. # This tag requires that the tag GENERATE_RTF is set to YES. @@ -1741,7 +1766,7 @@ RTF_HYPERLINKS = YES # Load stylesheet definitions from file. Syntax is similar to doxygen's config # file, i.e. a series of assignments. You only have to provide replacements, # missing definitions are set to their default value. -# +# # See also section "Doxygen usage" for information on how to generate the # default style sheet that doxygen normally uses. # This tag requires that the tag GENERATE_RTF is set to YES. @@ -1783,6 +1808,13 @@ MAN_OUTPUT = man MAN_EXTENSION = .3 +# The MAN_SUBDIR tag determines the name of the directory created within +# MAN_OUTPUT in which the man pages are placed. If defaults to man followed by +# MAN_EXTENSION with the initial . removed. +# This tag requires that the tag GENERATE_MAN is set to YES. + +MAN_SUBDIR = + # If the MAN_LINKS tag is set to YES and doxygen generates man output, then it # will generate one additional man file for each entity documented in the real # man page(s). These additional files only source the real man page, but without @@ -1810,18 +1842,6 @@ GENERATE_XML = NO XML_OUTPUT = xml -# The XML_SCHEMA tag can be used to specify a XML schema, which can be used by a -# validating XML parser to check the syntax of the XML files. -# This tag requires that the tag GENERATE_XML is set to YES. - -XML_SCHEMA = - -# The XML_DTD tag can be used to specify a XML DTD, which can be used by a -# validating XML parser to check the syntax of the XML files. -# This tag requires that the tag GENERATE_XML is set to YES. - -XML_DTD = - # If the XML_PROGRAMLISTING tag is set to YES doxygen will dump the program # listings (including syntax highlighting and cross-referencing information) to # the XML output. Note that enabling this will significantly increase the size @@ -1849,6 +1869,15 @@ GENERATE_DOCBOOK = NO DOCBOOK_OUTPUT = docbook +# If the DOCBOOK_PROGRAMLISTING tag is set to YES doxygen will include the +# program listings (including syntax highlighting and cross-referencing +# information) to the DOCBOOK output. Note that enabling this will significantly +# increase the size of the DOCBOOK output. +# The default value is: NO. +# This tag requires that the tag GENERATE_DOCBOOK is set to YES. + +DOCBOOK_PROGRAMLISTING = NO + #--------------------------------------------------------------------------- # Configuration options for the AutoGen Definitions output #--------------------------------------------------------------------------- @@ -1867,7 +1896,7 @@ GENERATE_AUTOGEN_DEF = NO # If the GENERATE_PERLMOD tag is set to YES doxygen will generate a Perl module # file that captures the structure of the code including all documentation. -# +# # Note that this feature is still experimental and incomplete at the moment. # The default value is: NO. @@ -1968,9 +1997,9 @@ PREDEFINED = EXPAND_AS_DEFINED = # If the SKIP_FUNCTION_MACROS tag is set to YES then doxygen's preprocessor will -# remove all refrences to function-like macros that are alone on a line, have an -# all uppercase name, and do not end with a semicolon. Such function macros are -# typically used for boiler-plate code, and will confuse the parser if not +# remove all references to function-like macros that are alone on a line, have +# an all uppercase name, and do not end with a semicolon. Such function macros +# are typically used for boiler-plate code, and will confuse the parser if not # removed. # The default value is: YES. # This tag requires that the tag ENABLE_PREPROCESSING is set to YES. @@ -1990,7 +2019,7 @@ SKIP_FUNCTION_MACROS = YES # where loc1 and loc2 can be relative or absolute paths or URLs. See the # section "Linking to external documentation" for more information about the use # of tag files. -# Note: Each tag file must have an unique name (where the name does NOT include +# Note: Each tag file must have a unique name (where the name does NOT include # the path). If a tag file is not located in the directory in which doxygen is # run, you must also specify the path to the tagfile here. @@ -2050,6 +2079,13 @@ CLASS_DIAGRAMS = YES MSCGEN_PATH = +# You can include diagrams made with dia in doxygen documentation. Doxygen will +# then run dia to produce the diagram and insert it in the documentation. The +# DIA_PATH tag allows you to specify the directory where the dia binary resides. +# If left empty dia is assumed to be found in the default search path. + +DIA_PATH = + # If set to YES, the inheritance and collaboration graphs will hide inheritance # and usage relations if the target is undocumented or is not a class. # The default value is: YES. @@ -2075,7 +2111,7 @@ HAVE_DOT = NO DOT_NUM_THREADS = 0 -# When you want a differently looking font n the dot files that doxygen +# When you want a differently looking font in the dot files that doxygen # generates you can specify the font name using DOT_FONTNAME. You need to make # sure dot is able to find the font, which can be done by putting it in a # standard location or by setting the DOTFONTPATH environment variable or by @@ -2083,7 +2119,7 @@ DOT_NUM_THREADS = 0 # The default value is: Helvetica. # This tag requires that the tag HAVE_DOT is set to YES. -DOT_FONTNAME = FreeSans +DOT_FONTNAME = # The DOT_FONTSIZE tag can be used to set the size (in points) of the font of # dot graphs. @@ -2172,7 +2208,7 @@ INCLUDED_BY_GRAPH = YES # If the CALL_GRAPH tag is set to YES then doxygen will generate a call # dependency graph for every global function or class method. -# +# # Note that enabling this option will significantly increase the time of a run. # So in most cases it will be better to enable call graphs for selected # functions only using the \callgraph command. @@ -2183,7 +2219,7 @@ CALL_GRAPH = YES # If the CALLER_GRAPH tag is set to YES then doxygen will generate a caller # dependency graph for every global function or class method. -# +# # Note that enabling this option will significantly increase the time of a run. # So in most cases it will be better to enable caller graphs for selected # functions only using the \callergraph command. @@ -2221,7 +2257,7 @@ DOT_IMAGE_FORMAT = png # If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to # enable generation of interactive SVG images that allow zooming and panning. -# +# # Note that this requires a modern browser other than Internet Explorer. Tested # and working are Firefox, Chrome, Safari, and Opera. # Note: For IE 9+ you need to set HTML_FILE_EXTENSION to xhtml in order to make @@ -2250,6 +2286,21 @@ DOTFILE_DIRS = MSCFILE_DIRS = +# The DIAFILE_DIRS tag can be used to specify one or more directories that +# contain dia files that are included in the documentation (see the \diafile +# command). + +DIAFILE_DIRS = + +# When using plantuml, the PLANTUML_JAR_PATH tag should be used to specify the +# path where java can find the plantuml.jar file. If left blank, it is assumed +# PlantUML is not used or called during a preprocessing step. Doxygen will +# generate a warning when it encounters a \startuml command in this case and +# will not generate output for the diagram. +# This tag requires that the tag HAVE_DOT is set to YES. + +PLANTUML_JAR_PATH = + # The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of nodes # that will be shown in the graph. If the number of nodes in a graph becomes # larger than this value, doxygen will truncate the graph, which is visualized @@ -2277,7 +2328,7 @@ MAX_DOT_GRAPH_DEPTH = 1000 # Set the DOT_TRANSPARENT tag to YES to generate images with a transparent # background. This is disabled by default, because dot on Windows does not seem # to support this out of the box. -# +# # Warning: Depending on the platform used, enabling this option may lead to # badly anti-aliased labels on the edges of a graph (i.e. they become hard to # read). diff --git a/doc/pages.doxy b/doc/pages.doxy index bb29ac85..d91b5939 100644 --- a/doc/pages.doxy +++ b/doc/pages.doxy @@ -1,55 +1,32 @@ /*! @mainpage OpenGL Mathematics - OpenGL Mathematics (GLM) is a header only C++ mathematics library for graphics software based on the OpenGL Shading Language (GLSL) specification. - + OpenGL Mathematics (GLM) is a header only C++ mathematics library for graphics software based on the OpenGL Shading Language (GLSL) specification. + GLM provides classes and functions designed and implemented with the same naming conventions and functionalities than GLSL so that when a programmer knows GLSL, he knows GLM as well which makes it really easy to use. - - This project isn't limited to GLSL features. An extension system, based on the GLSL extension conventions, provides extended capabilities: matrix transformations, quaternions, half-based types, random numbers, procedural noise functions, etc... - - This library works perfectly with OpenGL but it also ensures interoperability with third party libraries and SDKs. - It is a good candidate for software rendering (Raytracing / Rasterisation), image processing, physic simulations and any context that requires a simple and convenient mathematics library. - GLM is written in C++98 but can take advantage of C++11 when supported by the compiler. It is a platform independent library with no dependence and officially supports the following compilers: - - Clang 2.6 and higher - - CUDA 3.0 and higher - - GCC 3.4 and higher - - Intel C++ Composer XE 2013 and higher - - LLVM 2.3 through GCC 4.2 front-end and higher - - Visual Studio 2005 and higher - - Any conform C++98 or C++11 compiler + This project isn't limited to GLSL features. An extension system, based on the GLSL extension conventions, provides extended capabilities: matrix transformations, quaternions, half-based types, random numbers, noise, etc... + + This library works perfectly with OpenGL but it also ensures interoperability with other third party libraries and SDK. It is a good candidate for software rendering (raytracing / rasterisation), image processing, physic simulations and any development context that requires a simple and convenient mathematics library. + + GLM is written in C++98 but can take advantage of C++11 when supported by the compiler. It is a platform independent library with no dependence and it officially supports the following compilers: + - Apple Clang 4.0 and higher + - GCC 4.2 and higher + - LLVM 3.0 and higher + - Intel C++ Composer XE 2013 and higher + - Visual Studio 2010 and higher + - CUDA 4.0 and higher (experimental) + - Any conform C++98 compiler @note The Doxygen-generated documentation will often state that a type or function is defined in a namespace that is a child of the @link glm glm @endlink namespace. Please ignore this; All publicly available types and functions can be accessed as a direct children of the glm namespace. - The source code is licenced under the MIT licence. + The source code is licenced under the Happy Bunny License (Modified MIT) and MIT license. These pages are the API reference only. For more information about how to use GLM, please have a look at the manual. - Thanks for contributing to the project by submitting tickets for bug reports and feature requests. - (SF.net account required). Any feedback is welcome at glm@g-truc.net. -**/ - -/*! - @page pg_differences Differences between GLSL and GLM core - - GLM comes very close to replicating GLSL, but it is not exact. Here is a list of - differences between GLM and GLSL: - -
    -
  • - Precision qualifiers. In GLSL numeric types can have qualifiers that define - the precision of that type. While OpenGL's GLSL ignores these qualifiers, OpenGL - ES's version of GLSL uses them. - - C++ has no language equivalent to precision qualifiers. Instead, GLM provides - a set of typedefs for each kind of precision qualifier and type. These types can - be found in @ref core_precision "their own section". - - Functions that take types tend to be templated on those types, so they can - take these qualified types just as well as the regular ones. -
  • -
+ Thanks for contributing to the project by submitting tickets for bug reports and feature requests. + Any feedback is welcome at glm@g-truc.net. **/ diff --git a/glm/common.hpp b/glm/common.hpp index b22e11b0..8f1c3171 100644 --- a/glm/common.hpp +++ b/glm/common.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE diff --git a/glm/detail/_features.hpp b/glm/detail/_features.hpp index 936672fd..51eda577 100644 --- a/glm/detail/_features.hpp +++ b/glm/detail/_features.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -21,7 +25,7 @@ /// THE SOFTWARE. /// /// @ref core -/// @file glm/core/_features.hpp +/// @file glm/detail/_features.hpp /// @date 2013-02-20 / 2013-02-20 /// @author Christophe Riccio /////////////////////////////////////////////////////////////////////////////////// @@ -280,7 +284,7 @@ # define GLM_CXX11_STATIC_ASSERT # endif -#elif(GLM_COMPILER & GLM_COMPILER_CLANG) +#elif(GLM_COMPILER & (GLM_COMPILER_APPLE_CLANG | GLM_COMPILER_LLVM)) # if(__has_feature(cxx_exceptions)) # define GLM_CXX98_EXCEPTIONS # endif @@ -421,4 +425,4 @@ # define GLM_CXX11_VARIADIC_TEMPLATES # endif -#endif//(GLM_COMPILER & GLM_COMPILER_CLANG) +#endif//(GLM_COMPILER & (GLM_COMPILER_APPLE_CLANG | GLM_COMPILER_LLVM)) diff --git a/glm/detail/_fixes.hpp b/glm/detail/_fixes.hpp index ce13bb1b..6185dcbb 100644 --- a/glm/detail/_fixes.hpp +++ b/glm/detail/_fixes.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -21,7 +25,7 @@ /// THE SOFTWARE. /// /// @ref core -/// @file glm/core/_fixes.hpp +/// @file glm/detail/_fixes.hpp /// @date 2011-02-21 / 2011-11-22 /// @author Christophe Riccio /////////////////////////////////////////////////////////////////////////////////// diff --git a/glm/detail/_literals.hpp b/glm/detail/_literals.hpp deleted file mode 100644 index 82220874..00000000 --- a/glm/detail/_literals.hpp +++ /dev/null @@ -1,48 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////// -/// OpenGL Mathematics (glm.g-truc.net) -/// -/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/// Permission is hereby granted, free of charge, to any person obtaining a copy -/// of this software and associated documentation files (the "Software"), to deal -/// in the Software without restriction, including without limitation the rights -/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -/// copies of the Software, and to permit persons to whom the Software is -/// furnished to do so, subject to the following conditions: -/// -/// The above copyright notice and this permission notice shall be included in -/// all copies or substantial portions of the Software. -/// -/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -/// THE SOFTWARE. -/// -/// @ref core -/// @file glm/core/_literals.hpp -/// @date 2013-05-06 / 2013-05-06 -/// @author Christophe Riccio -/////////////////////////////////////////////////////////////////////////////////// - -#pragma once - -namespace glm -{ -#define GLM_CXX11_USER_LITERALS -#ifdef GLM_CXX11_USER_LITERALS -/* - GLM_FUNC_QUALIFIER detail::half operator "" _h(long double const s) - { - return detail::half(s); - } - - GLM_FUNC_QUALIFIER float operator "" _f(long double const s) - { - return static_cast(s); - } -*/ -#endif//GLM_CXX11_USER_LITERALS - -}//namespace glm diff --git a/glm/detail/_noise.hpp b/glm/detail/_noise.hpp index 291c6030..94c835d5 100644 --- a/glm/detail/_noise.hpp +++ b/glm/detail/_noise.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -28,6 +32,11 @@ #pragma once +#include "../vec2.hpp" +#include "../vec3.hpp" +#include "../vec4.hpp" +#include "../common.hpp" + namespace glm{ namespace detail { diff --git a/glm/detail/_swizzle.hpp b/glm/detail/_swizzle.hpp index d52b1807..3edf6cb2 100644 --- a/glm/detail/_swizzle.hpp +++ b/glm/detail/_swizzle.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -21,7 +25,7 @@ /// THE SOFTWARE. /// /// @ref core -/// @file glm/core/_swizzle.hpp +/// @file glm/detail/_swizzle.hpp /// @date 2006-04-20 / 2011-02-16 /// @author Christophe Riccio /////////////////////////////////////////////////////////////////////////////////// diff --git a/glm/detail/_swizzle_func.hpp b/glm/detail/_swizzle_func.hpp index a3f6993c..7d725e10 100644 --- a/glm/detail/_swizzle_func.hpp +++ b/glm/detail/_swizzle_func.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -21,7 +25,7 @@ /// THE SOFTWARE. /// /// @ref core -/// @file glm/core/_swizzle_func.hpp +/// @file glm/detail/_swizzle_func.hpp /// @date 2011-10-16 / 2011-10-16 /// @author Christophe Riccio /////////////////////////////////////////////////////////////////////////////////// diff --git a/glm/detail/_vectorize.hpp b/glm/detail/_vectorize.hpp index 9604e695..8eea6b87 100644 --- a/glm/detail/_vectorize.hpp +++ b/glm/detail/_vectorize.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -21,7 +25,7 @@ /// THE SOFTWARE. /// /// @ref core -/// @file glm/core/_vectorize.hpp +/// @file glm/detail/_vectorize.hpp /// @date 2011-10-14 / 2011-10-14 /// @author Christophe Riccio /////////////////////////////////////////////////////////////////////////////////// diff --git a/glm/detail/dummy.cpp b/glm/detail/dummy.cpp index b219079b..8392ede9 100644 --- a/glm/detail/dummy.cpp +++ b/glm/detail/dummy.cpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -185,7 +189,34 @@ glm::vec3 lighting return Color; } */ + + +template class vecType> +T normalizeDotA(vecType const & x, vecType const & y) +{ + return glm::dot(x, y) * glm::inversesqrt(glm::dot(x, x) * glm::dot(y, y)); +} + +#define GLM_TEMPLATE_GENTYPE typename T, glm::precision P, template class + +template +T normalizeDotB(vecType const & x, vecType const & y) +{ + return glm::dot(x, y) * glm::inversesqrt(glm::dot(x, x) * glm::dot(y, y)); +} + +template +typename vecType::value_type normalizeDotC(vecType const & a, vecType const & b) +{ + return glm::dot(a, b) * glm::inversesqrt(glm::dot(a, a) * glm::dot(b, b)); +} + int main() { + glm::vec4 v(1); + float a = normalizeDotA(v, v); + float b = normalizeDotB(v, v); + float c = normalizeDotC(v, v); + return 0; } diff --git a/glm/detail/func_common.hpp b/glm/detail/func_common.hpp index 97e64ebe..0cea4942 100644 --- a/glm/detail/func_common.hpp +++ b/glm/detail/func_common.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -21,7 +25,7 @@ /// THE SOFTWARE. /// /// @ref core -/// @file glm/core/func_common.hpp +/// @file glm/detail/func_common.hpp /// @date 2008-03-08 / 2010-01-26 /// @author Christophe Riccio /// diff --git a/glm/detail/func_common.inl b/glm/detail/func_common.inl index 9c55c7a1..cd04085e 100644 --- a/glm/detail/func_common.inl +++ b/glm/detail/func_common.inl @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -21,7 +25,7 @@ /// THE SOFTWARE. /// /// @ref core -/// @file glm/core/func_common.inl +/// @file glm/detail/func_common.inl /// @date 2008-08-03 / 2011-06-15 /// @author Christophe Riccio /////////////////////////////////////////////////////////////////////////////////// @@ -128,6 +132,46 @@ namespace detail return a ? y : x; } }; + + template class vecType, bool isFloat = true, bool isSigned = true> + struct compute_sign + { + GLM_FUNC_QUALIFIER static vecType call(vecType const & x) + { + return vecType(glm::lessThan(vecType(0), x)) - vecType(glm::lessThan(x, vecType(0))); + } + }; + + template class vecType> + struct compute_sign + { + GLM_FUNC_QUALIFIER static vecType call(vecType const & x) + { + return vecType(glm::greaterThan(x , vecType(0))); + } + }; + + template class vecType> + struct compute_sign + { + GLM_FUNC_QUALIFIER static vecType call(vecType const & x) + { + T const Shift(static_cast(sizeof(T) * 8 - 1)); + vecType const y(vecType::type, P>(-x) >> typename make_unsigned::type(Shift)); + + return (x >> Shift) | y; + } + }; + + template class vecType, typename genType, bool isFloat = true> + struct compute_mod + { + GLM_FUNC_QUALIFIER static vecType call(vecType const & a, genType const & b) + { + GLM_STATIC_ASSERT(std::numeric_limits::is_iec559, "'mod' only accept floating-point inputs. Include for integer inputs."); + return a - b * floor(a / b); + } + }; }//namespace detail // abs @@ -156,16 +200,20 @@ namespace detail GLM_FUNC_QUALIFIER genFIType sign(genFIType x) { GLM_STATIC_ASSERT( - std::numeric_limits::is_iec559 || - (std::numeric_limits::is_signed && std::numeric_limits::is_integer), "'sign' only accept signed inputs"); + std::numeric_limits::is_iec559 || (std::numeric_limits::is_signed && std::numeric_limits::is_integer), + "'sign' only accept signed inputs"); - return genFIType(genFIType(0) < x) - (x < genFIType(0)); + return detail::compute_sign::is_iec559>::call(tvec1(x)).x; } template class vecType> GLM_FUNC_QUALIFIER vecType sign(vecType const & x) { - return detail::functor1::call(sign, x); + GLM_STATIC_ASSERT( + std::numeric_limits::is_iec559 || (std::numeric_limits::is_signed && std::numeric_limits::is_integer), + "'sign' only accept signed inputs"); + + return detail::compute_sign::is_iec559>::call(x); } // floor @@ -296,15 +344,13 @@ namespace detail template class vecType> GLM_FUNC_QUALIFIER vecType mod(vecType const & x, T y) { - GLM_STATIC_ASSERT(std::numeric_limits::is_iec559, "'mod' only accept floating-point inputs"); - return x - y * floor(x / y); + return detail::compute_mod::is_iec559>::call(x, y); } template class vecType> GLM_FUNC_QUALIFIER vecType mod(vecType const & x, vecType const & y) { - GLM_STATIC_ASSERT(std::numeric_limits::is_iec559, "'mod' only accept floating-point inputs"); - return x - y * floor(x / y); + return detail::compute_mod, std::numeric_limits::is_iec559>::call(x, y); } // modf @@ -470,7 +516,7 @@ namespace detail { GLM_STATIC_ASSERT(std::numeric_limits::is_iec559, "'smoothstep' only accept floating-point inputs"); - genType tmp = clamp((x - edge0) / (edge1 - edge0), genType(0), genType(1)); + genType const tmp(clamp((x - edge0) / (edge1 - edge0), genType(0), genType(1))); return tmp * tmp * (genType(3) - genType(2) * tmp); } @@ -479,7 +525,7 @@ namespace detail { GLM_STATIC_ASSERT(std::numeric_limits::is_iec559, "'smoothstep' only accept floating-point inputs"); - vecType tmp = clamp((x - edge0) / (edge1 - edge0), static_cast(0), static_cast(1)); + vecType const tmp(clamp((x - edge0) / (edge1 - edge0), static_cast(0), static_cast(1))); return tmp * tmp * (static_cast(3) - static_cast(2) * tmp); } @@ -488,32 +534,35 @@ namespace detail { GLM_STATIC_ASSERT(std::numeric_limits::is_iec559, "'smoothstep' only accept floating-point inputs"); - vecType tmp = clamp((x - edge0) / (edge1 - edge0), static_cast(0), static_cast(1)); + vecType const tmp(clamp((x - edge0) / (edge1 - edge0), static_cast(0), static_cast(1))); return tmp * tmp * (static_cast(3) - static_cast(2) * tmp); } - // TODO: Not working on MinGW... - template - GLM_FUNC_QUALIFIER bool isnan(genType x) - { - GLM_STATIC_ASSERT(std::numeric_limits::is_iec559, "'isnan' only accept floating-point inputs"); +# if GLM_HAS_CXX11_STL + using std::isnan; +# else + template + GLM_FUNC_QUALIFIER bool isnan(genType x) + { + GLM_STATIC_ASSERT(std::numeric_limits::is_iec559, "'isnan' only accept floating-point inputs"); -# if GLM_LANG & GLM_LANG_CXX11_FLAG - return std::isnan(x); -# elif GLM_COMPILER & (GLM_COMPILER_VC | GLM_COMPILER_INTEL) - return _isnan(x) != 0; -# elif GLM_COMPILER & (GLM_COMPILER_GCC | GLM_COMPILER_CLANG) -# if GLM_PLATFORM & GLM_PLATFORM_ANDROID && __cplusplus < 201103L +# if GLM_LANG & GLM_LANG_CXX11_FLAG + return std::isnan(x); +# elif GLM_COMPILER & (GLM_COMPILER_VC | GLM_COMPILER_INTEL) return _isnan(x) != 0; +# elif GLM_COMPILER & (GLM_COMPILER_GCC | (GLM_COMPILER_APPLE_CLANG | GLM_COMPILER_LLVM)) +# if GLM_PLATFORM & GLM_PLATFORM_ANDROID && __cplusplus < 201103L + return _isnan(x) != 0; +# else + return std::isnan(x); +# endif +# elif GLM_COMPILER & GLM_COMPILER_CUDA + return isnan(x) != 0; # else return std::isnan(x); # endif -# elif GLM_COMPILER & GLM_COMPILER_CUDA - return isnan(x) != 0; -# else - return std::isnan(x); -# endif - } + } +# endif template class vecType> GLM_FUNC_QUALIFIER vecType isnan(vecType const & x) @@ -523,28 +572,32 @@ namespace detail return detail::functor1::call(isnan, x); } - template - GLM_FUNC_QUALIFIER bool isinf(genType x) - { - GLM_STATIC_ASSERT(std::numeric_limits::is_iec559, "'isinf' only accept floating-point inputs"); +# if GLM_HAS_CXX11_STL + using std::isinf; +# else + template + GLM_FUNC_QUALIFIER bool isinf(genType x) + { + GLM_STATIC_ASSERT(std::numeric_limits::is_iec559, "'isinf' only accept floating-point inputs"); -# if(GLM_LANG & GLM_LANG_CXX11_FLAG) - return std::isinf(x); -# elif(GLM_COMPILER & (GLM_COMPILER_INTEL | GLM_COMPILER_VC)) - return _fpclass(x) == _FPCLASS_NINF || _fpclass(x) == _FPCLASS_PINF; -# elif(GLM_COMPILER & (GLM_COMPILER_GCC | GLM_COMPILER_CLANG)) -# if(GLM_PLATFORM & GLM_PLATFORM_ANDROID && __cplusplus < 201103L) - return _isinf(x) != 0; +# if(GLM_LANG & GLM_LANG_CXX11_FLAG) + return std::isinf(x); +# elif(GLM_COMPILER & (GLM_COMPILER_INTEL | GLM_COMPILER_VC)) + return _fpclass(x) == _FPCLASS_NINF || _fpclass(x) == _FPCLASS_PINF; +# elif(GLM_COMPILER & (GLM_COMPILER_GCC | (GLM_COMPILER_APPLE_CLANG | GLM_COMPILER_LLVM))) +# if(GLM_PLATFORM & GLM_PLATFORM_ANDROID && __cplusplus < 201103L) + return _isinf(x) != 0; +# else + return std::isinf(x); +# endif +# elif(GLM_COMPILER & GLM_COMPILER_CUDA) + // http://developer.download.nvidia.com/compute/cuda/4_2/rel/toolkit/docs/online/group__CUDA__MATH__DOUBLE_g13431dd2b40b51f9139cbb7f50c18fab.html#g13431dd2b40b51f9139cbb7f50c18fab + return isinf(double(x)) != 0; # else return std::isinf(x); # endif -# elif(GLM_COMPILER & GLM_COMPILER_CUDA) - // http://developer.download.nvidia.com/compute/cuda/4_2/rel/toolkit/docs/online/group__CUDA__MATH__DOUBLE_g13431dd2b40b51f9139cbb7f50c18fab.html#g13431dd2b40b51f9139cbb7f50c18fab - return isinf(double(x)) != 0; -# else - return std::isinf(x); -# endif } +# endif template class vecType> GLM_FUNC_QUALIFIER vecType isinf(vecType const & x) diff --git a/glm/detail/func_exponential.hpp b/glm/detail/func_exponential.hpp index 2adcb8ec..9b4840bb 100644 --- a/glm/detail/func_exponential.hpp +++ b/glm/detail/func_exponential.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -21,7 +25,7 @@ /// THE SOFTWARE. /// /// @ref core -/// @file glm/core/func_exponential.hpp +/// @file glm/detail/func_exponential.hpp /// @date 2008-08-08 / 2011-06-14 /// @author Christophe Riccio /// @@ -48,7 +52,7 @@ namespace glm /// Returns 'base' raised to the power 'exponent'. /// - /// @param base Floating point value. pow function is defined for input values of x defined in the range (inf-, inf+) in the limit of the type precision. + /// @param base Floating point value. pow function is defined for input values of 'base' defined in the range (inf-, inf+) in the limit of the type precision. /// @param exponent Floating point value representing the 'exponent'. /// @tparam genType Floating-point scalar or vector types. /// @@ -59,7 +63,7 @@ namespace glm /// Returns the natural exponentiation of x, i.e., e^x. /// - /// @param x exp function is defined for input values of x defined in the range (inf-, inf+) in the limit of the type precision. + /// @param v exp function is defined for input values of v defined in the range (inf-, inf+) in the limit of the type precision. /// @tparam genType Floating-point scalar or vector types. /// /// @see GLSL exp man page @@ -67,11 +71,11 @@ namespace glm template class vecType> GLM_FUNC_DECL vecType exp(vecType const & v); - /// Returns the natural logarithm of x, i.e., + /// Returns the natural logarithm of v, i.e., /// returns the value y which satisfies the equation x = e^y. - /// Results are undefined if x <= 0. + /// Results are undefined if v <= 0. /// - /// @param x log function is defined for input values of x defined in the range (0, inf+) in the limit of the type precision. + /// @param v log function is defined for input values of v defined in the range (0, inf+) in the limit of the type precision. /// @tparam genType Floating-point scalar or vector types. /// /// @see GLSL log man page @@ -79,9 +83,9 @@ namespace glm template class vecType> GLM_FUNC_DECL vecType log(vecType const & v); - /// Returns 2 raised to the x power. + /// Returns 2 raised to the v power. /// - /// @param x exp2 function is defined for input values of x defined in the range (inf-, inf+) in the limit of the type precision. + /// @param v exp2 function is defined for input values of v defined in the range (inf-, inf+) in the limit of the type precision. /// @tparam genType Floating-point scalar or vector types. /// /// @see GLSL exp2 man page @@ -92,7 +96,7 @@ namespace glm /// Returns the base 2 log of x, i.e., returns the value y, /// which satisfies the equation x = 2 ^ y. /// - /// @param x log2 function is defined for input values of x defined in the range (0, inf+) in the limit of the type precision. + /// @param v log2 function is defined for input values of v defined in the range (0, inf+) in the limit of the type precision. /// @tparam genType Floating-point scalar or vector types. /// /// @see GLSL log2 man page @@ -100,9 +104,9 @@ namespace glm template class vecType> GLM_FUNC_DECL vecType log2(vecType const & v); - /// Returns the positive square root of x. + /// Returns the positive square root of v. /// - /// @param x sqrt function is defined for input values of x defined in the range [0, inf+) in the limit of the type precision. + /// @param v sqrt function is defined for input values of v defined in the range [0, inf+) in the limit of the type precision. /// @tparam genType Floating-point scalar or vector types. /// /// @see GLSL sqrt man page @@ -112,9 +116,9 @@ namespace glm template class vecType> GLM_FUNC_DECL vecType sqrt(vecType const & v); - /// Returns the reciprocal of the positive square root of x. + /// Returns the reciprocal of the positive square root of v. /// - /// @param x inversesqrt function is defined for input values of x defined in the range [0, inf+) in the limit of the type precision. + /// @param v inversesqrt function is defined for input values of v defined in the range [0, inf+) in the limit of the type precision. /// @tparam genType Floating-point scalar or vector types. /// /// @see GLSL inversesqrt man page diff --git a/glm/detail/func_exponential.inl b/glm/detail/func_exponential.inl index 806c4ba4..830ac42b 100644 --- a/glm/detail/func_exponential.inl +++ b/glm/detail/func_exponential.inl @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -21,7 +25,7 @@ /// THE SOFTWARE. /// /// @ref core -/// @file glm/core/func_exponential.inl +/// @file glm/detail/func_exponential.inl /// @date 2008-08-03 / 2011-06-15 /// @author Christophe Riccio /////////////////////////////////////////////////////////////////////////////////// @@ -35,20 +39,22 @@ namespace glm{ namespace detail { - template - struct compute_log2{}; - - template <> - struct compute_log2 - { - template - GLM_FUNC_QUALIFIER T operator() (T Value) const +# if GLM_LANG & GLM_LANG_CXX11_FLAG + using std::log2; +# else + template + genType log2(genType Value) { -# if GLM_LANG & GLM_LANG_CXX11_FLAG - return std::log2(Value); -# else - return std::log(Value) * static_cast(1.4426950408889634073599246810019); -# endif + return std::log(Value) * static_cast(1.4426950408889634073599246810019); + } +# endif + + template class vecType, bool isFloat = true> + struct compute_log2 + { + GLM_FUNC_QUALIFIER static vecType call(vecType const & vec) + { + return detail::functor1::call(log2, vec); } }; @@ -121,17 +127,13 @@ namespace detail template GLM_FUNC_QUALIFIER genType log2(genType x) { - GLM_STATIC_ASSERT(std::numeric_limits::is_iec559 || std::numeric_limits::is_integer, - "GLM core 'log2' only accept floating-point inputs. Include for additional integer support."); - - assert(x > genType(0)); // log2 is only defined on the range (0, inf] - return detail::compute_log2::is_iec559>()(x); + return log2(tvec1(x)).x; } template class vecType> GLM_FUNC_QUALIFIER vecType log2(vecType const & x) { - return detail::functor1::call(log2, x); + return detail::compute_log2::is_iec559>::call(x); } // sqrt diff --git a/glm/detail/func_geometric.hpp b/glm/detail/func_geometric.hpp index 784ada77..a8ab7811 100644 --- a/glm/detail/func_geometric.hpp +++ b/glm/detail/func_geometric.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -21,7 +25,7 @@ /// THE SOFTWARE. /// /// @ref core -/// @file glm/core/func_geometric.hpp +/// @file glm/detail/func_geometric.hpp /// @date 2008-08-03 / 2011-06-14 /// @author Christophe Riccio /// diff --git a/glm/detail/func_geometric.inl b/glm/detail/func_geometric.inl index 462c2d26..93709887 100644 --- a/glm/detail/func_geometric.inl +++ b/glm/detail/func_geometric.inl @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -21,7 +25,7 @@ /// THE SOFTWARE. /// /// @ref core -/// @file glm/core/func_geometric.inl +/// @file glm/detail/func_geometric.inl /// @date 2008-08-03 / 2011-06-15 /// @author Christophe Riccio /////////////////////////////////////////////////////////////////////////////////// @@ -174,12 +178,9 @@ namespace detail { GLM_STATIC_ASSERT(std::numeric_limits::is_iec559, "'refract' only accept floating-point inputs"); - genType dotValue = dot(N, I); - genType k = static_cast(1) - eta * eta * (static_cast(1) - dotValue * dotValue); - if(k < static_cast(0)) - return static_cast(0); - else - return eta * I - (eta * dotValue + sqrt(k)) * N; + genType const dotValue(dot(N, I)); + genType const k(static_cast(1) - eta * eta * (static_cast(1) - dotValue * dotValue)); + return (eta * I - (eta * dotValue + sqrt(k)) * N) * static_cast(k >= static_cast(0)); } template class vecType> @@ -187,11 +188,8 @@ namespace detail { GLM_STATIC_ASSERT(std::numeric_limits::is_iec559, "'refract' only accept floating-point inputs"); - T dotValue = dot(N, I); - T k = static_cast(1) - eta * eta * (static_cast(1) - dotValue * dotValue); - if(k < static_cast(0)) - return vecType(0); - else - return eta * I - (eta * dotValue + std::sqrt(k)) * N; + T const dotValue(dot(N, I)); + T const k(static_cast(1) - eta * eta * (static_cast(1) - dotValue * dotValue)); + return (eta * I - (eta * dotValue + std::sqrt(k)) * N) * static_cast(k >= static_cast(0)); } }//namespace glm diff --git a/glm/detail/func_integer.hpp b/glm/detail/func_integer.hpp index 55552149..19401fb8 100644 --- a/glm/detail/func_integer.hpp +++ b/glm/detail/func_integer.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -21,7 +25,7 @@ /// THE SOFTWARE. /// /// @ref core -/// @file glm/core/func_integer.hpp +/// @file glm/detail/func_integer.hpp /// @date 2010-03-17 / 2011-06-18 /// @author Christophe Riccio /// @@ -164,8 +168,6 @@ namespace glm /// /// @see GLSL bitCount man page /// @see GLSL 4.20.8 specification, section 8.8 Integer Functions - /// - /// @todo Clarify the declaration to specify that scalars are suported. template GLM_FUNC_DECL int bitCount(genType v); @@ -175,8 +177,6 @@ namespace glm /// /// @see GLSL bitCount man page /// @see GLSL 4.20.8 specification, section 8.8 Integer Functions - /// - /// @todo Clarify the declaration to specify that scalars are suported. template class vecType> GLM_FUNC_DECL vecType bitCount(vecType const & v); @@ -184,12 +184,21 @@ namespace glm /// 1 in the binary representation of value. /// If value is zero, -1 will be returned. /// - /// @tparam T Signed or unsigned integer scalar or vector types. + /// @tparam T Signed or unsigned integer scalar types. /// /// @see GLSL findLSB man page /// @see GLSL 4.20.8 specification, section 8.8 Integer Functions + template + GLM_FUNC_DECL int findLSB(genIUType x); + + /// Returns the bit number of the least significant bit set to + /// 1 in the binary representation of value. + /// If value is zero, -1 will be returned. /// - /// @todo Clarify the declaration to specify that scalars are suported. + /// @tparam T Signed or unsigned integer scalar types. + /// + /// @see GLSL findLSB man page + /// @see GLSL 4.20.8 specification, section 8.8 Integer Functions template class vecType> GLM_FUNC_DECL vecType findLSB(vecType const & v); @@ -198,12 +207,22 @@ namespace glm /// For negative integers, the result will be the bit number of the most significant /// bit set to 0. For a value of zero or negative one, -1 will be returned. /// - /// @tparam T Signed or unsigned integer scalar or vector types. + /// @tparam T Signed or unsigned integer scalar types. /// /// @see GLSL findMSB man page /// @see GLSL 4.20.8 specification, section 8.8 Integer Functions + template + GLM_FUNC_DECL int findMSB(genIUType x); + + /// Returns the bit number of the most significant bit in the binary representation of value. + /// For positive integers, the result will be the bit number of the most significant bit set to 1. + /// For negative integers, the result will be the bit number of the most significant + /// bit set to 0. For a value of zero or negative one, -1 will be returned. /// - /// @todo Clarify the declaration to specify that scalars are suported. + /// @tparam T Signed or unsigned integer scalar types. + /// + /// @see GLSL findMSB man page + /// @see GLSL 4.20.8 specification, section 8.8 Integer Functions template class vecType> GLM_FUNC_DECL vecType findMSB(vecType const & v); diff --git a/glm/detail/func_integer.inl b/glm/detail/func_integer.inl index 81b5d5af..f84304e5 100644 --- a/glm/detail/func_integer.inl +++ b/glm/detail/func_integer.inl @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -21,7 +25,7 @@ /// THE SOFTWARE. /// /// @ref core -/// @file glm/core/func_integer.inl +/// @file glm/detail/func_integer.inl /// @date 2010-03-17 / 2011-06-15 /// @author Christophe Riccio /////////////////////////////////////////////////////////////////////////////////// @@ -87,6 +91,112 @@ namespace detail return (v & Mask) + ((v >> Shift) & Mask); } }; + + template + struct compute_findLSB + { + GLM_FUNC_QUALIFIER static int call(genIUType Value) + { + if(Value == 0) + return -1; + + return glm::bitCount(~Value & (Value - static_cast(1))); + } + }; + +# if GLM_HAS_BITSCAN_WINDOWS + template + struct compute_findLSB + { + GLM_FUNC_QUALIFIER static int call(genIUType Value) + { + unsigned long Result(0); + unsigned char IsNotNull = _BitScanForward(&Result, *reinterpret_cast(&Value)); + return IsNotNull ? int(Result) : -1; + } + }; + + template + struct compute_findLSB + { + GLM_FUNC_QUALIFIER static int call(genIUType Value) + { + unsigned long Result(0); + unsigned char IsNotNull = _BitScanForward64(&Result, *reinterpret_cast(&Value)); + return IsNotNull ? int(Result) : -1; + } + }; +# endif//GLM_HAS_BITSCAN_WINDOWS + + template class vecType, bool EXEC = true> + struct compute_findMSB_step_vec + { + GLM_FUNC_QUALIFIER static vecType call(vecType const & x, T Shift) + { + return x | (x >> Shift); + } + }; + + template class vecType> + struct compute_findMSB_step_vec + { + GLM_FUNC_QUALIFIER static vecType call(vecType const & x, T) + { + return x; + } + }; + + template class vecType, int> + struct compute_findMSB_vec + { + GLM_FUNC_QUALIFIER static vecType call(vecType const & vec) + { + vecType x(vec); + x = compute_findMSB_step_vec= 8>::call(x, static_cast( 1)); + x = compute_findMSB_step_vec= 8>::call(x, static_cast( 2)); + x = compute_findMSB_step_vec= 8>::call(x, static_cast( 4)); + x = compute_findMSB_step_vec= 16>::call(x, static_cast( 8)); + x = compute_findMSB_step_vec= 32>::call(x, static_cast(16)); + x = compute_findMSB_step_vec= 64>::call(x, static_cast(32)); + return vecType(sizeof(T) * 8 - 1) - glm::bitCount(~x); + } + }; + +# if GLM_HAS_BITSCAN_WINDOWS + template + GLM_FUNC_QUALIFIER int compute_findMSB_32(genIUType Value) + { + unsigned long Result(0); + unsigned char IsNotNull = _BitScanReverse(&Result, *reinterpret_cast(&Value)); + return IsNotNull ? int(Result) : -1; + } + + template + GLM_FUNC_QUALIFIER int compute_findMSB_64(genIUType Value) + { + unsigned long Result(0); + unsigned char IsNotNull = _BitScanReverse64(&Result, *reinterpret_cast(&Value)); + return IsNotNull ? int(Result) : -1; + } + + template class vecType> + struct compute_findMSB_vec + { + GLM_FUNC_QUALIFIER static vecType call(vecType const & x) + { + return detail::functor1::call(compute_findMSB_32, x); + } + }; + + template class vecType> + struct compute_findMSB_vec + { + GLM_FUNC_QUALIFIER static vecType call(vecType const & x) + { + return detail::functor1::call(compute_findMSB_64, x); + } + }; +# endif//GLM_HAS_BITSCAN_WINDOWS }//namespace detail // uaddCarry @@ -102,7 +212,7 @@ namespace detail GLM_FUNC_QUALIFIER vecType uaddCarry(vecType const & x, vecType const & y, vecType & Carry) { vecType Value64(vecType(x) + vecType(y)); - vecType Max32(static_cast(std::numeric_limits::max())); + vecType Max32((static_cast(1) << static_cast(32)) - static_cast(1)); Carry = mix(vecType(0), vecType(1), greaterThan(Value64, Max32)); return vecType(Value64 % (Max32 + static_cast(1))); } @@ -248,12 +358,8 @@ namespace detail GLM_FUNC_QUALIFIER int findLSB(genIUType Value) { GLM_STATIC_ASSERT(std::numeric_limits::is_integer, "'findLSB' only accept integer values"); - if(Value == 0) - return -1; - genIUType Bit; - for(Bit = genIUType(0); !(Value & (1 << Bit)); ++Bit){} - return Bit; + return detail::compute_findLSB::call(Value); } template class vecType> @@ -265,89 +371,19 @@ namespace detail } // findMSB -#if (GLM_ARCH != GLM_ARCH_PURE) && (GLM_COMPILER & GLM_COMPILER_VC) - template - GLM_FUNC_QUALIFIER int findMSB(genIUType Value) + GLM_FUNC_QUALIFIER int findMSB(genIUType x) { GLM_STATIC_ASSERT(std::numeric_limits::is_integer, "'findMSB' only accept integer values"); - if(Value == 0) - return -1; - unsigned long Result(0); - _BitScanReverse(&Result, Value); - return int(Result); + return findMSB(tvec1(x)).x; } -/* -// __builtin_clz seems to be buggy as it crasks for some values, from 0x00200000 to 80000000 -#elif((GLM_ARCH != GLM_ARCH_PURE) && (GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC40)) - - template - GLM_FUNC_QUALIFIER int findMSB - ( - genIUType const & Value - ) - { - GLM_STATIC_ASSERT(std::numeric_limits::is_integer, "'findMSB' only accept integer values"); - if(Value == 0) - return -1; - - // clz returns the number or trailing 0-bits; see - // http://gcc.gnu.org/onlinedocs/gcc-4.7.1/gcc/Other-Builtins.html - // - // NoteBecause __builtin_clz only works for unsigned ints, this - // implementation will not work for 64-bit integers. - // - return 31 - __builtin_clzl(Value); - } -*/ -#else - -/* SSE implementation idea - - __m128i const Zero = _mm_set_epi32( 0, 0, 0, 0); - __m128i const One = _mm_set_epi32( 1, 1, 1, 1); - __m128i Bit = _mm_set_epi32(-1, -1, -1, -1); - __m128i Tmp = _mm_set_epi32(Value, Value, Value, Value); - __m128i Mmi = Zero; - for(int i = 0; i < 32; ++i) - { - __m128i Shilt = _mm_and_si128(_mm_cmpgt_epi32(Tmp, One), One); - Tmp = _mm_srai_epi32(Tmp, One); - Bit = _mm_add_epi32(Bit, _mm_and_si128(Shilt, i)); - Mmi = _mm_and_si128(Mmi, One); - } - return Bit; -*/ - - template - GLM_FUNC_QUALIFIER int findMSB(genIUType Value) - { - GLM_STATIC_ASSERT(std::numeric_limits::is_integer, "'findMSB' only accept integer values"); - - if(Value == genIUType(0) || Value == genIUType(-1)) - return -1; - else if(Value > 0) - { - genIUType Bit = genIUType(-1); - for(genIUType tmp = Value; tmp > 0; tmp >>= 1, ++Bit){} - return Bit; - } - else //if(Value < 0) - { - int const BitCount(sizeof(genIUType) * 8); - int MostSignificantBit(-1); - for(int BitIndex(0); BitIndex < BitCount; ++BitIndex) - MostSignificantBit = (Value & (1 << BitIndex)) ? MostSignificantBit : BitIndex; - assert(MostSignificantBit >= 0); - return MostSignificantBit; - } - } -#endif//(GLM_COMPILER) template class vecType> GLM_FUNC_QUALIFIER vecType findMSB(vecType const & x) { - return detail::functor1::call(findMSB, x); + GLM_STATIC_ASSERT(std::numeric_limits::is_integer, "'findMSB' only accept integer values"); + + return detail::compute_findMSB_vec::call(x); } }//namespace glm diff --git a/glm/detail/func_matrix.hpp b/glm/detail/func_matrix.hpp index 6ad388a9..54f86e87 100644 --- a/glm/detail/func_matrix.hpp +++ b/glm/detail/func_matrix.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -21,7 +25,7 @@ /// THE SOFTWARE. /// /// @ref core -/// @file glm/core/func_matrix.hpp +/// @file glm/detail/func_matrix.hpp /// @date 2008-08-03 / 2011-06-15 /// @author Christophe Riccio /// @@ -136,8 +140,6 @@ namespace detail /// /// @see GLSL outerProduct man page /// @see GLSL 4.20.8 specification, section 8.6 Matrix Functions - /// - /// @todo Clarify the declaration to specify that matType doesn't have to be provided when used. template class vecTypeA, template class vecTypeB> GLM_FUNC_DECL typename detail::outerProduct_trait::type outerProduct(vecTypeA const & c, vecTypeB const & r); diff --git a/glm/detail/func_matrix.inl b/glm/detail/func_matrix.inl index 4d96db95..afefb67e 100644 --- a/glm/detail/func_matrix.inl +++ b/glm/detail/func_matrix.inl @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -21,7 +25,7 @@ /// THE SOFTWARE. /// /// @ref core -/// @file glm/core/func_matrix.inl +/// @file glm/detail/func_matrix.inl /// @date 2008-03-08 / 2011-06-15 /// @author Christophe Riccio /////////////////////////////////////////////////////////////////////////////////// diff --git a/glm/detail/func_noise.hpp b/glm/detail/func_noise.hpp index d0869ec7..969a4c9d 100644 --- a/glm/detail/func_noise.hpp +++ b/glm/detail/func_noise.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -21,7 +25,7 @@ /// THE SOFTWARE. /// /// @ref core -/// @file glm/core/func_noise.hpp +/// @file glm/detail/func_noise.hpp /// @date 2008-08-01 / 2011-06-18 /// @author Christophe Riccio /// diff --git a/glm/detail/func_noise.inl b/glm/detail/func_noise.inl index cab1414d..8910a5ae 100644 --- a/glm/detail/func_noise.inl +++ b/glm/detail/func_noise.inl @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -21,7 +25,7 @@ /// THE SOFTWARE. /// /// @ref core -/// @file glm/core/func_noise.inl +/// @file glm/detail/func_noise.inl /// @date 2008-08-01 / 2011-09-27 /// @author Christophe Riccio /////////////////////////////////////////////////////////////////////////////////// diff --git a/glm/detail/func_packing.hpp b/glm/detail/func_packing.hpp index aa08f5ac..02d26926 100644 --- a/glm/detail/func_packing.hpp +++ b/glm/detail/func_packing.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -21,7 +25,7 @@ /// THE SOFTWARE. /// /// @ref core -/// @file glm/core/func_packing.hpp +/// @file glm/detail/func_packing.hpp /// @date 2010-03-17 / 2011-06-15 /// @author Christophe Riccio /// diff --git a/glm/detail/func_packing.inl b/glm/detail/func_packing.inl index 60dfc63b..b37ff9aa 100644 --- a/glm/detail/func_packing.inl +++ b/glm/detail/func_packing.inl @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -21,7 +25,7 @@ /// THE SOFTWARE. /// /// @ref core -/// @file glm/core/func_packing.inl +/// @file glm/detail/func_packing.inl /// @date 2010-03-17 / 2011-06-15 /// @author Christophe Riccio /////////////////////////////////////////////////////////////////////////////////// diff --git a/glm/detail/func_trigonometric.hpp b/glm/detail/func_trigonometric.hpp index 97ef9d70..c51161ae 100644 --- a/glm/detail/func_trigonometric.hpp +++ b/glm/detail/func_trigonometric.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -21,7 +25,7 @@ /// THE SOFTWARE. /// /// @ref core -/// @file glm/core/func_trigonometric.hpp +/// @file glm/detail/func_trigonometric.hpp /// @date 2008-08-01 / 2011-06-15 /// @author Christophe Riccio /// diff --git a/glm/detail/func_trigonometric.inl b/glm/detail/func_trigonometric.inl index 1d50181c..fb12081c 100644 --- a/glm/detail/func_trigonometric.inl +++ b/glm/detail/func_trigonometric.inl @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -21,7 +25,7 @@ /// THE SOFTWARE. /// /// @ref core -/// @file glm/core/func_trigonometric.inl +/// @file glm/detail/func_trigonometric.inl /// @date 2008-08-03 / 2011-06-15 /// @author Christophe Riccio /////////////////////////////////////////////////////////////////////////////////// diff --git a/glm/detail/func_vector_relational.hpp b/glm/detail/func_vector_relational.hpp index a1a409cf..4b2b8abb 100644 --- a/glm/detail/func_vector_relational.hpp +++ b/glm/detail/func_vector_relational.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -21,7 +25,7 @@ /// THE SOFTWARE. /// /// @ref core -/// @file glm/core/func_vector_relational.hpp +/// @file glm/detail/func_vector_relational.hpp /// @date 2008-08-03 / 2011-06-15 /// @author Christophe Riccio /// diff --git a/glm/detail/func_vector_relational.inl b/glm/detail/func_vector_relational.inl index 9c83de5e..692fe975 100644 --- a/glm/detail/func_vector_relational.inl +++ b/glm/detail/func_vector_relational.inl @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -21,7 +25,7 @@ /// THE SOFTWARE. /// /// @ref core -/// @file glm/core/func_vector_relational.inl +/// @file glm/detail/func_vector_relational.inl /// @date 2008-08-03 / 2011-09-09 /// @author Christophe Riccio /////////////////////////////////////////////////////////////////////////////////// diff --git a/glm/detail/glm.cpp b/glm/detail/glm.cpp index 1ec3c79a..2e03e319 100644 --- a/glm/detail/glm.cpp +++ b/glm/detail/glm.cpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE diff --git a/glm/detail/intrinsic_common.hpp b/glm/detail/intrinsic_common.hpp index 405bb59a..5521c193 100644 --- a/glm/detail/intrinsic_common.hpp +++ b/glm/detail/intrinsic_common.hpp @@ -21,7 +21,7 @@ /// THE SOFTWARE. /// /// @ref core -/// @file glm/core/intrinsic_common.hpp +/// @file glm/detail/intrinsic_common.hpp /// @date 2009-05-11 / 2011-06-15 /// @author Christophe Riccio /////////////////////////////////////////////////////////////////////////////////// diff --git a/glm/detail/intrinsic_common.inl b/glm/detail/intrinsic_common.inl index b596b7fc..6d16cf43 100644 --- a/glm/detail/intrinsic_common.inl +++ b/glm/detail/intrinsic_common.inl @@ -21,7 +21,7 @@ /// THE SOFTWARE. /// /// @ref core -/// @file glm/core/intrinsic_common.inl +/// @file glm/detail/intrinsic_common.inl /// @date 2009-05-08 / 2011-06-15 /// @author Christophe Riccio /////////////////////////////////////////////////////////////////////////////////// diff --git a/glm/detail/intrinsic_exponential.hpp b/glm/detail/intrinsic_exponential.hpp index 7194c3cf..abb15157 100644 --- a/glm/detail/intrinsic_exponential.hpp +++ b/glm/detail/intrinsic_exponential.hpp @@ -21,7 +21,7 @@ /// THE SOFTWARE. /// /// @ref core -/// @file glm/core/intrinsic_exponential.hpp +/// @file glm/detail/intrinsic_exponential.hpp /// @date 2009-05-11 / 2011-06-15 /// @author Christophe Riccio /////////////////////////////////////////////////////////////////////////////////// diff --git a/glm/detail/intrinsic_exponential.inl b/glm/detail/intrinsic_exponential.inl index cb2f20e6..17fccb83 100644 --- a/glm/detail/intrinsic_exponential.inl +++ b/glm/detail/intrinsic_exponential.inl @@ -21,7 +21,7 @@ /// THE SOFTWARE. /// /// @ref core -/// @file glm/core/intrinsic_exponential.inl +/// @file glm/detail/intrinsic_exponential.inl /// @date 2011-06-15 / 2011-06-15 /// @author Christophe Riccio /////////////////////////////////////////////////////////////////////////////////// diff --git a/glm/detail/intrinsic_geometric.hpp b/glm/detail/intrinsic_geometric.hpp index e2175389..1a76fd96 100644 --- a/glm/detail/intrinsic_geometric.hpp +++ b/glm/detail/intrinsic_geometric.hpp @@ -21,7 +21,7 @@ /// THE SOFTWARE. /// /// @ref core -/// @file glm/core/intrinsic_geometric.hpp +/// @file glm/detail/intrinsic_geometric.hpp /// @date 2009-05-08 / 2011-06-15 /// @author Christophe Riccio /////////////////////////////////////////////////////////////////////////////////// diff --git a/glm/detail/intrinsic_geometric.inl b/glm/detail/intrinsic_geometric.inl index a75c31c8..ae8c7928 100644 --- a/glm/detail/intrinsic_geometric.inl +++ b/glm/detail/intrinsic_geometric.inl @@ -21,7 +21,7 @@ /// THE SOFTWARE. /// /// @ref core -/// @file glm/core/intrinsic_geometric.inl +/// @file glm/detail/intrinsic_geometric.inl /// @date 2009-05-08 / 2011-06-15 /// @author Christophe Riccio /////////////////////////////////////////////////////////////////////////////////// diff --git a/glm/detail/intrinsic_integer.hpp b/glm/detail/intrinsic_integer.hpp index b542ac4a..e4f07bc5 100644 --- a/glm/detail/intrinsic_integer.hpp +++ b/glm/detail/intrinsic_integer.hpp @@ -21,7 +21,7 @@ /// THE SOFTWARE. /// /// @ref core -/// @file glm/core/intrinsic_integer.hpp +/// @file glm/detail/intrinsic_integer.hpp /// @date 2009-05-11 / 2011-06-15 /// @author Christophe Riccio /////////////////////////////////////////////////////////////////////////////////// diff --git a/glm/detail/intrinsic_integer.inl b/glm/detail/intrinsic_integer.inl index 05b24db5..90426e34 100644 --- a/glm/detail/intrinsic_integer.inl +++ b/glm/detail/intrinsic_integer.inl @@ -21,7 +21,7 @@ /// THE SOFTWARE. /// /// @ref core -/// @file glm/core/intrinsic_integer.inl +/// @file glm/detail/intrinsic_integer.inl /// @date 2009-05-08 / 2011-06-15 /// @author Christophe Riccio /////////////////////////////////////////////////////////////////////////////////// diff --git a/glm/detail/intrinsic_matrix.hpp b/glm/detail/intrinsic_matrix.hpp index 082f4980..4d92a4e0 100644 --- a/glm/detail/intrinsic_matrix.hpp +++ b/glm/detail/intrinsic_matrix.hpp @@ -21,7 +21,7 @@ /// THE SOFTWARE. /// /// @ref core -/// @file glm/core/intrinsic_common.hpp +/// @file glm/detail/intrinsic_common.hpp /// @date 2009-06-05 / 2011-06-15 /// @author Christophe Riccio /////////////////////////////////////////////////////////////////////////////////// diff --git a/glm/detail/intrinsic_matrix.inl b/glm/detail/intrinsic_matrix.inl index 26c43b38..fb89a53e 100644 --- a/glm/detail/intrinsic_matrix.inl +++ b/glm/detail/intrinsic_matrix.inl @@ -21,7 +21,7 @@ /// THE SOFTWARE. /// /// @ref core -/// @file glm/core/intrinsic_common.inl +/// @file glm/detail/intrinsic_common.inl /// @date 2009-06-05 / 2011-06-15 /// @author Christophe Riccio /////////////////////////////////////////////////////////////////////////////////// diff --git a/glm/detail/intrinsic_trigonometric.hpp b/glm/detail/intrinsic_trigonometric.hpp index 9176291c..41b7c30d 100644 --- a/glm/detail/intrinsic_trigonometric.hpp +++ b/glm/detail/intrinsic_trigonometric.hpp @@ -21,7 +21,7 @@ /// THE SOFTWARE. /// /// @ref core -/// @file glm/core/intrinsic_trigonometric.hpp +/// @file glm/detail/intrinsic_trigonometric.hpp /// @date 2009-06-09 / 2011-06-15 /// @author Christophe Riccio /////////////////////////////////////////////////////////////////////////////////// diff --git a/glm/detail/intrinsic_trigonometric.inl b/glm/detail/intrinsic_trigonometric.inl index 44dfd23b..9f8ead1e 100644 --- a/glm/detail/intrinsic_trigonometric.inl +++ b/glm/detail/intrinsic_trigonometric.inl @@ -21,7 +21,7 @@ /// THE SOFTWARE. /// /// @ref core -/// @file glm/core/intrinsic_trigonometric.inl +/// @file glm/detail/intrinsic_trigonometric.inl /// @date 2011-06-15 / 2011-06-15 /// @author Christophe Riccio /////////////////////////////////////////////////////////////////////////////////// diff --git a/glm/detail/intrinsic_vector_relational.hpp b/glm/detail/intrinsic_vector_relational.hpp index af6620d6..a19ad681 100644 --- a/glm/detail/intrinsic_vector_relational.hpp +++ b/glm/detail/intrinsic_vector_relational.hpp @@ -21,7 +21,7 @@ /// THE SOFTWARE. /// /// @ref core -/// @file glm/core/intrinsic_vector_relational.hpp +/// @file glm/detail/intrinsic_vector_relational.hpp /// @date 2009-06-09 / 2011-06-15 /// @author Christophe Riccio /////////////////////////////////////////////////////////////////////////////////// diff --git a/glm/detail/intrinsic_vector_relational.inl b/glm/detail/intrinsic_vector_relational.inl index ecbb322a..1042661d 100644 --- a/glm/detail/intrinsic_vector_relational.inl +++ b/glm/detail/intrinsic_vector_relational.inl @@ -21,7 +21,7 @@ /// THE SOFTWARE. /// /// @ref core -/// @file glm/core/intrinsic_vector_relational.inl +/// @file glm/detail/intrinsic_vector_relational.inl /// @date 2009-06-09 / 2011-06-15 /// @author Christophe Riccio /////////////////////////////////////////////////////////////////////////////////// diff --git a/glm/detail/precision.hpp b/glm/detail/precision.hpp index 6be15a34..1b6d542d 100644 --- a/glm/detail/precision.hpp +++ b/glm/detail/precision.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -21,7 +25,7 @@ /// THE SOFTWARE. /// /// @ref core -/// @file glm/core/precision.hpp +/// @file glm/detail/precision.hpp /// @date 2013-04-01 / 2013-04-01 /// @author Christophe Riccio /////////////////////////////////////////////////////////////////////////////////// diff --git a/glm/detail/precision.inl b/glm/detail/precision.inl deleted file mode 100644 index e69de29b..00000000 diff --git a/glm/detail/setup.hpp b/glm/detail/setup.hpp index d3e09a9b..c2251546 100644 --- a/glm/detail/setup.hpp +++ b/glm/detail/setup.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -21,7 +25,7 @@ /// THE SOFTWARE. /// /// @ref core -/// @file glm/core/setup.hpp +/// @file glm/detail/setup.hpp /// @date 2006-11-13 / 2014-10-05 /// @author Christophe Riccio /////////////////////////////////////////////////////////////////////////////////// @@ -34,10 +38,10 @@ /////////////////////////////////////////////////////////////////////////////////// // Version -#define GLM_VERSION 96 +#define GLM_VERSION 97 #define GLM_VERSION_MAJOR 0 #define GLM_VERSION_MINOR 9 -#define GLM_VERSION_PATCH 6 +#define GLM_VERSION_PATCH 7 #define GLM_VERSION_REVISION 0 /////////////////////////////////////////////////////////////////////////////////// @@ -129,8 +133,6 @@ // GCC defines #define GLM_COMPILER_GCC 0x02000000 -#define GLM_COMPILER_GCC42 0x02000090 -#define GLM_COMPILER_GCC43 0x020000A0 #define GLM_COMPILER_GCC44 0x020000B0 #define GLM_COMPILER_GCC45 0x020000C0 #define GLM_COMPILER_GCC46 0x020000D0 @@ -141,9 +143,6 @@ // CUDA #define GLM_COMPILER_CUDA 0x10000000 -#define GLM_COMPILER_CUDA30 0x10000010 -#define GLM_COMPILER_CUDA31 0x10000020 -#define GLM_COMPILER_CUDA32 0x10000030 #define GLM_COMPILER_CUDA40 0x10000040 #define GLM_COMPILER_CUDA41 0x10000050 #define GLM_COMPILER_CUDA42 0x10000060 @@ -153,8 +152,6 @@ // LLVM #define GLM_COMPILER_LLVM 0x20000000 -#define GLM_COMPILER_LLVM30 0x20000010 -#define GLM_COMPILER_LLVM31 0x20000020 #define GLM_COMPILER_LLVM32 0x20000030 #define GLM_COMPILER_LLVM33 0x20000040 #define GLM_COMPILER_LLVM34 0x20000050 @@ -292,8 +289,10 @@ # pragma message("GLM: CUDA compiler detected") # elif GLM_COMPILER & GLM_COMPILER_VC # pragma message("GLM: Visual C++ compiler detected") -# elif GLM_COMPILER & GLM_COMPILER_CLANG +# elif GLM_COMPILER & GLM_COMPILER_APPLE_CLANG # pragma message("GLM: Clang compiler detected") +# elif GLM_COMPILER & GLM_COMPILER_LLVM +# pragma message("GLM: LLVM compiler detected") # elif GLM_COMPILER & GLM_COMPILER_INTEL # pragma message("GLM: Intel Compiler detected") # elif GLM_COMPILER & GLM_COMPILER_GCC @@ -470,7 +469,8 @@ (GLM_LANG & GLM_LANG_CXX11_FLAG) || \ ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC2012)) || \ ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC43)) || \ - ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_CLANG) && (GLM_COMPILER >= GLM_COMPILER_CLANG29))) + ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_LLVM) && (GLM_COMPILER >= GLM_COMPILER_LLVM30)) || \ + ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_APPLE_CLANG) && (GLM_COMPILER >= GLM_COMPILER_APPLE_CLANG40))) // N2235 #define GLM_HAS_CONSTEXPR ( \ @@ -514,7 +514,6 @@ #define GLM_HAS_TEMPLATE_ALIASES ( \ ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC2013))) || \ __has_feature(cxx_alias_templates)) - //((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC47)) || \ #define GLM_HAS_RANGE_FOR ( \ (GLM_LANG & GLM_LANG_CXX11_FLAG) || \ @@ -526,14 +525,18 @@ (GLM_LANG & GLM_LANG_CXX11_FLAG) || \ ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC49))) -#define GLM_HAS_TRIVIAL_QUERIES (\ - ((GLM_LANG & GLM_LANG_CXX11_FLAG) && !(GLM_COMPILER & GLM_COMPILER_GCC)) || \ +#define GLM_HAS_TRIVIAL_QUERIES ( \ ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC2013))) -#define GLM_HAS_MAKE_SIGNED (\ +#define GLM_HAS_MAKE_SIGNED ( \ (GLM_LANG & GLM_LANG_CXX11_FLAG) || \ ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC2013))) +#define GLM_HAS_BITSCAN_WINDOWS ( \ + (GLM_ARCH != GLM_ARCH_PURE) && \ + (GLM_PLATFORM & GLM_PLATFORM_WINDOWS) && \ + (GLM_COMPILER & (GLM_COMPILER_VC | GLM_COMPILER_LLVM | GLM_COMPILER_INTEL))) + // OpenMP #ifdef _OPENMP # if GLM_COMPILER & GLM_COMPILER_GCC @@ -562,11 +565,12 @@ // User defines: GLM_FORCE_PURE GLM_FORCE_SSE2 GLM_FORCE_SSE3 GLM_FORCE_AVX GLM_FORCE_AVX2 #define GLM_ARCH_PURE 0x0000 -#define GLM_ARCH_SSE2 0x0001 -#define GLM_ARCH_SSE3 0x0002 -#define GLM_ARCH_SSE4 0x0004 -#define GLM_ARCH_AVX 0x0008 -#define GLM_ARCH_AVX2 0x0010 +#define GLM_ARCH_X86 0x0001 +#define GLM_ARCH_SSE2 0x0002 +#define GLM_ARCH_SSE3 0x0004 +#define GLM_ARCH_SSE4 0x0008 +#define GLM_ARCH_AVX 0x0010 +#define GLM_ARCH_AVX2 0x0020 #if defined(GLM_FORCE_PURE) # define GLM_ARCH GLM_ARCH_PURE @@ -580,7 +584,7 @@ # define GLM_ARCH (GLM_ARCH_SSE3 | GLM_ARCH_SSE2) #elif defined(GLM_FORCE_SSE2) # define GLM_ARCH (GLM_ARCH_SSE2) -#elif (GLM_COMPILER & GLM_COMPILER_CLANG) || (GLM_COMPILER & GLM_COMPILER_GCC) +#elif (GLM_COMPILER & (GLM_COMPILER_APPLE_CLANG | GLM_COMPILER_LLVM | GLM_COMPILER_GCC)) || ((GLM_COMPILER & GLM_COMPILER_INTEL) && (GLM_PLATFORM & GLM_PLATFORM_LINUX)) # if(__AVX2__) # define GLM_ARCH (GLM_ARCH_AVX2 | GLM_ARCH_AVX | GLM_ARCH_SSE3 | GLM_ARCH_SSE2) # elif(__AVX__) @@ -592,8 +596,10 @@ # else # define GLM_ARCH GLM_ARCH_PURE # endif -#elif GLM_COMPILER & GLM_COMPILER_VC -# if _M_IX86_FP == 2 && defined(__AVX__) +#elif (GLM_COMPILER & GLM_COMPILER_VC) || ((GLM_COMPILER & GLM_COMPILER_INTEL) && (GLM_PLATFORM & GLM_PLATFORM_WINDOWS)) +# if defined(__AVX2__) +# define GLM_ARCH (GLM_ARCH_AVX2 | GLM_ARCH_AVX | GLM_ARCH_SSE4 | GLM_ARCH_SSE3 | GLM_ARCH_SSE2) +# elif defined(__AVX__) # define GLM_ARCH (GLM_ARCH_AVX | GLM_ARCH_SSE4 | GLM_ARCH_SSE3 | GLM_ARCH_SSE2) # elif _M_IX86_FP == 2 # define GLM_ARCH (GLM_ARCH_SSE2) @@ -702,7 +708,7 @@ # elif GLM_COMPILER & GLM_COMPILER_GCC # define GLM_INLINE inline __attribute__((__always_inline__)) # define GLM_NEVER_INLINE __attribute__((__noinline__)) -# elif GLM_COMPILER & GLM_COMPILER_CLANG +# elif GLM_COMPILER & (GLM_COMPILER_APPLE_CLANG | GLM_COMPILER_LLVM) # define GLM_INLINE __attribute__((__always_inline__)) # define GLM_NEVER_INLINE __attribute__((__noinline__)) # else @@ -734,28 +740,25 @@ /////////////////////////////////////////////////////////////////////////////////// // Qualifiers -#if GLM_COMPILER & GLM_COMPILER_VC +#if (GLM_COMPILER & GLM_COMPILER_VC) || ((GLM_COMPILER & GLM_COMPILER_INTEL) && (GLM_PLATFORM & GLM_PLATFORM_WINDOWS)) # define GLM_DEPRECATED __declspec(deprecated) # define GLM_ALIGN(x) __declspec(align(x)) # define GLM_ALIGNED_STRUCT(x) struct __declspec(align(x)) +# define GLM_ALIGNED_TYPEDEF(type, name, alignment) typedef __declspec(align(alignment)) type name # define GLM_RESTRICT __declspec(restrict) # define GLM_RESTRICT_VAR __restrict -#elif GLM_COMPILER & GLM_COMPILER_INTEL -# define GLM_DEPRECATED -# define GLM_ALIGN(x) __declspec(align(x)) -# define GLM_ALIGNED_STRUCT(x) struct __declspec(align(x)) -# define GLM_RESTRICT -# define GLM_RESTRICT_VAR __restrict -#elif GLM_COMPILER & (GLM_COMPILER_GCC | GLM_COMPILER_CLANG | GLM_COMPILER_CUDA) +#elif GLM_COMPILER & (GLM_COMPILER_GCC | GLM_COMPILER_APPLE_CLANG | GLM_COMPILER_LLVM | GLM_COMPILER_CUDA | GLM_COMPILER_INTEL) # define GLM_DEPRECATED __attribute__((__deprecated__)) # define GLM_ALIGN(x) __attribute__((aligned(x))) # define GLM_ALIGNED_STRUCT(x) struct __attribute__((aligned(x))) +# define GLM_ALIGNED_TYPEDEF(type, name, alignment) typedef type name __attribute__((aligned(alignment))) # define GLM_RESTRICT __restrict__ # define GLM_RESTRICT_VAR __restrict__ #else # define GLM_DEPRECATED # define GLM_ALIGN # define GLM_ALIGNED_STRUCT(x) struct +# define GLM_ALIGNED_TYPEDEF(type, name, alignment) typedef type name # define GLM_RESTRICT # define GLM_RESTRICT_VAR #endif//GLM_COMPILER @@ -773,7 +776,7 @@ namespace glm { - typedef std::size_t size_t; + using std::size_t; #if defined(GLM_FORCE_SIZE_T_LENGTH) || defined(GLM_FORCE_SIZE_FUNC) typedef size_t length_t; #else diff --git a/glm/detail/type_float.hpp b/glm/detail/type_float.hpp index 495dbc92..a3d7f707 100644 --- a/glm/detail/type_float.hpp +++ b/glm/detail/type_float.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -21,7 +25,7 @@ /// THE SOFTWARE. /// /// @ref core -/// @file glm/core/type_float.hpp +/// @file glm/detail/type_float.hpp /// @date 2008-08-22 / 2011-06-15 /// @author Christophe Riccio /////////////////////////////////////////////////////////////////////////////////// diff --git a/glm/detail/type_gentype.hpp b/glm/detail/type_gentype.hpp index 59882e4c..c8c24f64 100644 --- a/glm/detail/type_gentype.hpp +++ b/glm/detail/type_gentype.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -21,7 +25,7 @@ /// THE SOFTWARE. /// /// @ref core -/// @file glm/core/type_gentype.hpp +/// @file glm/detail/type_gentype.hpp /// @date 2008-10-05 / 2011-06-15 /// @author Christophe Riccio /////////////////////////////////////////////////////////////////////////////////// diff --git a/glm/detail/type_gentype.inl b/glm/detail/type_gentype.inl index 73aa4cd6..46571e20 100644 --- a/glm/detail/type_gentype.inl +++ b/glm/detail/type_gentype.inl @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -21,7 +25,7 @@ /// THE SOFTWARE. /// /// @ref core -/// @file glm/core/type_gentype.inl +/// @file glm/detail/type_gentype.inl /// @date 2008-10-05 / 2011-06-15 /// @author Christophe Riccio /////////////////////////////////////////////////////////////////////////////////// diff --git a/glm/detail/type_half.hpp b/glm/detail/type_half.hpp index 827c28cb..774298d5 100644 --- a/glm/detail/type_half.hpp +++ b/glm/detail/type_half.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -21,7 +25,7 @@ /// THE SOFTWARE. /// /// @ref core -/// @file glm/core/type_half.hpp +/// @file glm/detail/type_half.hpp /// @date 2008-08-17 / 2011-09-20 /// @author Christophe Riccio /////////////////////////////////////////////////////////////////////////////////// @@ -39,10 +43,6 @@ namespace detail GLM_FUNC_DECL hdata toFloat16(float const & value); }//namespace detail - - /// half-precision floating-point numbers. - //typedef detail::hdata half; - }//namespace glm #include "type_half.inl" diff --git a/glm/detail/type_half.inl b/glm/detail/type_half.inl index 29801357..202b2a59 100644 --- a/glm/detail/type_half.inl +++ b/glm/detail/type_half.inl @@ -16,6 +16,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -25,7 +29,7 @@ /// THE SOFTWARE. /// /// @ref core -/// @file glm/core/type_half.inl +/// @file glm/detail/type_half.inl /// @date 2008-08-17 / 2011-06-15 /// @author Christophe Riccio /////////////////////////////////////////////////////////////////////////////////// diff --git a/glm/detail/type_int.hpp b/glm/detail/type_int.hpp index 26dc6ac6..69168592 100644 --- a/glm/detail/type_int.hpp +++ b/glm/detail/type_int.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -21,7 +25,7 @@ /// THE SOFTWARE. /// /// @ref core -/// @file glm/core/type_int.hpp +/// @file glm/detail/type_int.hpp /// @date 2008-08-22 / 2013-03-30 /// @author Christophe Riccio /////////////////////////////////////////////////////////////////////////////////// @@ -52,15 +56,12 @@ namespace detail # if(defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) // C99 detected, 64 bit types available typedef int64_t sint64; typedef uint64_t uint64; -# elif(GLM_COMPILER & GLM_COMPILER_VC) +# elif GLM_COMPILER & GLM_COMPILER_VC typedef signed __int64 sint64; typedef unsigned __int64 uint64; -# elif(GLM_COMPILER & (GLM_COMPILER_GCC | GLM_COMPILER_LLVM_GCC | GLM_COMPILER_CLANG)) +# elif GLM_COMPILER & GLM_COMPILER_GCC __extension__ typedef signed long long sint64; __extension__ typedef unsigned long long uint64; -# elif(GLM_COMPILER & GLM_COMPILER_BC) - typedef Int64 sint64; - typedef Uint64 uint64; # else//unknown compiler typedef signed long long sint64; typedef unsigned long long uint64; diff --git a/glm/detail/type_mat.hpp b/glm/detail/type_mat.hpp index e7033295..ecfe0156 100644 --- a/glm/detail/type_mat.hpp +++ b/glm/detail/type_mat.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -21,7 +25,7 @@ /// THE SOFTWARE. /// /// @ref core -/// @file glm/core/type_mat.hpp +/// @file glm/detail/type_mat.hpp /// @date 2010-01-26 / 2011-06-15 /// @author Christophe Riccio /////////////////////////////////////////////////////////////////////////////////// diff --git a/glm/detail/type_mat.inl b/glm/detail/type_mat.inl index 620b6d9c..1fa740f4 100644 --- a/glm/detail/type_mat.inl +++ b/glm/detail/type_mat.inl @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -21,7 +25,7 @@ /// THE SOFTWARE. /// /// @ref core -/// @file glm/core/type_mat.inl +/// @file glm/detail/type_mat.inl /// @date 2011-06-15 / 2011-06-15 /// @author Christophe Riccio /////////////////////////////////////////////////////////////////////////////////// diff --git a/glm/detail/type_mat2x2.hpp b/glm/detail/type_mat2x2.hpp index 0f9c0b2f..008a1f0d 100644 --- a/glm/detail/type_mat2x2.hpp +++ b/glm/detail/type_mat2x2.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -20,8 +24,8 @@ /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN /// THE SOFTWARE. /// -/// @ref core -/// @file glm/core/type_mat2x2.hpp +/// @ref core +/// @file glm/detail/type_mat2x2.hpp /// @date 2005-01-27 / 2011-06-15 /// @author Christophe Riccio /////////////////////////////////////////////////////////////////////////////////// @@ -39,18 +43,11 @@ namespace glm template struct tmat2x2 { - typedef T value_type; - typedef std::size_t size_type; typedef tvec2 col_type; typedef tvec2 row_type; typedef tmat2x2 type; typedef tmat2x2 transpose_type; - -# ifdef GLM_FORCE_SIZE_FUNC - GLM_FUNC_DECL GLM_CONSTEXPR size_t size() const; -# else - GLM_FUNC_DECL GLM_CONSTEXPR length_t length() const; -# endif//GLM_FORCE_SIZE_FUNC + typedef T value_type; template friend tvec2 operator/(tmat2x2 const & m, tvec2 const & v); @@ -113,8 +110,22 @@ namespace glm ////////////////////////////////////// // Accesses - GLM_FUNC_DECL col_type & operator[](length_t i); - GLM_FUNC_DECL col_type const & operator[](length_t i) const; +# ifdef GLM_FORCE_SIZE_FUNC + typedef size_t size_type; + GLM_FUNC_DECL GLM_CONSTEXPR size_t size() const; + + GLM_FUNC_DECL col_type & operator[](size_type i); + GLM_FUNC_DECL col_type const & operator[](size_type i) const; +# else + typedef length_t length_type; + GLM_FUNC_DECL GLM_CONSTEXPR length_type length() const; + + GLM_FUNC_DECL col_type & operator[](length_type i); + GLM_FUNC_DECL col_type const & operator[](length_type i) const; +# endif//GLM_FORCE_SIZE_FUNC + + ////////////////////////////////////// + // Unary arithmetic operators template GLM_FUNC_DECL tmat2x2 & operator=(tmat2x2 const & m); diff --git a/glm/detail/type_mat2x2.inl b/glm/detail/type_mat2x2.inl index 95c88c9e..5d26395c 100644 --- a/glm/detail/type_mat2x2.inl +++ b/glm/detail/type_mat2x2.inl @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -21,7 +25,7 @@ /// THE SOFTWARE. /// /// @ref core -/// @file glm/core/type_mat2x2.inl +/// @file glm/detail/type_mat2x2.inl /// @date 2005-01-16 / 2011-06-15 /// @author Christophe Riccio /////////////////////////////////////////////////////////////////////////////////// @@ -46,37 +50,6 @@ namespace detail } }//namespace detail -#ifdef GLM_FORCE_SIZE_FUNC - template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR size_t tmat2x2::size() const - { - return 2; - } -#else - template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR length_t tmat2x2::length() const - { - return 2; - } -#endif - - ////////////////////////////////////// - // Accesses - - template - GLM_FUNC_QUALIFIER typename tmat2x2::col_type & tmat2x2::operator[](length_t i) - { - assert(i < this->length()); - return this->value[i]; - } - - template - GLM_FUNC_QUALIFIER typename tmat2x2::col_type const & tmat2x2::operator[](length_t i) const - { - assert(i < this->length()); - return this->value[i]; - } - ////////////////////////////////////////////////////////////// // Constructors @@ -215,8 +188,53 @@ namespace detail this->value[1] = col_type(m[1]); } + ////////////////////////////////////// + // Accesses + +# ifdef GLM_FORCE_SIZE_FUNC + template + GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tmat2x2::size_type tmat2x2::size() const + { + return 2; + } + + template + GLM_FUNC_QUALIFIER typename tmat2x2::col_type & tmat2x2::operator[](typename tmat2x2::size_type i) + { + assert(i < this->size()); + return this->value[i]; + } + + template + GLM_FUNC_QUALIFIER typename tmat2x2::col_type const & tmat2x2::operator[](typename tmat2x2::size_type i) const + { + assert(i < this->size()); + return this->value[i]; + } +# else + template + GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tmat2x2::length_type tmat2x2::length() const + { + return 2; + } + + template + GLM_FUNC_QUALIFIER typename tmat2x2::col_type & tmat2x2::operator[](typename tmat2x2::length_type i) + { + assert(i < this->length()); + return this->value[i]; + } + + template + GLM_FUNC_QUALIFIER typename tmat2x2::col_type const & tmat2x2::operator[](typename tmat2x2::length_type i) const + { + assert(i < this->length()); + return this->value[i]; + } +# endif//GLM_FORCE_SIZE_FUNC + ////////////////////////////////////////////////////////////// - // mat2x2 operators + // Unary updatable operators template template diff --git a/glm/detail/type_mat2x3.hpp b/glm/detail/type_mat2x3.hpp index 8699a5b6..6c05bbc4 100644 --- a/glm/detail/type_mat2x3.hpp +++ b/glm/detail/type_mat2x3.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -21,7 +25,7 @@ /// THE SOFTWARE. /// /// @ref core -/// @file glm/core/type_mat2x3.hpp +/// @file glm/detail/type_mat2x3.hpp /// @date 2006-10-01 / 2011-06-15 /// @author Christophe Riccio /////////////////////////////////////////////////////////////////////////////////// @@ -40,18 +44,11 @@ namespace glm template struct tmat2x3 { - typedef T value_type; - typedef std::size_t size_type; typedef tvec3 col_type; typedef tvec2 row_type; typedef tmat2x3 type; typedef tmat3x2 transpose_type; - -# ifdef GLM_FORCE_SIZE_FUNC - GLM_FUNC_DECL GLM_CONSTEXPR size_t size() const; -# else - GLM_FUNC_DECL GLM_CONSTEXPR length_t length() const; -# endif//GLM_FORCE_SIZE_FUNC + typedef T value_type; private: /// @cond DETAIL @@ -106,9 +103,25 @@ namespace glm GLM_FUNC_DECL explicit tmat2x3(tmat4x2 const & x); GLM_FUNC_DECL explicit tmat2x3(tmat4x3 const & x); + ////////////////////////////////////// // Accesses - GLM_FUNC_DECL col_type & operator[](length_t i); - GLM_FUNC_DECL col_type const & operator[](length_t i) const; + +# ifdef GLM_FORCE_SIZE_FUNC + typedef size_t size_type; + GLM_FUNC_DECL GLM_CONSTEXPR size_t size() const; + + GLM_FUNC_DECL col_type & operator[](size_type i); + GLM_FUNC_DECL col_type const & operator[](size_type i) const; +# else + typedef length_t length_type; + GLM_FUNC_DECL GLM_CONSTEXPR length_type length() const; + + GLM_FUNC_DECL col_type & operator[](length_type i); + GLM_FUNC_DECL col_type const & operator[](length_type i) const; +# endif//GLM_FORCE_SIZE_FUNC + + ////////////////////////////////////// + // Unary arithmetic operators template GLM_FUNC_DECL tmat2x3 & operator= (tmat2x3 const & m); diff --git a/glm/detail/type_mat2x3.inl b/glm/detail/type_mat2x3.inl index 64813c15..20960e1f 100644 --- a/glm/detail/type_mat2x3.inl +++ b/glm/detail/type_mat2x3.inl @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -21,44 +25,13 @@ /// THE SOFTWARE. /// /// @ref core -/// @file glm/core/type_mat2x3.inl +/// @file glm/detail/type_mat2x3.inl /// @date 2006-08-05 / 2011-06-15 /// @author Christophe Riccio /////////////////////////////////////////////////////////////////////////////////// namespace glm { -#ifdef GLM_FORCE_SIZE_FUNC - template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR size_t tmat2x3::size() const - { - return 2; - } -#else - template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR length_t tmat2x3::length() const - { - return 2; - } -#endif - - ////////////////////////////////////// - // Accesses - - template - GLM_FUNC_QUALIFIER typename tmat2x3::col_type & tmat2x3::operator[](length_t i) - { - assert(i < this->length()); - return this->value[i]; - } - - template - GLM_FUNC_QUALIFIER typename tmat2x3::col_type const & tmat2x3::operator[](length_t i) const - { - assert(i < this->length()); - return this->value[i]; - } - ////////////////////////////////////////////////////////////// // Constructors @@ -199,6 +172,51 @@ namespace glm this->value[1] = m[1]; } + ////////////////////////////////////// + // Accesses + +# ifdef GLM_FORCE_SIZE_FUNC + template + GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tmat2x3::size_type tmat2x3::size() const + { + return 2; + } + + template + GLM_FUNC_QUALIFIER typename tmat2x3::col_type & tmat2x3::operator[](typename tmat2x3::size_type i) + { + assert(i < this->size()); + return this->value[i]; + } + + template + GLM_FUNC_QUALIFIER typename tmat2x3::col_type const & tmat2x3::operator[](typename tmat2x3::size_type i) const + { + assert(i < this->size()); + return this->value[i]; + } +# else + template + GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tmat2x3::length_type tmat2x3::length() const + { + return 2; + } + + template + GLM_FUNC_QUALIFIER typename tmat2x3::col_type & tmat2x3::operator[](typename tmat2x3::length_type i) + { + assert(i < this->length()); + return this->value[i]; + } + + template + GLM_FUNC_QUALIFIER typename tmat2x3::col_type const & tmat2x3::operator[](typename tmat2x3::length_type i) const + { + assert(i < this->length()); + return this->value[i]; + } +# endif//GLM_FORCE_SIZE_FUNC + ////////////////////////////////////////////////////////////// // Unary updatable operators diff --git a/glm/detail/type_mat2x4.hpp b/glm/detail/type_mat2x4.hpp index b97d1e91..bc26dac9 100644 --- a/glm/detail/type_mat2x4.hpp +++ b/glm/detail/type_mat2x4.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -21,7 +25,7 @@ /// THE SOFTWARE. /// /// @ref core -/// @file glm/core/type_mat2x4.hpp +/// @file glm/detail/type_mat2x4.hpp /// @date 2006-08-05 / 2011-06-15 /// @author Christophe Riccio /////////////////////////////////////////////////////////////////////////////////// @@ -40,18 +44,11 @@ namespace glm template struct tmat2x4 { - typedef T value_type; - typedef std::size_t size_type; typedef tvec4 col_type; typedef tvec2 row_type; typedef tmat2x4 type; typedef tmat4x2 transpose_type; - -# ifdef GLM_FORCE_SIZE_FUNC - GLM_FUNC_DECL GLM_CONSTEXPR size_t size() const; -# else - GLM_FUNC_DECL GLM_CONSTEXPR length_t length() const; -# endif//GLM_FORCE_SIZE_FUNC + typedef T value_type; private: /// @cond DETAIL @@ -107,9 +104,25 @@ namespace glm GLM_FUNC_DECL explicit tmat2x4(tmat4x2 const & x); GLM_FUNC_DECL explicit tmat2x4(tmat4x3 const & x); + ////////////////////////////////////// // Accesses - GLM_FUNC_DECL col_type & operator[](length_t i); - GLM_FUNC_DECL col_type const & operator[](length_t i) const; + +# ifdef GLM_FORCE_SIZE_FUNC + typedef size_t size_type; + GLM_FUNC_DECL GLM_CONSTEXPR size_t size() const; + + GLM_FUNC_DECL col_type & operator[](size_type i); + GLM_FUNC_DECL col_type const & operator[](size_type i) const; +# else + typedef length_t length_type; + GLM_FUNC_DECL GLM_CONSTEXPR length_type length() const; + + GLM_FUNC_DECL col_type & operator[](length_type i); + GLM_FUNC_DECL col_type const & operator[](length_type i) const; +# endif//GLM_FORCE_SIZE_FUNC + + ////////////////////////////////////// + // Unary arithmetic operators template GLM_FUNC_DECL tmat2x4& operator= (tmat2x4 const & m); diff --git a/glm/detail/type_mat2x4.inl b/glm/detail/type_mat2x4.inl index e2ef8d90..d7f63785 100644 --- a/glm/detail/type_mat2x4.inl +++ b/glm/detail/type_mat2x4.inl @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -21,44 +25,13 @@ /// THE SOFTWARE. /// /// @ref core -/// @file glm/core/type_mat2x4.inl +/// @file glm/detail/type_mat2x4.inl /// @date 2006-08-05 / 2011-06-15 /// @author Christophe Riccio /////////////////////////////////////////////////////////////////////////////////// namespace glm { -#ifdef GLM_FORCE_SIZE_FUNC - template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR size_t tmat2x4::size() const - { - return 2; - } -#else - template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR length_t tmat2x4::length() const - { - return 2; - } -#endif - - ////////////////////////////////////// - // Accesses - - template - GLM_FUNC_QUALIFIER typename tmat2x4::col_type & tmat2x4::operator[](length_t i) - { - assert(i < this->length()); - return this->value[i]; - } - - template - GLM_FUNC_QUALIFIER typename tmat2x4::col_type const & tmat2x4::operator[](length_t i) const - { - assert(i < this->length()); - return this->value[i]; - } - ////////////////////////////////////////////////////////////// // Constructors @@ -200,6 +173,51 @@ namespace glm this->value[1] = col_type(m[1], 0); } + ////////////////////////////////////// + // Accesses + +# ifdef GLM_FORCE_SIZE_FUNC + template + GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tmat2x4::size_type tmat2x4::size() const + { + return 2; + } + + template + GLM_FUNC_QUALIFIER typename tmat2x4::col_type & tmat2x4::operator[](typename tmat2x4::size_type i) + { + assert(i < this->size()); + return this->value[i]; + } + + template + GLM_FUNC_QUALIFIER typename tmat2x4::col_type const & tmat2x4::operator[](typename tmat2x4::size_type i) const + { + assert(i < this->size()); + return this->value[i]; + } +# else + template + GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tmat2x4::length_type tmat2x4::length() const + { + return 2; + } + + template + GLM_FUNC_QUALIFIER typename tmat2x4::col_type & tmat2x4::operator[](typename tmat2x4::length_type i) + { + assert(i < this->length()); + return this->value[i]; + } + + template + GLM_FUNC_QUALIFIER typename tmat2x4::col_type const & tmat2x4::operator[](typename tmat2x4::length_type i) const + { + assert(i < this->length()); + return this->value[i]; + } +# endif//GLM_FORCE_SIZE_FUNC + ////////////////////////////////////////////////////////////// // Unary updatable operators diff --git a/glm/detail/type_mat3x2.hpp b/glm/detail/type_mat3x2.hpp index 1a2b0c66..706f91fd 100644 --- a/glm/detail/type_mat3x2.hpp +++ b/glm/detail/type_mat3x2.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -21,7 +25,7 @@ /// THE SOFTWARE. /// /// @ref core -/// @file glm/core/type_mat3x2.hpp +/// @file glm/detail/type_mat3x2.hpp /// @date 2006-08-05 / 2011-06-15 /// @author Christophe Riccio /////////////////////////////////////////////////////////////////////////////////// @@ -40,18 +44,11 @@ namespace glm template struct tmat3x2 { - typedef T value_type; - typedef std::size_t size_type; typedef tvec2 col_type; typedef tvec3 row_type; typedef tmat3x2 type; typedef tmat2x3 transpose_type; - -# ifdef GLM_FORCE_SIZE_FUNC - GLM_FUNC_DECL GLM_CONSTEXPR size_t size() const; -# else - GLM_FUNC_DECL GLM_CONSTEXPR length_t length() const; -# endif//GLM_FORCE_SIZE_FUNC + typedef T value_type; private: /// @cond DETAIL @@ -113,9 +110,25 @@ namespace glm GLM_FUNC_DECL explicit tmat3x2(tmat4x2 const & x); GLM_FUNC_DECL explicit tmat3x2(tmat4x3 const & x); + ////////////////////////////////////// // Accesses - GLM_FUNC_DECL col_type & operator[](length_t i); - GLM_FUNC_DECL col_type const & operator[](length_t i) const; + +# ifdef GLM_FORCE_SIZE_FUNC + typedef size_t size_type; + GLM_FUNC_DECL GLM_CONSTEXPR size_t size() const; + + GLM_FUNC_DECL col_type & operator[](size_type i); + GLM_FUNC_DECL col_type const & operator[](size_type i) const; +# else + typedef length_t length_type; + GLM_FUNC_DECL GLM_CONSTEXPR length_type length() const; + + GLM_FUNC_DECL col_type & operator[](length_type i); + GLM_FUNC_DECL col_type const & operator[](length_type i) const; +# endif//GLM_FORCE_SIZE_FUNC + + ////////////////////////////////////// + // Unary arithmetic operators template GLM_FUNC_DECL tmat3x2 & operator= (tmat3x2 const & m); diff --git a/glm/detail/type_mat3x2.inl b/glm/detail/type_mat3x2.inl index 956bc866..2c299dea 100644 --- a/glm/detail/type_mat3x2.inl +++ b/glm/detail/type_mat3x2.inl @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -21,44 +25,13 @@ /// THE SOFTWARE. /// /// @ref core -/// @file glm/core/type_mat3x2.inl +/// @file glm/detail/type_mat3x2.inl /// @date 2006-08-05 / 2011-06-15 /// @author Christophe Riccio /////////////////////////////////////////////////////////////////////////////////// namespace glm { -#ifdef GLM_FORCE_SIZE_FUNC - template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR size_t tmat3x2::size() const - { - return 3; - } -#else - template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR length_t tmat3x2::length() const - { - return 3; - } -#endif - - ////////////////////////////////////// - // Accesses - - template - GLM_FUNC_QUALIFIER typename tmat3x2::col_type & tmat3x2::operator[](length_t i) - { - assert(i < this->length()); - return this->value[i]; - } - - template - GLM_FUNC_QUALIFIER typename tmat3x2::col_type const & tmat3x2::operator[](length_t i) const - { - assert(i < this->length()); - return this->value[i]; - } - ////////////////////////////////////////////////////////////// // Constructors @@ -228,6 +201,51 @@ namespace glm this->value[2] = col_type(m[2]); } + ////////////////////////////////////// + // Accesses + +# ifdef GLM_FORCE_SIZE_FUNC + template + GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tmat3x2::size_type tmat3x2::size() const + { + return 3; + } + + template + GLM_FUNC_QUALIFIER typename tmat3x2::col_type & tmat3x2::operator[](typename tmat3x2::size_type i) + { + assert(i < this->size()); + return this->value[i]; + } + + template + GLM_FUNC_QUALIFIER typename tmat3x2::col_type const & tmat3x2::operator[](typename tmat3x2::size_type i) const + { + assert(i < this->size()); + return this->value[i]; + } +# else + template + GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tmat3x2::length_type tmat3x2::length() const + { + return 3; + } + + template + GLM_FUNC_QUALIFIER typename tmat3x2::col_type & tmat3x2::operator[](typename tmat3x2::length_type i) + { + assert(i < this->length()); + return this->value[i]; + } + + template + GLM_FUNC_QUALIFIER typename tmat3x2::col_type const & tmat3x2::operator[](typename tmat3x2::length_type i) const + { + assert(i < this->length()); + return this->value[i]; + } +# endif//GLM_FORCE_SIZE_FUNC + ////////////////////////////////////////////////////////////// // Unary updatable operators diff --git a/glm/detail/type_mat3x3.hpp b/glm/detail/type_mat3x3.hpp index 97d1ed2e..b11c1344 100644 --- a/glm/detail/type_mat3x3.hpp +++ b/glm/detail/type_mat3x3.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -21,7 +25,7 @@ /// THE SOFTWARE. /// /// @ref core -/// @file glm/core/type_mat3x3.hpp +/// @file glm/detail/type_mat3x3.hpp /// @date 2005-01-27 / 2011-06-15 /// @author Christophe Riccio /////////////////////////////////////////////////////////////////////////////////// @@ -39,18 +43,11 @@ namespace glm template struct tmat3x3 { - typedef T value_type; - typedef std::size_t size_type; typedef tvec3 col_type; typedef tvec3 row_type; typedef tmat3x3 type; typedef tmat3x3 transpose_type; - -# ifdef GLM_FORCE_SIZE_FUNC - GLM_FUNC_DECL GLM_CONSTEXPR size_t size() const; -# else - GLM_FUNC_DECL GLM_CONSTEXPR length_t length() const; -# endif//GLM_FORCE_SIZE_FUNC + typedef T value_type; template friend tvec3 operator/(tmat3x3 const & m, tvec3 const & v); @@ -117,9 +114,25 @@ namespace glm GLM_FUNC_DECL explicit tmat3x3(tmat3x4 const & x); GLM_FUNC_DECL explicit tmat3x3(tmat4x3 const & x); + ////////////////////////////////////// // Accesses - GLM_FUNC_DECL col_type & operator[](length_t i); - GLM_FUNC_DECL col_type const & operator[](length_t i) const; + +# ifdef GLM_FORCE_SIZE_FUNC + typedef size_t size_type; + GLM_FUNC_DECL GLM_CONSTEXPR size_t size() const; + + GLM_FUNC_DECL col_type & operator[](size_type i); + GLM_FUNC_DECL col_type const & operator[](size_type i) const; +# else + typedef length_t length_type; + GLM_FUNC_DECL GLM_CONSTEXPR length_type length() const; + + GLM_FUNC_DECL col_type & operator[](length_type i); + GLM_FUNC_DECL col_type const & operator[](length_type i) const; +# endif//GLM_FORCE_SIZE_FUNC + + ////////////////////////////////////// + // Unary arithmetic operators template GLM_FUNC_DECL tmat3x3& operator= (tmat3x3 const & m); diff --git a/glm/detail/type_mat3x3.inl b/glm/detail/type_mat3x3.inl index 5fd41d0f..b36634a4 100644 --- a/glm/detail/type_mat3x3.inl +++ b/glm/detail/type_mat3x3.inl @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -21,7 +25,7 @@ /// THE SOFTWARE. /// /// @ref core -/// @file glm/core/type_mat3x3.inl +/// @file glm/detail/type_mat3x3.inl /// @date 2005-01-27 / 2011-06-15 /// @author Christophe Riccio /////////////////////////////////////////////////////////////////////////////////// @@ -52,37 +56,6 @@ namespace detail } }//namespace detail -#ifdef GLM_FORCE_SIZE_FUNC - template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR size_t tmat3x3::size() const - { - return 3; - } -#else - template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR length_t tmat3x3::length() const - { - return 3; - } -#endif - - ////////////////////////////////////// - // Accesses - - template - GLM_FUNC_QUALIFIER typename tmat3x3::col_type & tmat3x3::operator[](length_t i) - { - assert(i < this->length()); - return this->value[i]; - } - - template - GLM_FUNC_QUALIFIER typename tmat3x3::col_type const & tmat3x3::operator[](length_t i) const - { - assert(i < this->length()); - return this->value[i]; - } - ////////////////////////////////////////////////////////////// // Constructors @@ -252,6 +225,51 @@ namespace detail this->value[2] = m[2]; } + ////////////////////////////////////// + // Accesses + +# ifdef GLM_FORCE_SIZE_FUNC + template + GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tmat3x3::size_type tmat3x3::size() const + { + return 3; + } + + template + GLM_FUNC_QUALIFIER typename tmat3x3::col_type & tmat3x3::operator[](typename tmat3x3::size_type i) + { + assert(i < this->size()); + return this->value[i]; + } + + template + GLM_FUNC_QUALIFIER typename tmat3x3::col_type const & tmat3x3::operator[](typename tmat3x3::size_type i) const + { + assert(i < this->size()); + return this->value[i]; + } +# else + template + GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tmat3x3::length_type tmat3x3::length() const + { + return 3; + } + + template + GLM_FUNC_QUALIFIER typename tmat3x3::col_type & tmat3x3::operator[](typename tmat3x3::length_type i) + { + assert(i < this->length()); + return this->value[i]; + } + + template + GLM_FUNC_QUALIFIER typename tmat3x3::col_type const & tmat3x3::operator[](typename tmat3x3::length_type i) const + { + assert(i < this->length()); + return this->value[i]; + } +# endif//GLM_FORCE_SIZE_FUNC + ////////////////////////////////////////////////////////////// // Operators diff --git a/glm/detail/type_mat3x4.hpp b/glm/detail/type_mat3x4.hpp index 4574f563..caa4f7f3 100644 --- a/glm/detail/type_mat3x4.hpp +++ b/glm/detail/type_mat3x4.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -21,7 +25,7 @@ /// THE SOFTWARE. /// /// @ref core -/// @file glm/core/type_mat3x4.hpp +/// @file glm/detail/type_mat3x4.hpp /// @date 2006-08-05 / 2011-06-15 /// @author Christophe Riccio /////////////////////////////////////////////////////////////////////////////////// @@ -40,18 +44,11 @@ namespace glm template struct tmat3x4 { - typedef T value_type; - typedef size_t size_type; typedef tvec4 col_type; typedef tvec3 row_type; typedef tmat3x4 type; typedef tmat4x3 transpose_type; - -# ifdef GLM_FORCE_SIZE_FUNC - GLM_FUNC_DECL GLM_CONSTEXPR size_t size() const; -# else - GLM_FUNC_DECL GLM_CONSTEXPR length_t length() const; -# endif//GLM_FORCE_SIZE_FUNC + typedef T value_type; private: /// @cond DETAIL @@ -112,9 +109,25 @@ namespace glm GLM_FUNC_DECL explicit tmat3x4(tmat4x2 const & x); GLM_FUNC_DECL explicit tmat3x4(tmat4x3 const & x); + ////////////////////////////////////// // Accesses - GLM_FUNC_DECL col_type & operator[](length_t i); - GLM_FUNC_DECL col_type const & operator[](length_t i) const; + +# ifdef GLM_FORCE_SIZE_FUNC + typedef size_t size_type; + GLM_FUNC_DECL GLM_CONSTEXPR size_t size() const; + + GLM_FUNC_DECL col_type & operator[](size_type i); + GLM_FUNC_DECL col_type const & operator[](size_type i) const; +# else + typedef length_t length_type; + GLM_FUNC_DECL GLM_CONSTEXPR length_type length() const; + + GLM_FUNC_DECL col_type & operator[](length_type i); + GLM_FUNC_DECL col_type const & operator[](length_type i) const; +# endif//GLM_FORCE_SIZE_FUNC + + ////////////////////////////////////// + // Unary arithmetic operators template GLM_FUNC_DECL tmat3x4 & operator=(tmat3x4 const & m); diff --git a/glm/detail/type_mat3x4.inl b/glm/detail/type_mat3x4.inl index a8ff77d8..37258c36 100644 --- a/glm/detail/type_mat3x4.inl +++ b/glm/detail/type_mat3x4.inl @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -21,44 +25,13 @@ /// THE SOFTWARE. /// /// @ref core -/// @file glm/core/type_mat3x4.inl +/// @file glm/detail/type_mat3x4.inl /// @date 2006-08-05 / 2011-06-15 /// @author Christophe Riccio /////////////////////////////////////////////////////////////////////////////////// namespace glm { -#ifdef GLM_FORCE_SIZE_FUNC - template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR size_t tmat3x4::size() const - { - return 3; - } -#else - template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR length_t tmat3x4::length() const - { - return 3; - } -#endif - - ////////////////////////////////////// - // Accesses - - template - GLM_FUNC_QUALIFIER typename tmat3x4::col_type & tmat3x4::operator[](length_t i) - { - assert(i < this->length()); - return this->value[i]; - } - - template - GLM_FUNC_QUALIFIER typename tmat3x4::col_type const & tmat3x4::operator[](length_t i) const - { - assert(i < this->length()); - return this->value[i]; - } - ////////////////////////////////////////////////////////////// // Constructors @@ -227,6 +200,51 @@ namespace glm this->value[2] = col_type(m[2], 0); } + ////////////////////////////////////// + // Accesses + +# ifdef GLM_FORCE_SIZE_FUNC + template + GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tmat3x4::size_type tmat3x4::size() const + { + return 3; + } + + template + GLM_FUNC_QUALIFIER typename tmat3x4::col_type & tmat3x4::operator[](typename tmat3x4::size_type i) + { + assert(i < this->size()); + return this->value[i]; + } + + template + GLM_FUNC_QUALIFIER typename tmat3x4::col_type const & tmat3x4::operator[](typename tmat3x4::size_type i) const + { + assert(i < this->size()); + return this->value[i]; + } +# else + template + GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tmat3x4::length_type tmat3x4::length() const + { + return 3; + } + + template + GLM_FUNC_QUALIFIER typename tmat3x4::col_type & tmat3x4::operator[](typename tmat3x4::length_type i) + { + assert(i < this->length()); + return this->value[i]; + } + + template + GLM_FUNC_QUALIFIER typename tmat3x4::col_type const & tmat3x4::operator[](typename tmat3x4::length_type i) const + { + assert(i < this->length()); + return this->value[i]; + } +# endif//GLM_FORCE_SIZE_FUNC + ////////////////////////////////////////////////////////////// // Unary updatable operators diff --git a/glm/detail/type_mat4x2.hpp b/glm/detail/type_mat4x2.hpp index 6de10768..d6c11af0 100644 --- a/glm/detail/type_mat4x2.hpp +++ b/glm/detail/type_mat4x2.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -21,7 +25,7 @@ /// THE SOFTWARE. /// /// @ref core -/// @file glm/core/type_mat4x2.hpp +/// @file glm/detail/type_mat4x2.hpp /// @date 2006-10-01 / 2011-06-15 /// @author Christophe Riccio /////////////////////////////////////////////////////////////////////////////////// @@ -40,18 +44,11 @@ namespace glm template struct tmat4x2 { - typedef T value_type; - typedef std::size_t size_type; typedef tvec2 col_type; typedef tvec4 row_type; typedef tmat4x2 type; typedef tmat2x4 transpose_type; - -# ifdef GLM_FORCE_SIZE_FUNC - GLM_FUNC_DECL GLM_CONSTEXPR size_t size() const; -# else - GLM_FUNC_DECL GLM_CONSTEXPR length_t length() const; -# endif//GLM_FORCE_SIZE_FUNC + typedef T value_type; private: /// @cond DETAIL @@ -118,9 +115,25 @@ namespace glm GLM_FUNC_DECL explicit tmat4x2(tmat4x3 const & x); GLM_FUNC_DECL explicit tmat4x2(tmat3x4 const & x); + ////////////////////////////////////// // Accesses - GLM_FUNC_DECL col_type & operator[](length_t i); - GLM_FUNC_DECL col_type const & operator[](length_t i) const; + +# ifdef GLM_FORCE_SIZE_FUNC + typedef size_t size_type; + GLM_FUNC_DECL GLM_CONSTEXPR size_t size() const; + + GLM_FUNC_DECL col_type & operator[](size_type i); + GLM_FUNC_DECL col_type const & operator[](size_type i) const; +# else + typedef length_t length_type; + GLM_FUNC_DECL GLM_CONSTEXPR length_type length() const; + + GLM_FUNC_DECL col_type & operator[](length_type i); + GLM_FUNC_DECL col_type const & operator[](length_type i) const; +# endif//GLM_FORCE_SIZE_FUNC + + ////////////////////////////////////// + // Unary arithmetic operators template GLM_FUNC_DECL tmat4x2& operator=(tmat4x2 const & m); diff --git a/glm/detail/type_mat4x2.inl b/glm/detail/type_mat4x2.inl index b81bd747..7e758222 100644 --- a/glm/detail/type_mat4x2.inl +++ b/glm/detail/type_mat4x2.inl @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -21,44 +25,13 @@ /// THE SOFTWARE. /// /// @ref core -/// @file glm/core/type_mat4x2.inl +/// @file glm/detail/type_mat4x2.inl /// @date 2006-10-01 / 2011-06-15 /// @author Christophe Riccio /////////////////////////////////////////////////////////////////////////////////// namespace glm { -#ifdef GLM_FORCE_SIZE_FUNC - template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR size_t tmat4x2::size() const - { - return 4; - } -#else - template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR length_t tmat4x2::length() const - { - return 4; - } -#endif - - ////////////////////////////////////// - // Accesses - - template - GLM_FUNC_QUALIFIER typename tmat4x2::col_type & tmat4x2::operator[](length_t i) - { - assert(i < this->length()); - return this->value[i]; - } - - template - GLM_FUNC_QUALIFIER typename tmat4x2::col_type const & tmat4x2::operator[](length_t i) const - { - assert(i < this->length()); - return this->value[i]; - } - ////////////////////////////////////////////////////////////// // Constructors @@ -250,6 +223,51 @@ namespace glm this->value[3] = col_type(0); } + ////////////////////////////////////// + // Accesses + +# ifdef GLM_FORCE_SIZE_FUNC + template + GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tmat4x2::size_type tmat4x2::size() const + { + return 4; + } + + template + GLM_FUNC_QUALIFIER typename tmat4x2::col_type & tmat4x2::operator[](typename tmat4x2::size_type i) + { + assert(i < this->size()); + return this->value[i]; + } + + template + GLM_FUNC_QUALIFIER typename tmat4x2::col_type const & tmat4x2::operator[](typename tmat4x2::size_type i) const + { + assert(i < this->size()); + return this->value[i]; + } +# else + template + GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tmat4x2::length_type tmat4x2::length() const + { + return 4; + } + + template + GLM_FUNC_QUALIFIER typename tmat4x2::col_type & tmat4x2::operator[](typename tmat4x2::length_type i) + { + assert(i < this->length()); + return this->value[i]; + } + + template + GLM_FUNC_QUALIFIER typename tmat4x2::col_type const & tmat4x2::operator[](typename tmat4x2::length_type i) const + { + assert(i < this->length()); + return this->value[i]; + } +# endif//GLM_FORCE_SIZE_FUNC + ////////////////////////////////////////////////////////////// // Unary updatable operators diff --git a/glm/detail/type_mat4x3.hpp b/glm/detail/type_mat4x3.hpp index a9210e7f..dbd95fb5 100644 --- a/glm/detail/type_mat4x3.hpp +++ b/glm/detail/type_mat4x3.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -21,7 +25,7 @@ /// THE SOFTWARE. /// /// @ref core -/// @file glm/core/type_mat4x3.hpp +/// @file glm/detail/type_mat4x3.hpp /// @date 2006-08-04 / 2011-06-15 /// @author Christophe Riccio /////////////////////////////////////////////////////////////////////////////////// @@ -40,18 +44,11 @@ namespace glm template struct tmat4x3 { - typedef T value_type; - typedef std::size_t size_type; typedef tvec3 col_type; typedef tvec4 row_type; typedef tmat4x3 type; typedef tmat3x4 transpose_type; - -# ifdef GLM_FORCE_SIZE_FUNC - GLM_FUNC_DECL GLM_CONSTEXPR size_t size() const; -# else - GLM_FUNC_DECL GLM_CONSTEXPR length_t length() const; -# endif//GLM_FORCE_SIZE_FUNC + typedef T value_type; private: // Data @@ -117,9 +114,25 @@ namespace glm GLM_FUNC_DECL explicit tmat4x3(tmat4x2 const & x); GLM_FUNC_DECL explicit tmat4x3(tmat3x4 const & x); + ////////////////////////////////////// // Accesses - GLM_FUNC_DECL col_type & operator[](size_type i); - GLM_FUNC_DECL col_type const & operator[](size_type i) const; + +# ifdef GLM_FORCE_SIZE_FUNC + typedef size_t size_type; + GLM_FUNC_DECL GLM_CONSTEXPR size_t size() const; + + GLM_FUNC_DECL col_type & operator[](size_type i); + GLM_FUNC_DECL col_type const & operator[](size_type i) const; +# else + typedef length_t length_type; + GLM_FUNC_DECL GLM_CONSTEXPR length_type length() const; + + GLM_FUNC_DECL col_type & operator[](length_type i); + GLM_FUNC_DECL col_type const & operator[](length_type i) const; +# endif//GLM_FORCE_SIZE_FUNC + + ////////////////////////////////////// + // Unary arithmetic operators template GLM_FUNC_DECL tmat4x3 & operator=(tmat4x3 const & m); diff --git a/glm/detail/type_mat4x3.inl b/glm/detail/type_mat4x3.inl index dd49c231..77a69ae5 100644 --- a/glm/detail/type_mat4x3.inl +++ b/glm/detail/type_mat4x3.inl @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -21,44 +25,13 @@ /// THE SOFTWARE. /// /// @ref core -/// @file glm/core/type_mat4x3.inl +/// @file glm/detail/type_mat4x3.inl /// @date 2006-04-17 / 2011-06-15 /// @author Christophe Riccio /////////////////////////////////////////////////////////////////////////////////// namespace glm { -#ifdef GLM_FORCE_SIZE_FUNC - template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR size_t tmat4x3::size() const - { - return 4; - } -#else - template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR length_t tmat4x3::length() const - { - return 4; - } -#endif - - ////////////////////////////////////// - // Accesses - - template - GLM_FUNC_QUALIFIER typename tmat4x3::col_type & tmat4x3::operator[](size_type i) - { - assert(i < this->length()); - return this->value[i]; - } - - template - GLM_FUNC_QUALIFIER typename tmat4x3::col_type const & tmat4x3::operator[](size_type i) const - { - assert(i < this->length()); - return this->value[i]; - } - ////////////////////////////////////////////////////////////// // Constructors @@ -250,6 +223,51 @@ namespace glm this->value[3] = col_type(0); } + ////////////////////////////////////// + // Accesses + +# ifdef GLM_FORCE_SIZE_FUNC + template + GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tmat4x3::size_type tmat4x3::size() const + { + return 4; + } + + template + GLM_FUNC_QUALIFIER typename tmat4x3::col_type & tmat4x3::operator[](typename tmat4x3::size_type i) + { + assert(i < this->size()); + return this->value[i]; + } + + template + GLM_FUNC_QUALIFIER typename tmat4x3::col_type const & tmat4x3::operator[](typename tmat4x3::size_type i) const + { + assert(i < this->size()); + return this->value[i]; + } +# else + template + GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tmat4x3::length_type tmat4x3::length() const + { + return 4; + } + + template + GLM_FUNC_QUALIFIER typename tmat4x3::col_type & tmat4x3::operator[](typename tmat4x3::length_type i) + { + assert(i < this->length()); + return this->value[i]; + } + + template + GLM_FUNC_QUALIFIER typename tmat4x3::col_type const & tmat4x3::operator[](typename tmat4x3::length_type i) const + { + assert(i < this->length()); + return this->value[i]; + } +# endif//GLM_FORCE_SIZE_FUNC + ////////////////////////////////////////////////////////////// // Unary updatable operators diff --git a/glm/detail/type_mat4x4.hpp b/glm/detail/type_mat4x4.hpp index dcb2a6a7..bc8cefff 100644 --- a/glm/detail/type_mat4x4.hpp +++ b/glm/detail/type_mat4x4.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -21,7 +25,7 @@ /// THE SOFTWARE. /// /// @ref core -/// @file glm/core/type_mat4x4.hpp +/// @file glm/detail/type_mat4x4.hpp /// @date 2005-01-27 / 2011-06-15 /// @author Christophe Riccio /////////////////////////////////////////////////////////////////////////////////// @@ -39,18 +43,11 @@ namespace glm template struct tmat4x4 { - typedef T value_type; - typedef std::size_t size_type; typedef tvec4 col_type; typedef tvec4 row_type; typedef tmat4x4 type; typedef tmat4x4 transpose_type; - -# ifdef GLM_FORCE_SIZE_FUNC - GLM_FUNC_DECL GLM_CONSTEXPR size_t size() const; -# else - GLM_FUNC_DECL GLM_CONSTEXPR length_t length() const; -# endif//GLM_FORCE_SIZE_FUNC + typedef T value_type; template friend tvec4 operator/(tmat4x4 const & m, tvec4 const & v); @@ -65,7 +62,6 @@ namespace glm public: // Constructors GLM_FUNC_DECL tmat4x4(); - //GLM_FUNC_DECL tmat4x4(tmat4x4 const & m); template GLM_FUNC_DECL tmat4x4(tmat4x4 const & m); @@ -123,11 +119,26 @@ namespace glm GLM_FUNC_DECL explicit tmat4x4(tmat3x4 const & x); GLM_FUNC_DECL explicit tmat4x4(tmat4x3 const & x); + ////////////////////////////////////// // Accesses - GLM_FUNC_DECL col_type & operator[](length_t i); - GLM_FUNC_DECL col_type const & operator[](length_t i) const; - //GLM_FUNC_DECL tmat4x4 & operator=(tmat4x4 const & m); +# ifdef GLM_FORCE_SIZE_FUNC + typedef size_t size_type; + GLM_FUNC_DECL GLM_CONSTEXPR size_t size() const; + + GLM_FUNC_DECL col_type & operator[](size_type i); + GLM_FUNC_DECL col_type const & operator[](size_type i) const; +# else + typedef length_t length_type; + GLM_FUNC_DECL GLM_CONSTEXPR length_type length() const; + + GLM_FUNC_DECL col_type & operator[](length_type i); + GLM_FUNC_DECL col_type const & operator[](length_type i) const; +# endif//GLM_FORCE_SIZE_FUNC + + ////////////////////////////////////// + // Unary arithmetic operators + template GLM_FUNC_DECL tmat4x4 & operator=(tmat4x4 const & m); template diff --git a/glm/detail/type_mat4x4.inl b/glm/detail/type_mat4x4.inl index 6a1a0cd2..cf37e090 100644 --- a/glm/detail/type_mat4x4.inl +++ b/glm/detail/type_mat4x4.inl @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -21,7 +25,7 @@ /// THE SOFTWARE. /// /// @ref core -/// @file glm/core/type_mat4x4.inl +/// @file glm/detail/type_mat4x4.inl /// @date 2005-01-27 / 2011-06-15 /// @author Christophe Riccio /////////////////////////////////////////////////////////////////////////////////// @@ -88,37 +92,6 @@ namespace detail } }//namespace detail -#ifdef GLM_FORCE_SIZE_FUNC - template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR size_t tmat4x4::size() const - { - return 4; - } -#else - template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR length_t tmat4x4::length() const - { - return 4; - } -#endif - - ////////////////////////////////////// - // Accesses - - template - GLM_FUNC_QUALIFIER typename tmat4x4::col_type & tmat4x4::operator[](length_t i) - { - assert(i < this->length()); - return this->value[i]; - } - - template - GLM_FUNC_QUALIFIER typename tmat4x4::col_type const & tmat4x4::operator[](length_t i) const - { - assert(i < this->length()); - return this->value[i]; - } - ////////////////////////////////////////////////////////////// // Constructors @@ -336,6 +309,51 @@ namespace detail this->value[3] = col_type(m[3], 1); } + ////////////////////////////////////// + // Accesses + +# ifdef GLM_FORCE_SIZE_FUNC + template + GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tmat4x4::size_type tmat4x4::size() const + { + return 4; + } + + template + GLM_FUNC_QUALIFIER typename tmat4x4::col_type & tmat4x4::operator[](typename tmat4x4::size_type i) + { + assert(i < this->size()); + return this->value[i]; + } + + template + GLM_FUNC_QUALIFIER typename tmat4x4::col_type const & tmat4x4::operator[](typename tmat4x4::size_type i) const + { + assert(i < this->size()); + return this->value[i]; + } +# else + template + GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tmat4x4::length_type tmat4x4::length() const + { + return 4; + } + + template + GLM_FUNC_QUALIFIER typename tmat4x4::col_type & tmat4x4::operator[](typename tmat4x4::length_type i) + { + assert(i < this->length()); + return this->value[i]; + } + + template + GLM_FUNC_QUALIFIER typename tmat4x4::col_type const & tmat4x4::operator[](typename tmat4x4::length_type i) const + { + assert(i < this->length()); + return this->value[i]; + } +# endif//GLM_FORCE_SIZE_FUNC + ////////////////////////////////////////////////////////////// // Operators diff --git a/glm/detail/type_vec.hpp b/glm/detail/type_vec.hpp index 95e1e9f5..3f16ba51 100644 --- a/glm/detail/type_vec.hpp +++ b/glm/detail/type_vec.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -21,7 +25,7 @@ /// THE SOFTWARE. /// /// @ref core -/// @file glm/core/type_vec.hpp +/// @file glm/detail/type_vec.hpp /// @date 2010-01-26 / 2014-10-05 /// @author Christophe Riccio /////////////////////////////////////////////////////////////////////////////////// diff --git a/glm/detail/type_vec.inl b/glm/detail/type_vec.inl index 4f691b62..1a5306d7 100644 --- a/glm/detail/type_vec.inl +++ b/glm/detail/type_vec.inl @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -21,7 +25,7 @@ /// THE SOFTWARE. /// /// @ref core -/// @file glm/core/type_vec.inl +/// @file glm/detail/type_vec.inl /// @date 2011-06-15 / 2011-06-15 /// @author Christophe Riccio /////////////////////////////////////////////////////////////////////////////////// diff --git a/glm/detail/type_vec1.hpp b/glm/detail/type_vec1.hpp index bd7aed19..0c819ac8 100644 --- a/glm/detail/type_vec1.hpp +++ b/glm/detail/type_vec1.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -21,7 +25,7 @@ /// THE SOFTWARE. /// /// @ref core -/// @file glm/core/type_vec1.hpp +/// @file glm/detail/type_vec1.hpp /// @date 2008-08-25 / 2011-06-15 /// @author Christophe Riccio /////////////////////////////////////////////////////////////////////////////////// @@ -51,17 +55,6 @@ namespace glm typedef tvec1 bool_type; typedef T value_type; - ////////////////////////////////////// - // Helper - -# ifdef GLM_FORCE_SIZE_FUNC - /// Return the count of components of the vector - GLM_FUNC_DECL GLM_CONSTEXPR size_t size() const; -# else - /// Return the count of components of the vector - GLM_FUNC_DECL GLM_CONSTEXPR length_t length() const; -# endif//GLM_FORCE_SIZE_FUNC - ////////////////////////////////////// // Data @@ -95,8 +88,21 @@ namespace glm ////////////////////////////////////// // Accesses - GLM_FUNC_DECL T & operator[](length_t i); - GLM_FUNC_DECL T const & operator[](length_t i) const; +# ifdef GLM_FORCE_SIZE_FUNC + /// Return the count of components of the vector + typedef size_t size_type; + GLM_FUNC_DECL GLM_CONSTEXPR size_type size() const; + + GLM_FUNC_DECL T & operator[](size_type i); + GLM_FUNC_DECL T const & operator[](size_type i) const; +# else + /// Return the count of components of the vector + typedef length_t length_type; + GLM_FUNC_DECL GLM_CONSTEXPR length_type length() const; + + GLM_FUNC_DECL T & operator[](length_type i); + GLM_FUNC_DECL T const & operator[](length_type i) const; +# endif//GLM_FORCE_SIZE_FUNC ////////////////////////////////////// // Implicit basic constructors diff --git a/glm/detail/type_vec1.inl b/glm/detail/type_vec1.inl index 6932c6dd..55811739 100644 --- a/glm/detail/type_vec1.inl +++ b/glm/detail/type_vec1.inl @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -21,50 +25,19 @@ /// THE SOFTWARE. /// /// @ref core -/// @file glm/core/type_vec1.inl +/// @file glm/detail/type_vec1.inl /// @date 2008-08-25 / 2011-06-15 /// @author Christophe Riccio /////////////////////////////////////////////////////////////////////////////////// namespace glm { -#ifdef GLM_FORCE_SIZE_FUNC - template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR size_t tvec1::size() const - { - return 1; - } -#else - template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR length_t tvec1::length() const - { - return 1; - } -#endif - - ////////////////////////////////////// - // Accesses - - template - GLM_FUNC_QUALIFIER T & tvec1::operator[](length_t i) - { - assert(i >= 0 && static_cast(i) < detail::component_count(*this)); - return (&x)[i]; - } - - template - GLM_FUNC_QUALIFIER T const & tvec1::operator[](length_t i) const - { - assert(i >= 0 && static_cast(i) < detail::component_count(*this)); - return (&x)[i]; - } - ////////////////////////////////////// // Implicit basic constructors template GLM_FUNC_QUALIFIER tvec1::tvec1() -# ifndef GLM_FORCE_NO_CTOR_INIT +# ifndef GLM_FORCE_NO_CTOR_INIT : x(0) # endif {} @@ -114,6 +87,51 @@ namespace glm : x(static_cast(v.x)) {} + ////////////////////////////////////// + // Component accesses + +# ifdef GLM_FORCE_SIZE_FUNC + template + GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tvec1::size_type tvec1::size() const + { + return 1; + } + + template + GLM_FUNC_QUALIFIER T & tvec1::operator[](typename tvec1::size_type i) + { + assert(i >= 0 && static_cast(i) < detail::component_count(*this)); + return (&x)[i]; + } + + template + GLM_FUNC_QUALIFIER T const & tvec1::operator[](typename tvec1::size_type i) const + { + assert(i >= 0 && static_cast(i) < detail::component_count(*this)); + return (&x)[i]; + } +# else + template + GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tvec1::length_type tvec1::length() const + { + return 1; + } + + template + GLM_FUNC_QUALIFIER T & tvec1::operator[](typename tvec1::length_type i) + { + assert(i >= 0 && static_cast(i) < detail::component_count(*this)); + return (&x)[i]; + } + + template + GLM_FUNC_QUALIFIER T const & tvec1::operator[](typename tvec1::length_type i) const + { + assert(i >= 0 && static_cast(i) < detail::component_count(*this)); + return (&x)[i]; + } +# endif//GLM_FORCE_SIZE_FUNC + ////////////////////////////////////// // Unary arithmetic operators diff --git a/glm/detail/type_vec2.hpp b/glm/detail/type_vec2.hpp index a0446246..8ad6f946 100644 --- a/glm/detail/type_vec2.hpp +++ b/glm/detail/type_vec2.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -21,7 +25,7 @@ /// THE SOFTWARE. /// /// @ref core -/// @file glm/core/type_vec2.hpp +/// @file glm/detail/type_vec2.hpp /// @date 2008-08-18 / 2013-08-27 /// @author Christophe Riccio /////////////////////////////////////////////////////////////////////////////////// @@ -50,18 +54,6 @@ namespace glm typedef tvec2 type; typedef tvec2 bool_type; typedef T value_type; - typedef int size_type; - - ////////////////////////////////////// - // Helper - -# ifdef GLM_FORCE_SIZE_FUNC - /// Return the count of components of the vector - GLM_FUNC_DECL GLM_CONSTEXPR size_t size() const; -# else - /// Return the count of components of the vector - GLM_FUNC_DECL GLM_CONSTEXPR length_t length() const; -# endif//GLM_FORCE_SIZE_FUNC ////////////////////////////////////// // Data @@ -95,10 +87,23 @@ namespace glm # endif ////////////////////////////////////// - // Accesses + // Component accesses - GLM_FUNC_DECL T & operator[](length_t i); - GLM_FUNC_DECL T const & operator[](length_t i) const; +# ifdef GLM_FORCE_SIZE_FUNC + /// Return the count of components of the vector + typedef size_t size_type; + GLM_FUNC_DECL GLM_CONSTEXPR size_type size() const; + + GLM_FUNC_DECL T & operator[](size_type i); + GLM_FUNC_DECL T const & operator[](size_type i) const; +# else + /// Return the count of components of the vector + typedef length_t length_type; + GLM_FUNC_DECL GLM_CONSTEXPR length_type length() const; + + GLM_FUNC_DECL T & operator[](length_type i); + GLM_FUNC_DECL T const & operator[](length_type i) const; +# endif//GLM_FORCE_SIZE_FUNC ////////////////////////////////////// // Implicit basic constructors diff --git a/glm/detail/type_vec2.inl b/glm/detail/type_vec2.inl index 9a2326a8..674f075c 100644 --- a/glm/detail/type_vec2.inl +++ b/glm/detail/type_vec2.inl @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -21,51 +25,20 @@ /// THE SOFTWARE. /// /// @ref core -/// @file glm/core/type_tvec2.inl +/// @file glm/detail/type_tvec2.inl /// @date 2008-08-18 / 2011-06-15 /// @author Christophe Riccio /////////////////////////////////////////////////////////////////////////////////// namespace glm { -#ifdef GLM_FORCE_SIZE_FUNC - template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR size_t tvec2::size() const - { - return 2; - } -#else - template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR length_t tvec2::length() const - { - return 2; - } -#endif - - ////////////////////////////////////// - // Accesses - - template - GLM_FUNC_QUALIFIER T & tvec2::operator[](length_t i) - { - assert(i >= 0 && static_cast(i) < detail::component_count(*this)); - return (&x)[i]; - } - - template - GLM_FUNC_QUALIFIER T const & tvec2::operator[](length_t i) const - { - assert(i >= 0 && static_cast(i) < detail::component_count(*this)); - return (&x)[i]; - } - ////////////////////////////////////// // Implicit basic constructors template GLM_FUNC_QUALIFIER tvec2::tvec2() # ifndef GLM_FORCE_NO_CTOR_INIT - : x(0), y(0) + : x(0), y(0) # endif {} @@ -88,8 +61,8 @@ namespace glm {} template - GLM_FUNC_QUALIFIER tvec2::tvec2(T const & s1, T const & s2) - : x(s1), y(s2) + GLM_FUNC_QUALIFIER tvec2::tvec2(T const & a, T const & b) + : x(a), y(b) {} ////////////////////////////////////// @@ -133,6 +106,51 @@ namespace glm , y(static_cast(v.y)) {} + ////////////////////////////////////// + // Component accesses + +# ifdef GLM_FORCE_SIZE_FUNC + template + GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tvec2::size_type tvec2::size() const + { + return 2; + } + + template + GLM_FUNC_QUALIFIER T & tvec2::operator[](typename tvec2::size_type i) + { + assert(i >= 0 && static_cast(i) < detail::component_count(*this)); + return (&x)[i]; + } + + template + GLM_FUNC_QUALIFIER T const & tvec2::operator[](typename tvec2::size_type i) const + { + assert(i >= 0 && static_cast(i) < detail::component_count(*this)); + return (&x)[i]; + } +# else + template + GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tvec2::length_type tvec2::length() const + { + return 2; + } + + template + GLM_FUNC_QUALIFIER T & tvec2::operator[](typename tvec2::length_type i) + { + assert(i >= 0 && static_cast(i) < detail::component_count(*this)); + return (&x)[i]; + } + + template + GLM_FUNC_QUALIFIER T const & tvec2::operator[](typename tvec2::length_type i) const + { + assert(i >= 0 && static_cast(i) < detail::component_count(*this)); + return (&x)[i]; + } +# endif//GLM_FORCE_SIZE_FUNC + ////////////////////////////////////// // Unary arithmetic operators diff --git a/glm/detail/type_vec3.hpp b/glm/detail/type_vec3.hpp index fba9d015..094a3703 100644 --- a/glm/detail/type_vec3.hpp +++ b/glm/detail/type_vec3.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -21,7 +25,7 @@ /// THE SOFTWARE. /// /// @ref core -/// @file glm/core/type_vec3.hpp +/// @file glm/detail/type_vec3.hpp /// @date 2008-08-22 / 2011-06-15 /// @author Christophe Riccio /////////////////////////////////////////////////////////////////////////////////// @@ -50,18 +54,6 @@ namespace glm typedef tvec3 type; typedef tvec3 bool_type; typedef T value_type; - typedef int size_type; - - ////////////////////////////////////// - // Helper - -# ifdef GLM_FORCE_SIZE_FUNC - /// Return the count of components of the vector - GLM_FUNC_DECL GLM_CONSTEXPR size_t size() const; -# else - /// Return the count of components of the vector - GLM_FUNC_DECL GLM_CONSTEXPR length_t length() const; -# endif//GLM_FORCE_SIZE_FUNC ////////////////////////////////////// // Data @@ -96,10 +88,23 @@ namespace glm # endif//GLM_LANG ////////////////////////////////////// - // Accesses + // Component accesses - GLM_FUNC_DECL T & operator[](length_t i); - GLM_FUNC_DECL T const & operator[](length_t i) const; +# ifdef GLM_FORCE_SIZE_FUNC + /// Return the count of components of the vector + typedef size_t size_type; + GLM_FUNC_DECL GLM_CONSTEXPR size_type size() const; + + GLM_FUNC_DECL T & operator[](size_type i); + GLM_FUNC_DECL T const & operator[](size_type i) const; +# else + /// Return the count of components of the vector + typedef length_t length_type; + GLM_FUNC_DECL GLM_CONSTEXPR length_type length() const; + + GLM_FUNC_DECL T & operator[](length_type i); + GLM_FUNC_DECL T const & operator[](length_type i) const; +# endif//GLM_FORCE_SIZE_FUNC ////////////////////////////////////// // Implicit basic constructors diff --git a/glm/detail/type_vec3.inl b/glm/detail/type_vec3.inl index 75459d7b..27c1b90d 100644 --- a/glm/detail/type_vec3.inl +++ b/glm/detail/type_vec3.inl @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -21,44 +25,13 @@ /// THE SOFTWARE. /// /// @ref core -/// @file glm/core/type_tvec3.inl +/// @file glm/detail/type_tvec3.inl /// @date 2008-08-22 / 2011-06-15 /// @author Christophe Riccio /////////////////////////////////////////////////////////////////////////////////// namespace glm { -#ifdef GLM_FORCE_SIZE_FUNC - template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR size_t tvec3::size() const - { - return 3; - } -#else - template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR length_t tvec3::length() const - { - return 3; - } -#endif - - ////////////////////////////////////// - // Accesses - - template - GLM_FUNC_QUALIFIER T & tvec3::operator[](length_t i) - { - assert(i >= 0 && static_cast(i) < detail::component_count(*this)); - return (&x)[i]; - } - - template - GLM_FUNC_QUALIFIER T const & tvec3::operator[](length_t i) const - { - assert(i >= 0 && static_cast(i) < detail::component_count(*this)); - return (&x)[i]; - } - ////////////////////////////////////// // Implicit basic constructors @@ -162,6 +135,51 @@ namespace glm z(static_cast(v.z)) {} + ////////////////////////////////////// + // Component accesses + +# ifdef GLM_FORCE_SIZE_FUNC + template + GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tvec3::size_type tvec3::size() const + { + return 3; + } + + template + GLM_FUNC_QUALIFIER T & tvec3::operator[](typename tvec3::size_type i) + { + assert(i >= 0 && static_cast(i) < detail::component_count(*this)); + return (&x)[i]; + } + + template + GLM_FUNC_QUALIFIER T const & tvec3::operator[](typename tvec3::size_type i) const + { + assert(i >= 0 && static_cast(i) < detail::component_count(*this)); + return (&x)[i]; + } +# else + template + GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tvec3::length_type tvec3::length() const + { + return 3; + } + + template + GLM_FUNC_QUALIFIER T & tvec3::operator[](typename tvec3::length_type i) + { + assert(i >= 0 && static_cast(i) < detail::component_count(*this)); + return (&x)[i]; + } + + template + GLM_FUNC_QUALIFIER T const & tvec3::operator[](typename tvec3::length_type i) const + { + assert(i >= 0 && static_cast(i) < detail::component_count(*this)); + return (&x)[i]; + } +# endif//GLM_FORCE_SIZE_FUNC + ////////////////////////////////////// // Unary arithmetic operators diff --git a/glm/detail/type_vec4.hpp b/glm/detail/type_vec4.hpp index 75ced992..b62906a2 100644 --- a/glm/detail/type_vec4.hpp +++ b/glm/detail/type_vec4.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -21,7 +25,7 @@ /// THE SOFTWARE. /// /// @ref core -/// @file glm/core/type_vec4.hpp +/// @file glm/detail/type_vec4.hpp /// @date 2008-08-22 / 2011-06-15 /// @author Christophe Riccio /////////////////////////////////////////////////////////////////////////////////// @@ -49,21 +53,48 @@ namespace detail typedef T type[4]; }; -# if(GLM_ARCH & GLM_ARCH_SSE2) +# if GLM_ARCH & GLM_ARCH_SSE2 template <> struct simd { typedef __m128 type; }; + + template <> + struct simd + { + typedef __m128i type; + }; + + template <> + struct simd + { + typedef __m128i type; + }; # endif -# if(GLM_ARCH & GLM_ARCH_AVX) +# if GLM_ARCH & GLM_ARCH_AVX template <> struct simd { typedef __m256d type; }; # endif + +# if GLM_ARCH & GLM_ARCH_AVX2 + template <> + struct simd + { + typedef __m256i type; + }; + + template <> + struct simd + { + typedef __m256i type; + }; +# endif + }//namespace detail template @@ -75,18 +106,6 @@ namespace detail typedef tvec4 type; typedef tvec4 bool_type; typedef T value_type; - typedef int size_type; - - ////////////////////////////////////// - // Helper - -# ifdef GLM_FORCE_SIZE_FUNC - /// Return the count of components of the vector - GLM_FUNC_DECL GLM_CONSTEXPR size_t size() const; -# else - /// Return the count of components of the vector - GLM_FUNC_DECL GLM_CONSTEXPR length_t length() const; -# endif//GLM_FORCE_SIZE_FUNC ////////////////////////////////////// // Data @@ -123,10 +142,23 @@ namespace detail # endif//GLM_LANG ////////////////////////////////////// - // Accesses + // Component accesses - GLM_FUNC_DECL T & operator[](length_t i); - GLM_FUNC_DECL T const & operator[](length_t i) const; +# ifdef GLM_FORCE_SIZE_FUNC + /// Return the count of components of the vector + typedef size_t size_type; + GLM_FUNC_DECL GLM_CONSTEXPR size_type size() const; + + GLM_FUNC_DECL T & operator[](size_type i); + GLM_FUNC_DECL T const & operator[](size_type i) const; +# else + /// Return the count of components of the vector + typedef length_t length_type; + GLM_FUNC_DECL GLM_CONSTEXPR length_type length() const; + + GLM_FUNC_DECL T & operator[](length_type i); + GLM_FUNC_DECL T const & operator[](length_type i) const; +# endif//GLM_FORCE_SIZE_FUNC ////////////////////////////////////// // Implicit basic constructors diff --git a/glm/detail/type_vec4.inl b/glm/detail/type_vec4.inl index 04135f8d..f14b9cf2 100644 --- a/glm/detail/type_vec4.inl +++ b/glm/detail/type_vec4.inl @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -21,44 +25,13 @@ /// THE SOFTWARE. /// /// @ref core -/// @file glm/core/type_tvec4.inl +/// @file glm/detail/type_tvec4.inl /// @date 2008-08-23 / 2011-06-15 /// @author Christophe Riccio /////////////////////////////////////////////////////////////////////////////////// namespace glm { -#ifdef GLM_FORCE_SIZE_FUNC - template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR size_t tvec4::size() const - { - return 4; - } -#else - template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR length_t tvec4::length() const - { - return 4; - } -#endif - - ////////////////////////////////////// - // Accesses - - template - GLM_FUNC_QUALIFIER T & tvec4::operator[](length_t i) - { - assert(i >= 0 && static_cast(i) < detail::component_count(*this)); - return (&x)[i]; - } - - template - GLM_FUNC_QUALIFIER T const & tvec4::operator[](length_t i) const - { - assert(i >= 0 && static_cast(i) < detail::component_count(*this)); - return (&x)[i]; - } - ////////////////////////////////////// // Implicit basic constructors @@ -264,6 +237,51 @@ namespace glm w(static_cast(v.w)) {} + ////////////////////////////////////// + // Component accesses + +# ifdef GLM_FORCE_SIZE_FUNC + template + GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tvec4::size_type tvec4::size() const + { + return 4; + } + + template + GLM_FUNC_QUALIFIER T & tvec4::operator[](typename tvec4::size_type i) + { + assert(i >= 0 && static_cast(i) < detail::component_count(*this)); + return (&x)[i]; + } + + template + GLM_FUNC_QUALIFIER T const & tvec4::operator[](typename tvec4::size_type i) const + { + assert(i >= 0 && static_cast(i) < detail::component_count(*this)); + return (&x)[i]; + } +# else + template + GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tvec4::length_type tvec4::length() const + { + return 4; + } + + template + GLM_FUNC_QUALIFIER T & tvec4::operator[](typename tvec4::length_type i) + { + assert(i >= 0 && static_cast(i) < detail::component_count(*this)); + return (&x)[i]; + } + + template + GLM_FUNC_QUALIFIER T const & tvec4::operator[](typename tvec4::length_type i) const + { + assert(i >= 0 && static_cast(i) < detail::component_count(*this)); + return (&x)[i]; + } +# endif//GLM_FORCE_SIZE_FUNC + ////////////////////////////////////// // Unary arithmetic operators diff --git a/glm/exponential.hpp b/glm/exponential.hpp index d11f58ff..fdc6ba8f 100644 --- a/glm/exponential.hpp +++ b/glm/exponential.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE diff --git a/glm/ext.hpp b/glm/ext.hpp index ea0b009e..b5d0921b 100644 --- a/glm/ext.hpp +++ b/glm/ext.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -48,11 +52,6 @@ /// Even if it's highly unrecommended, it's possible to include all the extensions /// at once by including . Otherwise, each extension needs to be /// included a specific file. -/// -/// @defgroup virtrev VIRTREV Extensions -/// -/// @brief Extensions develop and maintain by Mathieu [matrem] Roumillac -/// (http://www.opengl.org/discussion_boards/ubbthreads.php?ubb=showprofile&User=22660). /////////////////////////////////////////////////////////////////////////////////// #pragma once @@ -65,6 +64,7 @@ #include "./gtc/bitfield.hpp" #include "./gtc/constants.hpp" #include "./gtc/epsilon.hpp" +#include "./gtc/integer.hpp" #include "./gtc/matrix_access.hpp" #include "./gtc/matrix_integer.hpp" #include "./gtc/matrix_inverse.hpp" @@ -96,7 +96,6 @@ #include "./gtx/fast_trigonometry.hpp" #include "./gtx/gradient_paint.hpp" #include "./gtx/handed_coordinate_space.hpp" -#include "./gtx/inertia.hpp" #include "./gtx/integer.hpp" #include "./gtx/intersect.hpp" #include "./gtx/log_base.hpp" @@ -125,6 +124,7 @@ #endif #include "./gtx/transform.hpp" #include "./gtx/transform2.hpp" +#include "./gtx/type_aligned.hpp" #include "./gtx/vector_angle.hpp" #include "./gtx/vector_query.hpp" #include "./gtx/wrap.hpp" diff --git a/glm/fwd.hpp b/glm/fwd.hpp index 1978040d..33cf45ee 100644 --- a/glm/fwd.hpp +++ b/glm/fwd.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE diff --git a/glm/geometric.hpp b/glm/geometric.hpp index 98a411a6..36df9c62 100644 --- a/glm/geometric.hpp +++ b/glm/geometric.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE diff --git a/glm/glm.hpp b/glm/glm.hpp index 5526a1fd..ac9c73ad 100644 --- a/glm/glm.hpp +++ b/glm/glm.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -25,9 +29,9 @@ /// @date 2005-01-14 / 2011-10-24 /// @author Christophe Riccio /// -/// @defgroup core GLM Core -/// -/// @brief The core of GLM, which implements exactly and only the GLSL specification to the degree possible. +/// @defgroup core GLM Core +/// +/// @brief The core of GLM, which implements exactly and only the GLSL specification to the degree possible. /// /// The GLM core consists of @ref core_types "C++ types that mirror GLSL types" and /// C++ functions that mirror the GLSL functions. It also includes @@ -37,7 +41,6 @@ /// The best documentation for GLM Core is the current GLSL specification, /// version 4.2 /// (pdf file). -/// There are a few @ref pg_differences "differences" between GLM core and GLSL. /// /// GLM core functionnalities require to be included to be used. /// diff --git a/glm/gtc/bitfield.hpp b/glm/gtc/bitfield.hpp index 82f056c8..56aa5013 100644 --- a/glm/gtc/bitfield.hpp +++ b/glm/gtc/bitfield.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE diff --git a/glm/gtc/bitfield.inl b/glm/gtc/bitfield.inl index 0cbf3d2b..aa7d4b5f 100644 --- a/glm/gtc/bitfield.inl +++ b/glm/gtc/bitfield.inl @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE diff --git a/glm/gtc/constants.hpp b/glm/gtc/constants.hpp index a39c9bd1..7300a618 100644 --- a/glm/gtc/constants.hpp +++ b/glm/gtc/constants.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -51,7 +55,6 @@ namespace glm /// @{ /// Return the epsilon constant for floating point types. - /// @todo Implement epsilon for half-precision floating point type. /// @see gtc_constants template GLM_FUNC_DECL genType epsilon(); diff --git a/glm/gtc/constants.inl b/glm/gtc/constants.inl index 4b351418..906c5096 100644 --- a/glm/gtc/constants.inl +++ b/glm/gtc/constants.inl @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE diff --git a/glm/gtc/epsilon.hpp b/glm/gtc/epsilon.hpp index 4befdb5c..54bf16dc 100644 --- a/glm/gtc/epsilon.hpp +++ b/glm/gtc/epsilon.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE diff --git a/glm/gtc/epsilon.inl b/glm/gtc/epsilon.inl index a88fb284..239d87da 100644 --- a/glm/gtc/epsilon.inl +++ b/glm/gtc/epsilon.inl @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE diff --git a/glm/gtc/integer.hpp b/glm/gtc/integer.hpp new file mode 100644 index 00000000..edcbb9b8 --- /dev/null +++ b/glm/gtc/integer.hpp @@ -0,0 +1,105 @@ +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @ref gtc_integer +/// @file glm/gtc/integer.hpp +/// @date 2014-11-17 / 2014-11-17 +/// @author Christophe Riccio +/// +/// @see core (dependence) +/// @see gtc_integer (dependence) +/// +/// @defgroup gtc_integer GLM_GTC_integer +/// @ingroup gtc +/// +/// @brief Allow to perform bit operations on integer values +/// +/// need to be included to use these functionalities. +/////////////////////////////////////////////////////////////////////////////////// + +#pragma once + +// Dependencies +#include "../detail/setup.hpp" +#include "../detail/precision.hpp" +#include "../detail/func_common.hpp" +#include "../detail/func_integer.hpp" +#include "../detail/func_exponential.hpp" +#include + +#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED)) +# pragma message("GLM: GLM_GTC_integer extension included") +#endif + +namespace glm +{ + /// @addtogroup gtc_integer + /// @{ + + /// Returns the log2 of x for integer values. Can be reliably using to compute mipmap count from the texture size. + /// @see gtc_integer + template + GLM_FUNC_DECL genIUType log2(genIUType x); + + /// Modulus. Returns x % y + /// for each component in x using the floating point value y. + /// + /// @tparam genIUType Integer-point scalar or vector types. + /// + /// @see gtc_integer + /// @see GLSL mod man page + /// @see GLSL 4.20.8 specification, section 8.3 Common Functions + template + GLM_FUNC_DECL genIUType mod(genIUType x, genIUType y); + + /// Modulus. Returns x % y + /// for each component in x using the floating point value y. + /// + /// @tparam T Integer scalar types. + /// @tparam vecType vector types. + /// + /// @see gtc_integer + /// @see GLSL mod man page + /// @see GLSL 4.20.8 specification, section 8.3 Common Functions + template class vecType> + GLM_FUNC_DECL vecType mod(vecType const & x, T y); + + /// Modulus. Returns x % y + /// for each component in x using the floating point value y. + /// + /// @tparam T Integer scalar types. + /// @tparam vecType vector types. + /// + /// @see gtc_integer + /// @see GLSL mod man page + /// @see GLSL 4.20.8 specification, section 8.3 Common Functions + template class vecType> + GLM_FUNC_DECL vecType mod(vecType const & x, vecType const & y); + + /// @} +} //namespace glm + +#include "integer.inl" diff --git a/glm/gtc/integer.inl b/glm/gtc/integer.inl new file mode 100644 index 00000000..5a23f0b2 --- /dev/null +++ b/glm/gtc/integer.inl @@ -0,0 +1,74 @@ +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @ref gtc_integer +/// @file glm/gtc/integer.inl +/// @date 2014-11-17 / 2014-11-17 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// + +namespace glm{ +namespace detail +{ + template class vecType> + struct compute_log2 + { + GLM_FUNC_QUALIFIER static vecType call(vecType const & vec) + { + //Equivalent to return findMSB(vec); but save one function call in ASM with VC + //return findMSB(vec); + return detail::compute_findMSB_vec::call(vec); + } + }; + +# if GLM_HAS_BITSCAN_WINDOWS + template + struct compute_log2 + { + GLM_FUNC_QUALIFIER static tvec4 call(tvec4 const & vec) + { + tvec4 Result(glm::uninitialize); + + _BitScanReverse(reinterpret_cast(&Result.x), vec.x); + _BitScanReverse(reinterpret_cast(&Result.y), vec.y); + _BitScanReverse(reinterpret_cast(&Result.z), vec.z); + _BitScanReverse(reinterpret_cast(&Result.w), vec.w); + + return Result; + } + }; +# endif//GLM_HAS_BITSCAN_WINDOWS + + template class vecType, typename genType> + struct compute_mod + { + GLM_FUNC_QUALIFIER static vecType call(vecType const & a, genType const & b) + { + return a % b; + } + }; +}//namespace detail +}//namespace glm diff --git a/glm/gtc/matrix_access.hpp b/glm/gtc/matrix_access.hpp index aeeff37c..6541fe99 100644 --- a/glm/gtc/matrix_access.hpp +++ b/glm/gtc/matrix_access.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE diff --git a/glm/gtc/matrix_access.inl b/glm/gtc/matrix_access.inl index 1a1a4803..1799b0d6 100644 --- a/glm/gtc/matrix_access.inl +++ b/glm/gtc/matrix_access.inl @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE diff --git a/glm/gtc/matrix_integer.hpp b/glm/gtc/matrix_integer.hpp index 35829eda..8d99615d 100644 --- a/glm/gtc/matrix_integer.hpp +++ b/glm/gtc/matrix_integer.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE diff --git a/glm/gtc/matrix_inverse.hpp b/glm/gtc/matrix_inverse.hpp index 283eebd0..76ab2b8a 100644 --- a/glm/gtc/matrix_inverse.hpp +++ b/glm/gtc/matrix_inverse.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -38,6 +42,10 @@ // Dependencies #include "../detail/setup.hpp" +#include "../matrix.hpp" +#include "../mat2x2.hpp" +#include "../mat3x3.hpp" +#include "../mat4x4.hpp" #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED)) # pragma message("GLM: GLM_GTC_matrix_inverse extension included") diff --git a/glm/gtc/matrix_inverse.inl b/glm/gtc/matrix_inverse.inl index 97010a81..c3409318 100644 --- a/glm/gtc/matrix_inverse.inl +++ b/glm/gtc/matrix_inverse.inl @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -26,17 +30,10 @@ /// @author Christophe Riccio /////////////////////////////////////////////////////////////////////////////////// -#include "../mat2x2.hpp" -#include "../mat3x3.hpp" -#include "../mat4x4.hpp" - namespace glm { template - GLM_FUNC_QUALIFIER tmat3x3 affineInverse - ( - tmat3x3 const & m - ) + GLM_FUNC_QUALIFIER tmat3x3 affineInverse(tmat3x3 const & m) { tmat3x3 Result(m); Result[2] = tvec3(0, 0, 1); @@ -47,10 +44,7 @@ namespace glm } template - GLM_FUNC_QUALIFIER tmat4x4 affineInverse - ( - tmat4x4 const & m - ) + GLM_FUNC_QUALIFIER tmat4x4 affineInverse(tmat4x4 const & m) { tmat4x4 Result(m); Result[3] = tvec4(0, 0, 0, 1); @@ -61,10 +55,7 @@ namespace glm } template - GLM_FUNC_QUALIFIER tmat2x2 inverseTranspose - ( - tmat2x2 const & m - ) + GLM_FUNC_QUALIFIER tmat2x2 inverseTranspose(tmat2x2 const & m) { T Determinant = m[0][0] * m[1][1] - m[1][0] * m[0][1]; @@ -78,10 +69,7 @@ namespace glm } template - GLM_FUNC_QUALIFIER tmat3x3 inverseTranspose - ( - tmat3x3 const & m - ) + GLM_FUNC_QUALIFIER tmat3x3 inverseTranspose(tmat3x3 const & m) { T Determinant = + m[0][0] * (m[1][1] * m[2][2] - m[1][2] * m[2][1]) @@ -104,10 +92,7 @@ namespace glm } template - GLM_FUNC_QUALIFIER tmat4x4 inverseTranspose - ( - tmat4x4 const & m - ) + GLM_FUNC_QUALIFIER tmat4x4 inverseTranspose(tmat4x4 const & m) { T SubFactor00 = m[2][2] * m[3][3] - m[3][2] * m[2][3]; T SubFactor01 = m[2][1] * m[3][3] - m[3][1] * m[2][3]; diff --git a/glm/gtc/matrix_transform.hpp b/glm/gtc/matrix_transform.hpp index 83f22b0d..c7445e47 100644 --- a/glm/gtc/matrix_transform.hpp +++ b/glm/gtc/matrix_transform.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -77,8 +81,6 @@ namespace glm /// // m[3][0] == 1.0f, m[3][1] == 1.0f, m[3][2] == 1.0f, m[3][3] == 1.0f /// @endcode /// @see gtc_matrix_transform - /// @see gtx_transform - /// @see - translate(T x, T y, T z) /// @see - translate(tmat4x4 const & m, T x, T y, T z) /// @see - translate(tvec3 const & v) template @@ -93,8 +95,6 @@ namespace glm /// @param axis Rotation axis, recommanded to be normalized. /// @tparam T Value type used to build the matrix. Supported: half, float or double. /// @see gtc_matrix_transform - /// @see gtx_transform - /// @see - rotate(T angle, T x, T y, T z) /// @see - rotate(tmat4x4 const & m, T angle, T x, T y, T z) /// @see - rotate(T angle, tvec3 const & v) template @@ -109,8 +109,6 @@ namespace glm /// @param v Ratio of scaling for each axis. /// @tparam T Value type used to build the matrix. Currently supported: half (not recommanded), float or double. /// @see gtc_matrix_transform - /// @see gtx_transform - /// @see - scale(T x, T y, T z) scale(T const & x, T const & y, T const & z) /// @see - scale(tmat4x4 const & m, T x, T y, T z) /// @see - scale(tvec3 const & v) template @@ -175,10 +173,10 @@ namespace glm /// Creates a matrix for a symetric perspective-view frustum. /// - /// @param fovy Expressed in radians. - /// @param aspect - /// @param near - /// @param far + /// @param fovy Specifies the field of view angle, in degrees, in the y direction. Expressed in radians. + /// @param aspect Specifies the aspect ratio that determines the field of view in the x direction. The aspect ratio is the ratio of x (width) to y (height). + /// @param near Specifies the distance from the viewer to the near clipping plane (always positive). + /// @param far Specifies the distance from the viewer to the far clipping plane (always positive). /// @tparam T Value type used to build the matrix. Currently supported: half (not recommanded), float or double. /// @see gtc_matrix_transform template @@ -193,8 +191,8 @@ namespace glm /// @param fov Expressed in radians. /// @param width /// @param height - /// @param near - /// @param far + /// @param near Specifies the distance from the viewer to the near clipping plane (always positive). + /// @param far Specifies the distance from the viewer to the far clipping plane (always positive). /// @tparam T Value type used to build the matrix. Currently supported: half (not recommanded), float or double. /// @see gtc_matrix_transform template @@ -207,9 +205,9 @@ namespace glm /// Creates a matrix for a symmetric perspective-view frustum with far plane at infinite. /// - /// @param fovy Expressed in radians. - /// @param aspect - /// @param near + /// @param fovy Specifies the field of view angle, in degrees, in the y direction. Expressed in radians. + /// @param aspect Specifies the aspect ratio that determines the field of view in the x direction. The aspect ratio is the ratio of x (width) to y (height). + /// @param near Specifies the distance from the viewer to the near clipping plane (always positive). /// @tparam T Value type used to build the matrix. Currently supported: half (not recommanded), float or double. /// @see gtc_matrix_transform template @@ -218,9 +216,9 @@ namespace glm /// Creates a matrix for a symmetric perspective-view frustum with far plane at infinite for graphics hardware that doesn't support depth clamping. /// - /// @param fovy Expressed in radians. - /// @param aspect - /// @param near + /// @param fovy Specifies the field of view angle, in degrees, in the y direction. Expressed in radians. + /// @param aspect Specifies the aspect ratio that determines the field of view in the x direction. The aspect ratio is the ratio of x (width) to y (height). + /// @param near Specifies the distance from the viewer to the near clipping plane (always positive). /// @tparam T Value type used to build the matrix. Currently supported: half (not recommanded), float or double. /// @see gtc_matrix_transform template @@ -229,9 +227,10 @@ namespace glm /// Creates a matrix for a symmetric perspective-view frustum with far plane at infinite for graphics hardware that doesn't support depth clamping. /// - /// @param fovy Expressed in radians. - /// @param aspect - /// @param near + /// @param fovy Specifies the field of view angle, in degrees, in the y direction. Expressed in radians. + /// @param aspect Specifies the aspect ratio that determines the field of view in the x direction. The aspect ratio is the ratio of x (width) to y (height). + /// @param near Specifies the distance from the viewer to the near clipping plane (always positive). + /// @param ep /// @tparam T Value type used to build the matrix. Currently supported: half (not recommanded), float or double. /// @see gtc_matrix_transform template @@ -240,10 +239,11 @@ namespace glm /// Map the specified object coordinates (obj.x, obj.y, obj.z) into window coordinates. /// - /// @param obj - /// @param model - /// @param proj - /// @param viewport + /// @param obj Specify the object coordinates. + /// @param model Specifies the current modelview matrix + /// @param proj Specifies the current projection matrix + /// @param viewport Specifies the current viewport + /// @return Return the computed window coordinates. /// @tparam T Native type used for the computation. Currently supported: half (not recommanded), float or double. /// @tparam U Currently supported: Floating-point types and integer types. /// @see gtc_matrix_transform @@ -256,10 +256,11 @@ namespace glm /// Map the specified window coordinates (win.x, win.y, win.z) into object coordinates. /// - /// @param win - /// @param model - /// @param proj - /// @param viewport + /// @param win Specify the window coordinates to be mapped. + /// @param model Specifies the modelview matrix + /// @param proj Specifies the projection matrix + /// @param viewport Specifies the viewport + /// @return Returns the computed object coordinates. /// @tparam T Native type used for the computation. Currently supported: half (not recommanded), float or double. /// @tparam U Currently supported: Floating-point types and integer types. /// @see gtc_matrix_transform diff --git a/glm/gtc/matrix_transform.inl b/glm/gtc/matrix_transform.inl index a18d823f..a372eee8 100644 --- a/glm/gtc/matrix_transform.inl +++ b/glm/gtc/matrix_transform.inl @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE diff --git a/glm/gtc/noise.hpp b/glm/gtc/noise.hpp index 6450129e..d4ae69ef 100644 --- a/glm/gtc/noise.hpp +++ b/glm/gtc/noise.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -43,6 +47,13 @@ // Dependencies #include "../detail/setup.hpp" #include "../detail/precision.hpp" +#include "../detail/_noise.hpp" +#include "../geometric.hpp" +#include "../common.hpp" +#include "../vector_relational.hpp" +#include "../vec2.hpp" +#include "../vec3.hpp" +#include "../vec4.hpp" #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED)) # pragma message("GLM: GLM_GTC_noise extension included") diff --git a/glm/gtc/noise.inl b/glm/gtc/noise.inl index 5f61178e..20884bb7 100644 --- a/glm/gtc/noise.inl +++ b/glm/gtc/noise.inl @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -31,11 +35,6 @@ // http://www.itn.liu.se/~stegu/simplexnoise/simplexnoise.pdf /////////////////////////////////////////////////////////////////////////////////// -#include "../geometric.hpp" -#include "../common.hpp" -#include "../vector_relational.hpp" -#include "../detail/_noise.hpp" - namespace glm{ namespace gtc { diff --git a/glm/gtc/packing.hpp b/glm/gtc/packing.hpp index 1233e349..99c6f023 100644 --- a/glm/gtc/packing.hpp +++ b/glm/gtc/packing.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE diff --git a/glm/gtc/packing.inl b/glm/gtc/packing.inl index 571d0f4d..be9ab4ae 100644 --- a/glm/gtc/packing.inl +++ b/glm/gtc/packing.inl @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -146,7 +150,7 @@ namespace detail else if(glm::isinf(x)) return 0x1f << 6; -# if(GLM_COMPILER & GLM_COMPILER_GCC || GLM_COMPILER & GLM_COMPILER_CLANG) +# if(GLM_COMPILER & GLM_COMPILER_GCC || GLM_COMPILER & (GLM_COMPILER_APPLE_CLANG | GLM_COMPILER_LLVM)) uint Pack = 0; memcpy(&Pack, &x, sizeof(Pack)); # else @@ -167,7 +171,7 @@ namespace detail uint Result = packed11ToFloat(x); -# if(GLM_COMPILER & GLM_COMPILER_GCC || GLM_COMPILER & GLM_COMPILER_CLANG) +# if(GLM_COMPILER & GLM_COMPILER_GCC || GLM_COMPILER & (GLM_COMPILER_APPLE_CLANG | GLM_COMPILER_LLVM)) float Temp = 0; memcpy(&Temp, &Result, sizeof(Temp)); return Temp; @@ -185,7 +189,7 @@ namespace detail else if(glm::isinf(x)) return 0x1f << 5; -# if(GLM_COMPILER & GLM_COMPILER_GCC || GLM_COMPILER & GLM_COMPILER_CLANG) +# if(GLM_COMPILER & GLM_COMPILER_GCC || GLM_COMPILER & (GLM_COMPILER_APPLE_CLANG | GLM_COMPILER_LLVM)) uint Pack = 0; memcpy(&Pack, &x, sizeof(Pack)); # else @@ -206,7 +210,7 @@ namespace detail uint Result = packed10ToFloat(x); -# if(GLM_COMPILER & GLM_COMPILER_GCC || GLM_COMPILER & GLM_COMPILER_CLANG) +# if(GLM_COMPILER & GLM_COMPILER_GCC || GLM_COMPILER & (GLM_COMPILER_APPLE_CLANG | GLM_COMPILER_LLVM)) float Temp = 0; memcpy(&Temp, &Result, sizeof(Temp)); return Temp; diff --git a/glm/gtc/quaternion.hpp b/glm/gtc/quaternion.hpp index 31fe68e6..15372cd0 100644 --- a/glm/gtc/quaternion.hpp +++ b/glm/gtc/quaternion.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -58,25 +62,30 @@ namespace glm template struct tquat { + typedef tquat type; typedef T value_type; - typedef tvec4 bool_type; public: T x, y, z, w; -#if GLM_FORCE_SIZE_FUNC - /// Return the count of components of a quaternion - GLM_FUNC_DECL GLM_CONSTEXPR size_t size() const; -#else - /// Return the count of components of a quaternion - GLM_FUNC_DECL GLM_CONSTEXPR length_t length() const; -#endif//GLM_FORCE_SIZE_FUNC - ////////////////////////////////////// - // Accesses + // Component accesses - GLM_FUNC_DECL T & operator[](length_t i); - GLM_FUNC_DECL T const & operator[](length_t i) const; +# ifdef GLM_FORCE_SIZE_FUNC + typedef size_t size_type; + /// Return the count of components of a quaternion + GLM_FUNC_DECL GLM_CONSTEXPR size_type size() const; + + GLM_FUNC_DECL T & operator[](size_type i); + GLM_FUNC_DECL T const & operator[](size_type i) const; +# else + typedef length_t length_type; + /// Return the count of components of a quaternion + GLM_FUNC_DECL GLM_CONSTEXPR length_type length() const; + + GLM_FUNC_DECL T & operator[](length_type i); + GLM_FUNC_DECL T const & operator[](length_type i) const; +# endif//GLM_FORCE_SIZE_FUNC ////////////////////////////////////// // Implicit basic constructors diff --git a/glm/gtc/quaternion.inl b/glm/gtc/quaternion.inl index 049df569..d9615ce1 100644 --- a/glm/gtc/quaternion.inl +++ b/glm/gtc/quaternion.inl @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -45,43 +49,57 @@ namespace detail }; }//namespace detail -#if GLM_FORCE_SIZE_FUNC - template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR size_t tquat::size() const - { - return 4; - } -#else - template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR length_t tquat::length() const - { - return 4; - } -#endif - ////////////////////////////////////// - // Accesses + // Component accesses - template - GLM_FUNC_QUALIFIER T & tquat::operator[] (length_t i) - { - assert(i >= 0 && static_cast(i) < detail::component_count(*this)); - return (&x)[i]; - } +# ifdef GLM_FORCE_SIZE_FUNC + template + GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tquat::size_type tquat::size() const + { + return 4; + } - template - GLM_FUNC_QUALIFIER T const & tquat::operator[] (length_t i) const - { - assert(i >= 0 && static_cast(i) < detail::component_count(*this)); - return (&x)[i]; - } + template + GLM_FUNC_QUALIFIER T & tquat::operator[](typename tquat::size_type i) + { + assert(i >= 0 && static_cast(i) < detail::component_count(*this)); + return (&x)[i]; + } + + template + GLM_FUNC_QUALIFIER T const & tquat::operator[](typename tquat::size_type i) const + { + assert(i >= 0 && static_cast(i) < detail::component_count(*this)); + return (&x)[i]; + } +# else + template + GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tquat::length_type tquat::length() const + { + return 4; + } + + template + GLM_FUNC_QUALIFIER T & tquat::operator[](typename tquat::length_type i) + { + assert(i >= 0 && static_cast(i) < detail::component_count(*this)); + return (&x)[i]; + } + + template + GLM_FUNC_QUALIFIER T const & tquat::operator[](typename tquat::length_type i) const + { + assert(i >= 0 && static_cast(i) < detail::component_count(*this)); + return (&x)[i]; + } +# endif//GLM_FORCE_SIZE_FUNC ////////////////////////////////////// // Implicit basic constructors template GLM_FUNC_QUALIFIER tquat::tquat() -# ifndef GLM_FORCE_NO_CTOR_INIT +# ifndef GLM_FORCE_NO_CTOR_INIT : x(0), y(0), z(0), w(1) # endif {} diff --git a/glm/gtc/random.hpp b/glm/gtc/random.hpp index 68074235..83b79ef5 100644 --- a/glm/gtc/random.hpp +++ b/glm/gtc/random.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE diff --git a/glm/gtc/random.inl b/glm/gtc/random.inl index cd5d3508..b6af9e50 100644 --- a/glm/gtc/random.inl +++ b/glm/gtc/random.inl @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE diff --git a/glm/gtc/reciprocal.hpp b/glm/gtc/reciprocal.hpp index eb976575..91c23e3b 100644 --- a/glm/gtc/reciprocal.hpp +++ b/glm/gtc/reciprocal.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE diff --git a/glm/gtc/reciprocal.inl b/glm/gtc/reciprocal.inl index 63d9156c..b1a0d5c7 100644 --- a/glm/gtc/reciprocal.inl +++ b/glm/gtc/reciprocal.inl @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE diff --git a/glm/gtc/round.hpp b/glm/gtc/round.hpp index 9e8eee77..fd68d615 100644 --- a/glm/gtc/round.hpp +++ b/glm/gtc/round.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -107,19 +111,19 @@ namespace glm template class vecType> GLM_FUNC_DECL vecType roundPowerOfTwo(vecType const & value); - /// Return true if the is a multiple of . + /// Return true if the 'Value' is a multiple of 'Multiple'. /// /// @see gtc_round template GLM_FUNC_DECL bool isMultiple(genIUType Value, genIUType Multiple); - /// Return true if the is a multiple of . + /// Return true if the 'Value' is a multiple of 'Multiple'. /// /// @see gtc_round template class vecType> GLM_FUNC_DECL vecType isMultiple(vecType const & Value, T Multiple); - /// Return true if the is a multiple of . + /// Return true if the 'Value' is a multiple of 'Multiple'. /// /// @see gtc_round template class vecType> diff --git a/glm/gtc/round.inl b/glm/gtc/round.inl index 3297c95b..ceffb7cd 100644 --- a/glm/gtc/round.inl +++ b/glm/gtc/round.inl @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE diff --git a/glm/gtc/type_precision.hpp b/glm/gtc/type_precision.hpp index 57ee9805..6ed8614c 100644 --- a/glm/gtc/type_precision.hpp +++ b/glm/gtc/type_precision.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -44,6 +48,7 @@ // Dependency: #include "../gtc/quaternion.hpp" +#include "../gtc/vec1.hpp" #include "../vec2.hpp" #include "../vec3.hpp" #include "../vec4.hpp" diff --git a/glm/gtc/type_precision.inl b/glm/gtc/type_precision.inl index aee1a31a..0a1c0165 100644 --- a/glm/gtc/type_precision.inl +++ b/glm/gtc/type_precision.inl @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE diff --git a/glm/gtc/type_ptr.hpp b/glm/gtc/type_ptr.hpp index c96e01ff..8a6c5e25 100644 --- a/glm/gtc/type_ptr.hpp +++ b/glm/gtc/type_ptr.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE diff --git a/glm/gtc/type_ptr.inl b/glm/gtc/type_ptr.inl index c747ef26..d4a93b55 100644 --- a/glm/gtc/type_ptr.inl +++ b/glm/gtc/type_ptr.inl @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE diff --git a/glm/gtc/ulp.hpp b/glm/gtc/ulp.hpp index ee7a1f0a..ee634455 100644 --- a/glm/gtc/ulp.hpp +++ b/glm/gtc/ulp.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE diff --git a/glm/gtc/ulp.inl b/glm/gtc/ulp.inl index 2d0e730b..34cd1e53 100644 --- a/glm/gtc/ulp.inl +++ b/glm/gtc/ulp.inl @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE diff --git a/glm/gtc/vec1.hpp b/glm/gtc/vec1.hpp index 9ff69cfb..6a474d39 100644 --- a/glm/gtc/vec1.hpp +++ b/glm/gtc/vec1.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -27,8 +31,8 @@ /// /// @see core (dependence) /// -/// @defgroup gtc_vec1 GLM_GTX_vec1 -/// @ingroup gtx +/// @defgroup gtc_vec1 GLM_GTC_vec1 +/// @ingroup gtc /// /// @brief Add vec1, ivec1, uvec1 and bvec1 types. /// need to be included to use these functionalities. diff --git a/glm/gtc/vec1.inl b/glm/gtc/vec1.inl index d8322494..c8afef9e 100644 --- a/glm/gtc/vec1.inl +++ b/glm/gtc/vec1.inl @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE diff --git a/glm/gtx/associated_min_max.hpp b/glm/gtx/associated_min_max.hpp index a5ffd8df..09d046d3 100644 --- a/glm/gtx/associated_min_max.hpp +++ b/glm/gtx/associated_min_max.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE diff --git a/glm/gtx/associated_min_max.inl b/glm/gtx/associated_min_max.inl index dd714d8e..78f050e1 100644 --- a/glm/gtx/associated_min_max.inl +++ b/glm/gtx/associated_min_max.inl @@ -1,10 +1,33 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2008-03-10 -// Updated : 2014-10-11 -// Licence : This source is under MIT License -// File : gtx_associated_min_max.inl +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @ref gtx_associated_min_max +/// @file glm/gtx/associated_min_max.inl +/// @date 2008-03-10 / 2014-10-11 +/// @author Christophe Riccio /////////////////////////////////////////////////////////////////////////////////////////////////// namespace glm{ diff --git a/glm/gtx/bit.hpp b/glm/gtx/bit.hpp index 8f4ebdd9..b5c73687 100644 --- a/glm/gtx/bit.hpp +++ b/glm/gtx/bit.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -61,40 +65,52 @@ namespace glm GLM_FUNC_DECL vecType highestBitValue(vecType const & value); /// Return the power of two number which value is just higher the input value. + /// Deprecated, use ceilPowerOfTwo from GTC_round instead /// + /// @see gtc_round /// @see gtx_bit template - GLM_FUNC_DECL genIUType powerOfTwoAbove(genIUType Value); + GLM_DEPRECATED GLM_FUNC_DECL genIUType powerOfTwoAbove(genIUType Value); /// Return the power of two number which value is just higher the input value. + /// Deprecated, use ceilPowerOfTwo from GTC_round instead /// + /// @see gtc_round /// @see gtx_bit template class vecType> - GLM_FUNC_DECL vecType powerOfTwoAbove(vecType const & value); + GLM_DEPRECATED GLM_FUNC_DECL vecType powerOfTwoAbove(vecType const & value); /// Return the power of two number which value is just lower the input value. + /// Deprecated, use floorPowerOfTwo from GTC_round instead /// + /// @see gtc_round /// @see gtx_bit template - GLM_FUNC_DECL genIUType powerOfTwoBelow(genIUType Value); + GLM_DEPRECATED GLM_FUNC_DECL genIUType powerOfTwoBelow(genIUType Value); /// Return the power of two number which value is just lower the input value. + /// Deprecated, use floorPowerOfTwo from GTC_round instead /// + /// @see gtc_round /// @see gtx_bit template class vecType> - GLM_FUNC_DECL vecType powerOfTwoBelow(vecType const & value); + GLM_DEPRECATED GLM_FUNC_DECL vecType powerOfTwoBelow(vecType const & value); /// Return the power of two number which value is the closet to the input value. + /// Deprecated, use roundPowerOfTwo from GTC_round instead /// + /// @see gtc_round /// @see gtx_bit template - GLM_FUNC_DECL genIUType powerOfTwoNearest(genIUType Value); + GLM_DEPRECATED GLM_FUNC_DECL genIUType powerOfTwoNearest(genIUType Value); /// Return the power of two number which value is the closet to the input value. + /// Deprecated, use roundPowerOfTwo from GTC_round instead /// + /// @see gtc_round /// @see gtx_bit template class vecType> - GLM_FUNC_DECL vecType powerOfTwoNearest(vecType const & value); + GLM_DEPRECATED GLM_FUNC_DECL vecType powerOfTwoNearest(vecType const & value); /// @} } //namespace glm diff --git a/glm/gtx/bit.inl b/glm/gtx/bit.inl index ccf87db1..70252c9a 100644 --- a/glm/gtx/bit.inl +++ b/glm/gtx/bit.inl @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE diff --git a/glm/gtx/closest_point.hpp b/glm/gtx/closest_point.hpp index 2092b86c..2a7e553e 100644 --- a/glm/gtx/closest_point.hpp +++ b/glm/gtx/closest_point.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -20,8 +24,8 @@ /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN /// THE SOFTWARE. /// -/// @ref gtx_bit -/// @file glm/gtx/bit.hpp +/// @ref gtx_closest_point +/// @file glm/gtx/closest_point.hpp /// @date 2005-12-30 / 2011-06-07 /// @author Christophe Riccio /// diff --git a/glm/gtx/closest_point.inl b/glm/gtx/closest_point.inl index 1e77ca93..b92d73b0 100644 --- a/glm/gtx/closest_point.inl +++ b/glm/gtx/closest_point.inl @@ -1,10 +1,33 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2005-12-30 -// Updated : 2008-10-05 -// Licence : This source is under MIT License -// File : glm/gtx/closest_point.inl +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @ref gtx_closest_point +/// @file glm/gtx/closest_point.inl +/// @date 2005-12-30 / 2011-06-07 +/// @author Christophe Riccio /////////////////////////////////////////////////////////////////////////////////////////////////// namespace glm diff --git a/glm/gtx/color_space.hpp b/glm/gtx/color_space.hpp index 421b9531..bba74ad8 100644 --- a/glm/gtx/color_space.hpp +++ b/glm/gtx/color_space.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE diff --git a/glm/gtx/color_space.inl b/glm/gtx/color_space.inl index 34fb2bc9..5e0943d8 100644 --- a/glm/gtx/color_space.inl +++ b/glm/gtx/color_space.inl @@ -1,10 +1,33 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2005-12-21 -// Updated : 2007-02-22 -// Licence : This source is under MIT License -// File : glm/gtx/color_space.inl +///////////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @ref gtx_color_space +/// @file glm/gtx/color_space.inl +/// @date 2005-12-21 / 2011-06-07 +/// @author Christophe Riccio /////////////////////////////////////////////////////////////////////////////////////////////////// namespace glm diff --git a/glm/gtx/color_space_YCoCg.hpp b/glm/gtx/color_space_YCoCg.hpp index bfdc7c19..89bd762e 100644 --- a/glm/gtx/color_space_YCoCg.hpp +++ b/glm/gtx/color_space_YCoCg.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE diff --git a/glm/gtx/color_space_YCoCg.inl b/glm/gtx/color_space_YCoCg.inl index e824d088..a5662263 100644 --- a/glm/gtx/color_space_YCoCg.inl +++ b/glm/gtx/color_space_YCoCg.inl @@ -1,10 +1,33 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2008-10-28 -// Updated : 2008-10-28 -// Licence : This source is under MIT License -// File : glm/gtx/color_space_YCoCg.inl +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @ref gtx_color_space_YCoCg +/// @file glm/gtx/color_space_YCoCg.inl +/// @date 2008-10-28 / 2011-06-07 +/// @author Christophe Riccio /////////////////////////////////////////////////////////////////////////////////////////////////// namespace glm diff --git a/glm/gtx/common.hpp b/glm/gtx/common.hpp index 0d7aaff5..15790583 100644 --- a/glm/gtx/common.hpp +++ b/glm/gtx/common.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE diff --git a/glm/gtx/common.inl b/glm/gtx/common.inl index 8da9e9a4..9b9dbb9c 100644 --- a/glm/gtx/common.inl +++ b/glm/gtx/common.inl @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE diff --git a/glm/gtx/compatibility.hpp b/glm/gtx/compatibility.hpp index 3851cd64..635ee912 100644 --- a/glm/gtx/compatibility.hpp +++ b/glm/gtx/compatibility.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE diff --git a/glm/gtx/compatibility.inl b/glm/gtx/compatibility.inl index 14b6e652..75372d26 100644 --- a/glm/gtx/compatibility.inl +++ b/glm/gtx/compatibility.inl @@ -1,10 +1,33 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2007-03-16 -// Updated : 2008-10-24 -// Licence : This source is under MIT License -// File : glm/gtx/compatibility.inl +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @ref gtx_compatibility +/// @file glm/gtx/compatibility.inl +/// @date 2007-01-24 / 2011-06-07 +/// @author Christophe Riccio /////////////////////////////////////////////////////////////////////////////////////////////////// #include diff --git a/glm/gtx/component_wise.hpp b/glm/gtx/component_wise.hpp index 0e4c0e2b..fb6b6ed6 100644 --- a/glm/gtx/component_wise.hpp +++ b/glm/gtx/component_wise.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -39,6 +43,7 @@ // Dependencies #include "../detail/setup.hpp" +#include "../detail/precision.hpp" #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED)) # pragma message("GLM: GLM_GTX_component_wise extension included") diff --git a/glm/gtx/component_wise.inl b/glm/gtx/component_wise.inl index 89c5ac7f..e1252a0c 100644 --- a/glm/gtx/component_wise.inl +++ b/glm/gtx/component_wise.inl @@ -1,10 +1,33 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2007-05-21 -// Updated : 2010-02-12 -// Licence : This source is under MIT License -// File : gtx_component_wise.inl +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @ref gtx_component_wise +/// @file glm/gtx/component_wise.inl +/// @date 2007-05-21 / 2011-06-07 +/// @author Christophe Riccio /////////////////////////////////////////////////////////////////////////////////////////////////// namespace glm diff --git a/glm/gtx/dual_quaternion.hpp b/glm/gtx/dual_quaternion.hpp index c12af399..333d9681 100644 --- a/glm/gtx/dual_quaternion.hpp +++ b/glm/gtx/dual_quaternion.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -30,8 +34,8 @@ /// @see gtc_constants (dependence) /// @see gtc_quaternion (dependence) /// -/// @defgroup gtc_dual_quaternion GLM_GTX_dual_quaternion -/// @ingroup gtc +/// @defgroup gtx_dual_quaternion GLM_GTX_dual_quaternion +/// @ingroup gtx /// /// @brief Defines a templated dual-quaternion type and several dual-quaternion operations. /// @@ -51,7 +55,7 @@ namespace glm { - /// @addtogroup gtc_dual_quaternion + /// @addtogroup gtx_dual_quaternion /// @{ template @@ -63,14 +67,25 @@ namespace glm public: glm::tquat real, dual; -#if GLM_FORCE_SIZE_FUNC - /// Return the count of components of a dual quaternion - GLM_FUNC_DECL GLM_CONSTEXPR size_t size() const; -#else - /// Return the count of components of a dual quaternion - GLM_FUNC_DECL GLM_CONSTEXPR length_t length() const; -#endif//GLM_FORCE_SIZE_FUNC - + ////////////////////////////////////// + // Component accesses + +# ifdef GLM_FORCE_SIZE_FUNC + typedef size_t size_type; + /// Return the count of components of a dual quaternion + GLM_FUNC_DECL GLM_CONSTEXPR size_type size() const; + + GLM_FUNC_DECL part_type & operator[](size_type i); + GLM_FUNC_DECL part_type const & operator[](size_type i) const; +# else + typedef length_t length_type; + /// Return the count of components of a dual quaternion + GLM_FUNC_DECL GLM_CONSTEXPR length_type length() const; + + GLM_FUNC_DECL part_type & operator[](length_type i); + GLM_FUNC_DECL part_type const & operator[](length_type i) const; +# endif//GLM_FORCE_SIZE_FUNC + ////////////////////////////////////// // Implicit basic constructors @@ -100,10 +115,6 @@ namespace glm GLM_FUNC_DECL explicit tdualquat(tmat2x4 const & holder_mat); GLM_FUNC_DECL explicit tdualquat(tmat3x4 const & aug_mat); - // Accesses - GLM_FUNC_DECL part_type & operator[](int i); - GLM_FUNC_DECL part_type const & operator[](int i) const; - // Operators GLM_FUNC_DECL tdualquat & operator*=(T const & s); GLM_FUNC_DECL tdualquat & operator/=(T const & s); @@ -160,7 +171,7 @@ namespace glm /// Returns the normalized quaternion. /// - /// @see gtc_dual_quaternion + /// @see gtx_dual_quaternion template GLM_FUNC_DECL tdualquat normalize( tdualquat const & q); @@ -176,45 +187,35 @@ namespace glm /// Returns the q inverse. /// - /// @see gtc_dual_quaternion + /// @see gtx_dual_quaternion template GLM_FUNC_DECL tdualquat inverse( tdualquat const & q); - /* - /// Extracts a rotation part from dual-quaternion to a 3 * 3 matrix. - /// TODO - /// - /// @see gtc_dual_quaternion - template - tmat3x3 mat3_cast( - tdualquat const & x); - */ - /// Converts a quaternion to a 2 * 4 matrix. /// - /// @see gtc_dual_quaternion + /// @see gtx_dual_quaternion template GLM_FUNC_DECL tmat2x4 mat2x4_cast( tdualquat const & x); /// Converts a quaternion to a 3 * 4 matrix. /// - /// @see gtc_dual_quaternion + /// @see gtx_dual_quaternion template GLM_FUNC_DECL tmat3x4 mat3x4_cast( tdualquat const & x); /// Converts a 2 * 4 matrix (matrix which holds real and dual parts) to a quaternion. /// - /// @see gtc_dual_quaternion + /// @see gtx_dual_quaternion template GLM_FUNC_DECL tdualquat dualquat_cast( tmat2x4 const & x); /// Converts a 3 * 4 matrix (augmented matrix rotation + translation) to a quaternion. /// - /// @see gtc_dual_quaternion + /// @see gtx_dual_quaternion template GLM_FUNC_DECL tdualquat dualquat_cast( tmat3x4 const & x); @@ -222,61 +223,61 @@ namespace glm /// Dual-quaternion of low single-precision floating-point numbers. /// - /// @see gtc_dual_quaternion + /// @see gtx_dual_quaternion typedef tdualquat lowp_dualquat; /// Dual-quaternion of medium single-precision floating-point numbers. /// - /// @see gtc_dual_quaternion + /// @see gtx_dual_quaternion typedef tdualquat mediump_dualquat; /// Dual-quaternion of high single-precision floating-point numbers. /// - /// @see gtc_dual_quaternion + /// @see gtx_dual_quaternion typedef tdualquat highp_dualquat; /// Dual-quaternion of low single-precision floating-point numbers. /// - /// @see gtc_dual_quaternion + /// @see gtx_dual_quaternion typedef tdualquat lowp_fdualquat; /// Dual-quaternion of medium single-precision floating-point numbers. /// - /// @see gtc_dual_quaternion + /// @see gtx_dual_quaternion typedef tdualquat mediump_fdualquat; /// Dual-quaternion of high single-precision floating-point numbers. /// - /// @see gtc_dual_quaternion + /// @see gtx_dual_quaternion typedef tdualquat highp_fdualquat; /// Dual-quaternion of low double-precision floating-point numbers. /// - /// @see gtc_dual_quaternion + /// @see gtx_dual_quaternion typedef tdualquat lowp_ddualquat; /// Dual-quaternion of medium double-precision floating-point numbers. /// - /// @see gtc_dual_quaternion + /// @see gtx_dual_quaternion typedef tdualquat mediump_ddualquat; /// Dual-quaternion of high double-precision floating-point numbers. /// - /// @see gtc_dual_quaternion + /// @see gtx_dual_quaternion typedef tdualquat highp_ddualquat; #if(!defined(GLM_PRECISION_HIGHP_FLOAT) && !defined(GLM_PRECISION_MEDIUMP_FLOAT) && !defined(GLM_PRECISION_LOWP_FLOAT)) /// Dual-quaternion of floating-point numbers. /// - /// @see gtc_dual_quaternion + /// @see gtx_dual_quaternion typedef highp_fdualquat dualquat; /// Dual-quaternion of single-precision floating-point numbers. /// - /// @see gtc_dual_quaternion + /// @see gtx_dual_quaternion typedef highp_fdualquat fdualquat; #elif(defined(GLM_PRECISION_HIGHP_FLOAT) && !defined(GLM_PRECISION_MEDIUMP_FLOAT) && !defined(GLM_PRECISION_LOWP_FLOAT)) typedef highp_fdualquat dualquat; @@ -295,7 +296,7 @@ namespace glm #if(!defined(GLM_PRECISION_HIGHP_DOUBLE) && !defined(GLM_PRECISION_MEDIUMP_DOUBLE) && !defined(GLM_PRECISION_LOWP_DOUBLE)) /// Dual-quaternion of default double-precision floating-point numbers. /// - /// @see gtc_dual_quaternion + /// @see gtx_dual_quaternion typedef highp_ddualquat ddualquat; #elif(defined(GLM_PRECISION_HIGHP_DOUBLE) && !defined(GLM_PRECISION_MEDIUMP_DOUBLE) && !defined(GLM_PRECISION_LOWP_DOUBLE)) typedef highp_ddualquat ddualquat; diff --git a/glm/gtx/dual_quaternion.inl b/glm/gtx/dual_quaternion.inl index 83694716..eb1b5970 100644 --- a/glm/gtx/dual_quaternion.inl +++ b/glm/gtx/dual_quaternion.inl @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -31,19 +35,53 @@ namespace glm { -#if GLM_FORCE_SIZE_FUNC - template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR size_t tdualquat::size() const - { - return 2; - } -#else - template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR length_t tdualquat::length() const - { - return 2; - } -#endif + ////////////////////////////////////// + // Component accesses + +# ifdef GLM_FORCE_SIZE_FUNC + template + GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tdualquat::size_type tdualquat::size() const + { + return 2; + } + + template + GLM_FUNC_QUALIFIER typename tdualquat::part_type & tdualquat::operator[](typename tdualquat::size_type i) + { + assert(i >= 0 && static_cast(i) < detail::component_count(*this)); + return (&real)[i]; + } + + template + GLM_FUNC_QUALIFIER typename tdualquat::part_type const & tdualquat::operator[](typename tdualquat::size_type i) const + { + assert(i >= 0 && static_cast(i) < detail::component_count(*this)); + return (&real)[i]; + } +# else + template + GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tdualquat::length_type tdualquat::length() const + { + return 2; + } + + template + GLM_FUNC_QUALIFIER typename tdualquat::part_type & tdualquat::operator[](typename tdualquat::length_type i) + { + assert(i >= 0 && static_cast(i) < detail::component_count(*this)); + return (&real)[i]; + } + + template + GLM_FUNC_QUALIFIER typename tdualquat::part_type const & tdualquat::operator[](typename tdualquat::length_type i) const + { + assert(i >= 0 && static_cast(i) < detail::component_count(*this)); + return (&real)[i]; + } +# endif//GLM_FORCE_SIZE_FUNC + + ////////////////////////////////////// + // Implicit basic constructors template GLM_FUNC_QUALIFIER tdualquat::tdualquat() @@ -109,24 +147,7 @@ namespace glm } ////////////////////////////////////////////////////////////// - // tdualquat accesses - - template - GLM_FUNC_QUALIFIER typename tdualquat::part_type & tdualquat::operator[](length_t i) - { - assert(i >= 0 && static_cast(i) < detail::component_count(*this)); - return (&real)[i]; - } - - template - GLM_FUNC_QUALIFIER typename tdualquat::part_type const & tdualquat::operator[](length_t i) const - { - assert(i >= 0 && static_cast(i) < detail::component_count(*this)); - return (&real)[i]; - } - - ////////////////////////////////////////////////////////////// - // tdualquat operators + // tdualquat operators template GLM_FUNC_QUALIFIER tdualquat & tdualquat::operator*=(T const & s) diff --git a/glm/gtx/euler_angles.hpp b/glm/gtx/euler_angles.hpp index cb62d5fe..6dcd303b 100644 --- a/glm/gtx/euler_angles.hpp +++ b/glm/gtx/euler_angles.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE diff --git a/glm/gtx/euler_angles.inl b/glm/gtx/euler_angles.inl index 88b30045..c75af997 100644 --- a/glm/gtx/euler_angles.inl +++ b/glm/gtx/euler_angles.inl @@ -1,10 +1,33 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2005-12-21 -// Updated : 2007-08-14 -// Licence : This source is under MIT License -// File : glm/gtx/euler_angles.inl +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @ref gtx_euler_angles +/// @file glm/gtx/euler_angles.inl +/// @date 2005-12-21 / 2011-06-07 +/// @author Christophe Riccio /////////////////////////////////////////////////////////////////////////////////////////////////// namespace glm diff --git a/glm/gtx/extend.hpp b/glm/gtx/extend.hpp index dea53d99..e975ba7e 100644 --- a/glm/gtx/extend.hpp +++ b/glm/gtx/extend.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE diff --git a/glm/gtx/extend.inl b/glm/gtx/extend.inl index c8a8f6f2..c5b833f1 100644 --- a/glm/gtx/extend.inl +++ b/glm/gtx/extend.inl @@ -1,10 +1,33 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2006-01-07 -// Updated : 2008-10-05 -// Licence : This source is under MIT License -// File : glm/gtx/extend.inl +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @ref gtx_extend +/// @file glm/gtx/extend.inl +/// @date 2006-01-07 / 2011-06-07 +/// @author Christophe Riccio /////////////////////////////////////////////////////////////////////////////////////////////////// namespace glm diff --git a/glm/gtx/extented_min_max.hpp b/glm/gtx/extented_min_max.hpp index ab5eb33b..e754ad4c 100644 --- a/glm/gtx/extented_min_max.hpp +++ b/glm/gtx/extented_min_max.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE diff --git a/glm/gtx/extented_min_max.inl b/glm/gtx/extented_min_max.inl index d608ab37..5c6ac070 100644 --- a/glm/gtx/extented_min_max.inl +++ b/glm/gtx/extented_min_max.inl @@ -1,10 +1,33 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2007-03-14 -// Updated : 2010-02-19 -// Licence : This source is under MIT License -// File : gtx_extented_min_max.inl +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @ref gtx_extented_min_max +/// @file glm/gtx/extented_min_max.inl +/// @date 2007-03-14 / 2011-06-07 +/// @author Christophe Riccio /////////////////////////////////////////////////////////////////////////////////////////////////// namespace glm diff --git a/glm/gtx/fast_exponential.hpp b/glm/gtx/fast_exponential.hpp index 15641fb0..2f31a27c 100644 --- a/glm/gtx/fast_exponential.hpp +++ b/glm/gtx/fast_exponential.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE diff --git a/glm/gtx/fast_exponential.inl b/glm/gtx/fast_exponential.inl index babedf3b..1c62c1ee 100644 --- a/glm/gtx/fast_exponential.inl +++ b/glm/gtx/fast_exponential.inl @@ -1,10 +1,33 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2006-01-09 -// Updated : 2006-01-09 -// Licence : This source is under MIT License -// File : glm/gtx/fast_exponential.inl +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @ref gtx_fast_exponential +/// @file glm/gtx/fast_exponential.inl +/// @date 2006-01-09 / 2011-06-07 +/// @author Christophe Riccio /////////////////////////////////////////////////////////////////////////////////////////////////// namespace glm diff --git a/glm/gtx/fast_square_root.hpp b/glm/gtx/fast_square_root.hpp index 75f74a01..f005bc7c 100644 --- a/glm/gtx/fast_square_root.hpp +++ b/glm/gtx/fast_square_root.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -40,7 +44,9 @@ #pragma once // Dependency: -#include "../glm.hpp" +#include "../common.hpp" +#include "../exponential.hpp" +#include "../geometric.hpp" #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED)) # pragma message("GLM: GLM_GTX_fast_square_root extension included") @@ -51,38 +57,57 @@ namespace glm /// @addtogroup gtx_fast_square_root /// @{ - //! Faster than the common sqrt function but less accurate. - //! From GLM_GTX_fast_square_root extension. + /// Faster than the common sqrt function but less accurate. + /// + /// @see gtx_fast_square_root extension. template GLM_FUNC_DECL genType fastSqrt(genType x); - //! Faster than the common inversesqrt function but less accurate. - //! From GLM_GTX_fast_square_root extension. + /// Faster than the common sqrt function but less accurate. + /// + /// @see gtx_fast_square_root extension. + template class vecType> + GLM_FUNC_DECL vecType fastSqrt(vecType const & x); + + /// Faster than the common inversesqrt function but less accurate. + /// + /// @see gtx_fast_square_root extension. template GLM_FUNC_DECL genType fastInverseSqrt(genType x); - //! Faster than the common inversesqrt function but less accurate. - //! From GLM_GTX_fast_square_root extension. + /// Faster than the common inversesqrt function but less accurate. + /// + /// @see gtx_fast_square_root extension. template class vecType> GLM_FUNC_DECL vecType fastInverseSqrt(vecType const & x); - //! Faster than the common length function but less accurate. - //! From GLM_GTX_fast_square_root extension. - template - GLM_FUNC_DECL typename genType::value_type fastLength(genType const & x); + /// Faster than the common length function but less accurate. + /// + /// @see gtx_fast_square_root extension. + template + GLM_FUNC_DECL genType fastLength(genType x); - //! Faster than the common distance function but less accurate. - //! From GLM_GTX_fast_square_root extension. + /// Faster than the common length function but less accurate. + /// + /// @see gtx_fast_square_root extension. + template class vecType> + GLM_FUNC_DECL T fastLength(vecType const & x); + + /// Faster than the common distance function but less accurate. + /// + /// @see gtx_fast_square_root extension. template GLM_FUNC_DECL genType fastDistance(genType x, genType y); - //! Faster than the common distance function but less accurate. - //! From GLM_GTX_fast_square_root extension. + /// Faster than the common distance function but less accurate. + /// + /// @see gtx_fast_square_root extension. template class vecType> GLM_FUNC_DECL T fastDistance(vecType const & x, vecType const & y); - //! Faster than the common normalize function but less accurate. - //! From GLM_GTX_fast_square_root extension. + /// Faster than the common normalize function but less accurate. + /// + /// @see gtx_fast_square_root extension. template GLM_FUNC_DECL genType fastNormalize(genType const & x); diff --git a/glm/gtx/fast_square_root.inl b/glm/gtx/fast_square_root.inl index c912c509..604268dc 100644 --- a/glm/gtx/fast_square_root.inl +++ b/glm/gtx/fast_square_root.inl @@ -1,10 +1,33 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2006-01-04 -// Updated : 2011-10-14 -// Licence : This source is under MIT License -// File : glm/gtx/fast_square_root.inl +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @ref gtx_fast_square_root +/// @file glm/gtx/fast_square_root.inl +/// @date 2006-01-04 / 2011-06-07 +/// @author Christophe Riccio /////////////////////////////////////////////////////////////////////////////////////////////////// namespace glm diff --git a/glm/gtx/fast_trigonometry.hpp b/glm/gtx/fast_trigonometry.hpp index 8e7a9251..9f8c1035 100644 --- a/glm/gtx/fast_trigonometry.hpp +++ b/glm/gtx/fast_trigonometry.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -38,7 +42,6 @@ #pragma once // Dependency: -#include "../glm.hpp" #include "../gtc/constants.hpp" #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED)) diff --git a/glm/gtx/fast_trigonometry.inl b/glm/gtx/fast_trigonometry.inl index 3f8abcde..f08974ee 100644 --- a/glm/gtx/fast_trigonometry.inl +++ b/glm/gtx/fast_trigonometry.inl @@ -1,10 +1,33 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2006-01-08 -// Updated : 2011-10-14 -// Licence : This source is under MIT License -// File : glm/gtx/fast_trigonometry.inl +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @ref gtx_fast_trigonometry +/// @file glm/gtx/fast_trigonometry.inl +/// @date 2006-01-08 / 2014-11-25 +/// @author Christophe Riccio /////////////////////////////////////////////////////////////////////////////////////////////////// namespace glm{ diff --git a/glm/gtx/gradient_paint.hpp b/glm/gtx/gradient_paint.hpp index bd70776e..5cfaaf1a 100644 --- a/glm/gtx/gradient_paint.hpp +++ b/glm/gtx/gradient_paint.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE diff --git a/glm/gtx/gradient_paint.inl b/glm/gtx/gradient_paint.inl index ede2eb6e..db4b2b05 100644 --- a/glm/gtx/gradient_paint.inl +++ b/glm/gtx/gradient_paint.inl @@ -1,10 +1,33 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2009-03-06 -// Updated : 2013-04-09 -// Licence : This source is under MIT License -// File : glm/gtx/gradient_paint.inl +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @ref gtx_gradient_paint +/// @file glm/gtx/gradient_paint.inl +/// @date 2009-03-06 / 2013-04-09 +/// @author Christophe Riccio /////////////////////////////////////////////////////////////////////////////////////////////////// namespace glm diff --git a/glm/gtx/handed_coordinate_space.hpp b/glm/gtx/handed_coordinate_space.hpp index 0c8f9898..42512bbd 100644 --- a/glm/gtx/handed_coordinate_space.hpp +++ b/glm/gtx/handed_coordinate_space.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE diff --git a/glm/gtx/handed_coordinate_space.inl b/glm/gtx/handed_coordinate_space.inl index 81ef326d..52c82d32 100644 --- a/glm/gtx/handed_coordinate_space.inl +++ b/glm/gtx/handed_coordinate_space.inl @@ -1,10 +1,33 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2005-12-21 -// Updated : 2009-02-19 -// Licence : This source is under MIT License -// File : glm/gtx/handed_coordinate_space.inl +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @ref gtx_handed_coordinate_space +/// @file glm/gtx/handed_coordinate_space.inl +/// @date 2005-12-21 / 2009-02-19 +/// @author Christophe Riccio /////////////////////////////////////////////////////////////////////////////////////////////////// namespace glm diff --git a/glm/gtx/inertia.hpp b/glm/gtx/inertia.hpp deleted file mode 100644 index f52fc616..00000000 --- a/glm/gtx/inertia.hpp +++ /dev/null @@ -1,113 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////// -/// OpenGL Mathematics (glm.g-truc.net) -/// -/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/// Permission is hereby granted, free of charge, to any person obtaining a copy -/// of this software and associated documentation files (the "Software"), to deal -/// in the Software without restriction, including without limitation the rights -/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -/// copies of the Software, and to permit persons to whom the Software is -/// furnished to do so, subject to the following conditions: -/// -/// The above copyright notice and this permission notice shall be included in -/// all copies or substantial portions of the Software. -/// -/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -/// THE SOFTWARE. -/// -/// @ref gtx_inertia -/// @file glm/gtx/inertia.hpp -/// @date 2006-04-21 / 2011-06-07 -/// @author Christophe Riccio -/// -/// @see core (dependence) -/// @see gtx_extented_min_max (dependence) -/// -/// @defgroup gtx_inertia GLM_GTX_inertia -/// @ingroup gtx -/// -/// @brief Create inertia matrices -/// -/// need to be included to use these functionalities. -/////////////////////////////////////////////////////////////////////////////////// - -#pragma once - -// Dependency: -#include "../glm.hpp" - -#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED)) -# pragma message("GLM: GLM_GTX_inertia extension included") -#endif - -namespace glm -{ - /* - /// @addtogroup gtx_inertia - /// @{ - - //! Build an inertia matrix for a box. - //! From GLM_GTX_inertia extension. - template - tmat3x3 boxInertia3( - T const & Mass, - tvec3 const & Scale); - - //! Build an inertia matrix for a box. - //! From GLM_GTX_inertia extension. - template - tmat4x4 boxInertia4( - T const & Mass, - tvec3 const & Scale); - - //! Build an inertia matrix for a disk. - //! From GLM_GTX_inertia extension. - template - tmat3x3 diskInertia3( - T const & Mass, - T const & Radius); - - //! Build an inertia matrix for a disk. - //! From GLM_GTX_inertia extension. - template - tmat4x4 diskInertia4( - T const & Mass, - T const & Radius); - - //! Build an inertia matrix for a ball. - //! From GLM_GTX_inertia extension. - template - tmat3x3 ballInertia3( - T const & Mass, - T const & Radius); - - //! Build an inertia matrix for a ball. - //! From GLM_GTX_inertia extension. - template - tmat4x4 ballInertia4( - T const & Mass, - T const & Radius); - - //! Build an inertia matrix for a sphere. - //! From GLM_GTX_inertia extension. - template - tmat3x3 sphereInertia3( - T const & Mass, - T const & Radius); - - //! Build an inertia matrix for a sphere. - //! From GLM_GTX_inertia extension. - template - tmat4x4 sphereInertia4( - T const & Mass, - T const & Radius); - */ - /// @} -}// namespace glm - -#include "inertia.inl" diff --git a/glm/gtx/inertia.inl b/glm/gtx/inertia.inl deleted file mode 100644 index adbda54c..00000000 --- a/glm/gtx/inertia.inl +++ /dev/null @@ -1,116 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2006-04-21 -// Updated : 2006-12-06 -// Licence : This source is under MIT License -// File : glm/gtx/inertia.inl -/////////////////////////////////////////////////////////////////////////////////////////////////// - -namespace glm -{ -/* - template - GLM_FUNC_QUALIFIER tmat3x3 boxInertia3 - ( - T const & Mass, - tvec3 const & Scale - ) - { - tmat3x3 Result(T(1)); - Result[0][0] = (Scale.y * Scale.y + Scale.z * Scale.z) * Mass / T(12); - Result[1][1] = (Scale.x * Scale.x + Scale.z * Scale.z) * Mass / T(12); - Result[2][2] = (Scale.x * Scale.x + Scale.y * Scale.y) * Mass / T(12); - return Result; - } - - template - GLM_FUNC_QUALIFIER tmat4x4 boxInertia4 - ( - T const & Mass, - tvec3 const & Scale - ) - { - tmat4x4 Result(T(1)); - Result[0][0] = (Scale.y * Scale.y + Scale.z * Scale.z) * Mass / T(12); - Result[1][1] = (Scale.x * Scale.x + Scale.z * Scale.z) * Mass / T(12); - Result[2][2] = (Scale.x * Scale.x + Scale.y * Scale.y) * Mass / T(12); - return Result; - } - - template - GLM_FUNC_QUALIFIER tmat3x3 diskInertia3 - ( - T const & Mass, - T const & Radius - ) - { - T a = Mass * Radius * Radius / T(2); - tmat3x3 Result(a); - Result[2][2] *= static_cast(2); - return Result; - } - - template - GLM_FUNC_QUALIFIER tmat4x4 diskInertia4 - ( - T const & Mass, - T const & Radius - ) - { - T a = Mass * Radius * Radius / T(2); - tmat4x4 Result(a); - Result[2][2] *= static_cast(2); - Result[3][3] = static_cast(1); - return Result; - } - - template - GLM_FUNC_QUALIFIER tmat3x3 ballInertia3 - ( - T const & Mass, - T const & Radius - ) - { - T a = static_cast(2) * Mass * Radius * Radius / T(5); - return tmat3x3(a); - } - - template - GLM_FUNC_QUALIFIER tmat4x4 ballInertia4 - ( - T const & Mass, - T const & Radius - ) - { - T a = static_cast(2) * Mass * Radius * Radius / T(5); - tmat4x4 Result(a); - Result[3][3] = static_cast(1); - return Result; - } - - template - GLM_FUNC_QUALIFIER tmat3x3 sphereInertia3 - ( - T const & Mass, - T const & Radius - ) - { - T a = static_cast(2) * Mass * Radius * Radius / T(3); - return tmat3x3(a); - } - - template - GLM_FUNC_QUALIFIER tmat4x4 sphereInertia4 - ( - T const & Mass, - T const & Radius - ) - { - T a = static_cast(2) * Mass * Radius * Radius / T(3); - tmat4x4 Result(a); - Result[3][3] = static_cast(1); - return Result; - } - */ -}//namespace glm diff --git a/glm/gtx/integer.hpp b/glm/gtx/integer.hpp index 00f1fd4a..777847ca 100644 --- a/glm/gtx/integer.hpp +++ b/glm/gtx/integer.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -39,6 +43,7 @@ // Dependency: #include "../glm.hpp" +#include "../gtc/integer.hpp" #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED)) # pragma message("GLM: GLM_GTX_integer extension included") @@ -57,11 +62,6 @@ namespace glm //! From GLM_GTX_integer extension. GLM_FUNC_DECL int sqrt(int x); - //! Returns the log2 of x. Can be reliably using to compute mipmap count from the texture size. - //! From GLM_GTX_integer extension. - template - GLM_FUNC_DECL genIUType log2(genIUType x); - //! Returns the floor log2 of x. //! From GLM_GTX_integer extension. GLM_FUNC_DECL unsigned int floor_log2(unsigned int x); diff --git a/glm/gtx/integer.inl b/glm/gtx/integer.inl index 6833b295..58c1b48b 100644 --- a/glm/gtx/integer.inl +++ b/glm/gtx/integer.inl @@ -1,10 +1,33 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2005-12-24 -// Updated : 2011-10-13 -// Licence : This source is under MIT License -// File : glm/gtx/integer.inl +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @ref gtx_integer +/// @file glm/gtx/integer.inl +/// @date 2005-12-24 / 2011-10-13 +/// @author Christophe Riccio /////////////////////////////////////////////////////////////////////////////////////////////////// namespace glm @@ -53,21 +76,7 @@ namespace detail x += (x >> 16); return(x & 0x0000003f); } - - template <> - struct compute_log2 - { - template - GLM_FUNC_QUALIFIER T operator() (T const & Value) const - { -#if(GLM_COMPILER & (GLM_COMPILER_VC | GLM_COMPILER_GCC)) - return Value <= static_cast(1) ? T(0) : T(32) - nlz(Value - T(1)); -#else - return T(32) - nlz(Value - T(1)); -#endif - } - }; -}//namespace _detail +}//namespace detail // Henry Gordon Dietz: http://aggregate.org/MAGIC/ /* diff --git a/glm/gtx/intersect.hpp b/glm/gtx/intersect.hpp index d7d64920..e3aaaf40 100644 --- a/glm/gtx/intersect.hpp +++ b/glm/gtx/intersect.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE diff --git a/glm/gtx/io.hpp b/glm/gtx/io.hpp index 8cebb0c9..5630d92b 100644 --- a/glm/gtx/io.hpp +++ b/glm/gtx/io.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -22,7 +26,7 @@ /// /// @ref gtx_io /// @file glm/gtx/io.hpp -/// @date 2013-11-22 +/// @date 2013-11-22 / 2014-11-25 /// @author Jan P Springer (regnirpsj@gmail.com) /// /// @see core (dependence) diff --git a/glm/gtx/io.inl b/glm/gtx/io.inl index 47052216..fe5f1949 100644 --- a/glm/gtx/io.inl +++ b/glm/gtx/io.inl @@ -1,10 +1,33 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2013 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2013-11-22 -// Updated : 2013-12-18 -// Licence : This source is under MIT License -// File : glm/gtx/inl.inl +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2013 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @ref gtx_io +/// @file glm/gtx/io.inl +/// @date 2013-11-22 / 2014-11-25 +/// @author Jan P Springer (regnirpsj@gmail.com) /////////////////////////////////////////////////////////////////////////////////////////////////// #include // std::setfill<>, std::fixed, std::setprecision, std::right, std::setw diff --git a/glm/gtx/log_base.hpp b/glm/gtx/log_base.hpp index ce9fabe7..b15383e0 100644 --- a/glm/gtx/log_base.hpp +++ b/glm/gtx/log_base.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE diff --git a/glm/gtx/log_base.inl b/glm/gtx/log_base.inl index d0b0e6a9..bfb39a4c 100644 --- a/glm/gtx/log_base.inl +++ b/glm/gtx/log_base.inl @@ -1,11 +1,34 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2008-10-24 -// Updated : 2008-10-24 -// Licence : This source is under MIT License -// File : glm/gtx/log_base.inl -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @ref gtx_log_base +/// @file glm/gtx/log_base.inl +/// @date 2008-10-24 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// namespace glm { diff --git a/glm/gtx/matrix_cross_product.hpp b/glm/gtx/matrix_cross_product.hpp index ea8b4f61..63945fcb 100644 --- a/glm/gtx/matrix_cross_product.hpp +++ b/glm/gtx/matrix_cross_product.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE diff --git a/glm/gtx/matrix_cross_product.inl b/glm/gtx/matrix_cross_product.inl index dc41923e..f178f4c0 100644 --- a/glm/gtx/matrix_cross_product.inl +++ b/glm/gtx/matrix_cross_product.inl @@ -1,11 +1,34 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2005-12-21 -// Updated : 2005-12-21 -// Licence : This source is under MIT License -// File : glm/gtx/matrix_cross_product.inl -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @ref gtx_matrix_cross_product +/// @file glm/gtx/matrix_cross_product.inl +/// @date 2005-12-21 / 2005-12-21 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// namespace glm { diff --git a/glm/gtx/matrix_decompose.hpp b/glm/gtx/matrix_decompose.hpp index 11a0f39d..d58db217 100644 --- a/glm/gtx/matrix_decompose.hpp +++ b/glm/gtx/matrix_decompose.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -20,14 +24,14 @@ /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN /// THE SOFTWARE. /// -/// @ref gtx_decomposition -/// @file glm/gtx/decomposition.hpp +/// @ref gtx_matrix_decompose +/// @file glm/gtx/matrix_decompose.hpp /// @date 2014-08-29 / 2014-08-29 /// @author Christophe Riccio /// /// @see core (dependence) /// -/// @defgroup gtx_decomposition GLM_GTX_decomposition +/// @defgroup gtx_matrix_decompose GLM_GTX_matrix_decompose /// @ingroup gtx /// /// @brief Decomposes a model matrix to translations, rotation and scale components @@ -45,16 +49,16 @@ #include "../gtc/matrix_transform.hpp" #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED)) -# pragma message("GLM: GLM_GTX_decomposition extension included") +# pragma message("GLM: GLM_GTX_matrix_decompose extension included") #endif namespace glm { - /// @addtogroup gtx_decomposition + /// @addtogroup gtx_matrix_decompose /// @{ /// Decomposes a model matrix to translations, rotation and scale components - /// @see gtx_decomposition + /// @see gtx_matrix_decompose template GLM_FUNC_DECL bool decompose( tmat4x4 const & modelMatrix, diff --git a/glm/gtx/matrix_decompose.inl b/glm/gtx/matrix_decompose.inl index 39c4a87e..af443a7d 100644 --- a/glm/gtx/matrix_decompose.inl +++ b/glm/gtx/matrix_decompose.inl @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -20,8 +24,8 @@ /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN /// THE SOFTWARE. /// -/// @ref gtx_decomposition -/// @file glm/gtx/decomposition.inl +/// @ref gtx_matrix_decompose +/// @file glm/gtx/matrix_decompose.inl /// @date 2014-08-29 / 2014-08-29 /// @author Christophe Riccio /////////////////////////////////////////////////////////////////////////////////// diff --git a/glm/gtx/matrix_interpolation.hpp b/glm/gtx/matrix_interpolation.hpp index b058bc3a..c2521c40 100644 --- a/glm/gtx/matrix_interpolation.hpp +++ b/glm/gtx/matrix_interpolation.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE diff --git a/glm/gtx/matrix_interpolation.inl b/glm/gtx/matrix_interpolation.inl index 5b6f3ace..4fb5f0aa 100644 --- a/glm/gtx/matrix_interpolation.inl +++ b/glm/gtx/matrix_interpolation.inl @@ -1,11 +1,34 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2011-03-05 -// Updated : 2011-03-05 -// Licence : This source is under MIT License -// File : glm/gtx/matrix_interpolation.inl -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @ref gtx_matrix_interpolation +/// @file glm/gtx/matrix_interpolation.hpp +/// @date 2011-03-05 / 2011-03-05 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// namespace glm { diff --git a/glm/gtx/matrix_major_storage.hpp b/glm/gtx/matrix_major_storage.hpp index 77fd5c8a..34499879 100644 --- a/glm/gtx/matrix_major_storage.hpp +++ b/glm/gtx/matrix_major_storage.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE diff --git a/glm/gtx/matrix_major_storage.inl b/glm/gtx/matrix_major_storage.inl index 12659cd5..1420e407 100644 --- a/glm/gtx/matrix_major_storage.inl +++ b/glm/gtx/matrix_major_storage.inl @@ -1,11 +1,34 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2006-04-19 -// Updated : 2009-02-19 -// Licence : This source is under MIT License -// File : glm/gtx/matrix_major_storage.inl -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @ref gtx_matrix_major_storage +/// @file glm/gtx/matrix_major_storage.hpp +/// @date 2006-04-19 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// namespace glm { diff --git a/glm/gtx/matrix_operation.hpp b/glm/gtx/matrix_operation.hpp index 685e7bcd..b3c508d9 100644 --- a/glm/gtx/matrix_operation.hpp +++ b/glm/gtx/matrix_operation.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE diff --git a/glm/gtx/matrix_operation.inl b/glm/gtx/matrix_operation.inl index 67765ce4..4cc0812d 100644 --- a/glm/gtx/matrix_operation.inl +++ b/glm/gtx/matrix_operation.inl @@ -1,11 +1,34 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2009-08-29 -// Updated : 2009-08-29 -// Licence : This source is under MIT License -// File : glm/gtx/matrix_operation.inl -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @ref gtx_matrix_operation +/// @file glm/gtx/matrix_operation.inl +/// @date 2009-08-29 / 2009-08-29 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// namespace glm { diff --git a/glm/gtx/matrix_query.hpp b/glm/gtx/matrix_query.hpp index 5aacb7d3..77db9d66 100644 --- a/glm/gtx/matrix_query.hpp +++ b/glm/gtx/matrix_query.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE diff --git a/glm/gtx/matrix_query.inl b/glm/gtx/matrix_query.inl index f3dc9208..e22cccd4 100644 --- a/glm/gtx/matrix_query.inl +++ b/glm/gtx/matrix_query.inl @@ -1,14 +1,34 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2007-03-05 -// Updated : 2007-03-05 -// Licence : This source is under MIT License -// File : glm/gtx/matrix_query.inl -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Dependency: -// - GLM core -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @ref gtx_matrix_query +/// @file glm/gtx/matrix_query.inl +/// @date 2007-03-05 / 2007-03-05 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// namespace glm { diff --git a/glm/gtx/matrix_transform_2d.hpp b/glm/gtx/matrix_transform_2d.hpp index 002e98ef..9ad29538 100644 --- a/glm/gtx/matrix_transform_2d.hpp +++ b/glm/gtx/matrix_transform_2d.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE diff --git a/glm/gtx/matrix_transform_2d.inl b/glm/gtx/matrix_transform_2d.inl index 5de01c0c..d11dd1a1 100644 --- a/glm/gtx/matrix_transform_2d.inl +++ b/glm/gtx/matrix_transform_2d.inl @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE diff --git a/glm/gtx/mixed_product.hpp b/glm/gtx/mixed_product.hpp index c47aedaa..71fd3966 100644 --- a/glm/gtx/mixed_product.hpp +++ b/glm/gtx/mixed_product.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE diff --git a/glm/gtx/mixed_product.inl b/glm/gtx/mixed_product.inl index a6b4d0be..85063c3a 100644 --- a/glm/gtx/mixed_product.inl +++ b/glm/gtx/mixed_product.inl @@ -1,11 +1,34 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2007-04-03 -// Updated : 2008-09-17 -// Licence : This source is under MIT License -// File : glm/gtx/mixed_product.inl -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @ref gtx_mixed_product +/// @file glm/gtx/mixed_product.inl +/// @date 2007-04-03 / 2008-09-17 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// namespace glm { diff --git a/glm/gtx/multiple.hpp b/glm/gtx/multiple.hpp index 5b3196cb..01536cf3 100644 --- a/glm/gtx/multiple.hpp +++ b/glm/gtx/multiple.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE diff --git a/glm/gtx/multiple.inl b/glm/gtx/multiple.inl index fe175d46..e4669050 100644 --- a/glm/gtx/multiple.inl +++ b/glm/gtx/multiple.inl @@ -1,14 +1,34 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2009-10-26 -// Updated : 2011-06-07 -// Licence : This source is under MIT License -// File : glm/gtx/multiple.inl -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Dependency: -// - GLM core -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @ref gtx_multiple +/// @file glm/gtx/multiple.inl +/// @date 2009-10-26 / 2011-06-07 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// namespace glm { diff --git a/glm/gtx/norm.hpp b/glm/gtx/norm.hpp index 834c92c7..6b477f1e 100644 --- a/glm/gtx/norm.hpp +++ b/glm/gtx/norm.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE diff --git a/glm/gtx/norm.inl b/glm/gtx/norm.inl index d26afa8f..db87e0dc 100644 --- a/glm/gtx/norm.inl +++ b/glm/gtx/norm.inl @@ -1,11 +1,34 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2005-12-21 -// Updated : 2008-07-24 -// Licence : This source is under MIT License -// File : glm/gtx/norm.inl -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @ref gtx_norm +/// @file glm/gtx/norm.inl +/// @date 2005-12-21 / 2008-07-24 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// namespace glm { diff --git a/glm/gtx/normal.hpp b/glm/gtx/normal.hpp index 2b46be4e..9d7665d8 100644 --- a/glm/gtx/normal.hpp +++ b/glm/gtx/normal.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE diff --git a/glm/gtx/normal.inl b/glm/gtx/normal.inl index ed48980b..d1dd99cc 100644 --- a/glm/gtx/normal.inl +++ b/glm/gtx/normal.inl @@ -1,11 +1,34 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2005-12-21 -// Updated : 2011-06-07 -// Licence : This source is under MIT License -// File : glm/gtx/normal.inl -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @ref gtx_normal +/// @file glm/gtx/normal.inl +/// @date 2005-12-21 / 2011-06-07 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// namespace glm { diff --git a/glm/gtx/normalize_dot.hpp b/glm/gtx/normalize_dot.hpp index 2fcb4a54..5b1fe1d5 100644 --- a/glm/gtx/normalize_dot.hpp +++ b/glm/gtx/normalize_dot.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -39,7 +43,6 @@ #pragma once // Dependency: -#include "../glm.hpp" #include "../gtx/fast_square_root.hpp" #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED)) @@ -51,21 +54,19 @@ namespace glm /// @addtogroup gtx_normalize_dot /// @{ - //! Normalize parameters and returns the dot product of x and y. - //! It's faster that dot(normalize(x), normalize(y)). - //! From GLM_GTX_normalize_dot extension. - template - GLM_FUNC_DECL typename genType::value_type normalizeDot( - genType const & x, - genType const & y); + /// Normalize parameters and returns the dot product of x and y. + /// It's faster that dot(normalize(x), normalize(y)). + /// + /// @see gtx_normalize_dot extension. + template class vecType> + GLM_FUNC_DECL T normalizeDot(vecType const & x, vecType const & y); - //! Normalize parameters and returns the dot product of x and y. - //! Faster that dot(fastNormalize(x), fastNormalize(y)). - //! From GLM_GTX_normalize_dot extension. - template - GLM_FUNC_DECL typename genType::value_type fastNormalizeDot( - genType const & x, - genType const & y); + /// Normalize parameters and returns the dot product of x and y. + /// Faster that dot(fastNormalize(x), fastNormalize(y)). + /// + /// @see gtx_normalize_dot extension. + template class vecType> + GLM_FUNC_DECL T fastNormalizeDot(vecType const & x, vecType const & y); /// @} }//namespace glm diff --git a/glm/gtx/normalize_dot.inl b/glm/gtx/normalize_dot.inl index 31d2810f..775ffb27 100644 --- a/glm/gtx/normalize_dot.inl +++ b/glm/gtx/normalize_dot.inl @@ -1,115 +1,46 @@ -////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -////////////////////////////////////////////////////////////////////////////////// -// Created : 2007-09-28 -// Updated : 2008-10-07 -// Licence : This source is under MIT License -// File : glm/gtx/normalize_dot.inl +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @ref gtx_normalize_dot +/// @file glm/gtx/normalize_dot.inl +/// @date 2007-09-28 / 2008-10-07 +/// @author Christophe Riccio ////////////////////////////////////////////////////////////////////////////////// namespace glm { - template - GLM_FUNC_QUALIFIER genType normalizeDot - ( - genType const & x, - genType const & y - ) + template class vecType> + GLM_FUNC_QUALIFIER T normalizeDot(vecType const & x, vecType const & y) { - return - glm::dot(x, y) * - glm::inversesqrt(glm::dot(x, x) * - glm::dot(y, y)); + return glm::dot(x, y) * glm::inversesqrt(glm::dot(x, x) * glm::dot(y, y)); } - template - GLM_FUNC_QUALIFIER T normalizeDot - ( - tvec2 const & x, - tvec2 const & y - ) + template class vecType> + GLM_FUNC_QUALIFIER T fastNormalizeDot(vecType const & x, vecType const & y) { - return - glm::dot(x, y) * - glm::inversesqrt(glm::dot(x, x) * - glm::dot(y, y)); - } - - template - GLM_FUNC_QUALIFIER T normalizeDot - ( - tvec3 const & x, - tvec3 const & y - ) - { - return - glm::dot(x, y) * - glm::inversesqrt(glm::dot(x, x) * - glm::dot(y, y)); - } - - template - GLM_FUNC_QUALIFIER T normalizeDot - ( - tvec4 const & x, - tvec4 const & y - ) - { - return - glm::dot(x, y) * - glm::inversesqrt(glm::dot(x, x) * - glm::dot(y, y)); - } - - template - GLM_FUNC_QUALIFIER genType fastNormalizeDot - ( - genType const & x, - genType const & y - ) - { - return - glm::dot(x, y) * - fastInverseSqrt(glm::dot(x, x) * - glm::dot(y, y)); - } - - template - GLM_FUNC_QUALIFIER T fastNormalizeDot - ( - tvec2 const & x, - tvec2 const & y - ) - { - return - glm::dot(x, y) * - fastInverseSqrt(glm::dot(x, x) * - glm::dot(y, y)); - } - - template - GLM_FUNC_QUALIFIER T fastNormalizeDot - ( - tvec3 const & x, - tvec3 const & y - ) - { - return - glm::dot(x, y) * - fastInverseSqrt(glm::dot(x, x) * - glm::dot(y, y)); - } - - template - GLM_FUNC_QUALIFIER T fastNormalizeDot - ( - tvec4 const & x, - tvec4 const & y - ) - { - return - glm::dot(x, y) * - fastInverseSqrt(glm::dot(x, x) * - glm::dot(y, y)); + return glm::dot(x, y) * glm::fastInverseSqrt(glm::dot(x, x) * glm::dot(y, y)); } }//namespace glm diff --git a/glm/gtx/number_precision.hpp b/glm/gtx/number_precision.hpp index 62f95a9d..68a0690f 100644 --- a/glm/gtx/number_precision.hpp +++ b/glm/gtx/number_precision.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE diff --git a/glm/gtx/number_precision.inl b/glm/gtx/number_precision.inl index 79a5f80b..c006fecb 100644 --- a/glm/gtx/number_precision.inl +++ b/glm/gtx/number_precision.inl @@ -1,11 +1,34 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2007-05-10 -// Updated : 2007-05-10 -// Licence : This source is under MIT License -// File : glm/gtx/number_precision.inl -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @ref gtx_number_precision +/// @file glm/gtx/number_precision.inl +/// @date 2007-05-10 / 2011-06-07 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// namespace glm { diff --git a/glm/gtx/optimum_pow.hpp b/glm/gtx/optimum_pow.hpp index 5f7cfc50..7b6fa283 100644 --- a/glm/gtx/optimum_pow.hpp +++ b/glm/gtx/optimum_pow.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -50,39 +54,23 @@ namespace gtx /// @addtogroup gtx_optimum_pow /// @{ - //! Returns x raised to the power of 2. - //! From GLM_GTX_optimum_pow extension. + /// Returns x raised to the power of 2. + /// + /// @see gtx_optimum_pow template - GLM_FUNC_DECL genType pow2(const genType& x); + GLM_FUNC_DECL genType pow2(genType const & x); - //! Returns x raised to the power of 3. - //! From GLM_GTX_optimum_pow extension. + /// Returns x raised to the power of 3. + /// + /// @see gtx_optimum_pow template - GLM_FUNC_DECL genType pow3(const genType& x); + GLM_FUNC_DECL genType pow3(genType const & x); - //! Returns x raised to the power of 4. - //! From GLM_GTX_optimum_pow extension. + /// Returns x raised to the power of 4. + /// + /// @see gtx_optimum_pow template - GLM_FUNC_DECL genType pow4(const genType& x); - - //! Checks if the parameter is a power of 2 number. - //! From GLM_GTX_optimum_pow extension. - GLM_FUNC_DECL bool powOfTwo(int num); - - //! Checks to determine if the parameter component are power of 2 numbers. - //! From GLM_GTX_optimum_pow extension. - template - GLM_FUNC_DECL tvec2 powOfTwo(tvec2 const & x); - - //! Checks to determine if the parameter component are power of 2 numbers. - //! From GLM_GTX_optimum_pow extension. - template - GLM_FUNC_DECL tvec3 powOfTwo(tvec3 const & x); - - //! Checks to determine if the parameter component are power of 2 numbers. - //! From GLM_GTX_optimum_pow extension. - template - GLM_FUNC_DECL tvec4 powOfTwo(tvec4 const & x); + GLM_FUNC_DECL genType pow4(genType const & x); /// @} }//namespace gtx diff --git a/glm/gtx/optimum_pow.inl b/glm/gtx/optimum_pow.inl index ffa3b7e4..85f4a732 100644 --- a/glm/gtx/optimum_pow.inl +++ b/glm/gtx/optimum_pow.inl @@ -1,11 +1,34 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2005-12-21 -// Updated : 2005-12-27 -// Licence : This source is under MIT License -// File : glm/gtx/optimum_pow.inl -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @ref gtx_optimum_pow +/// @file glm/gtx/optimum_pow.inl +/// @date 2005-12-21 / 2011-06-07 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// namespace glm { @@ -26,36 +49,4 @@ namespace glm { return (x * x) * (x * x); } - - GLM_FUNC_QUALIFIER bool powOfTwo(int x) - { - return !(x & (x - 1)); - } - - template - GLM_FUNC_QUALIFIER tvec2 powOfTwo(tvec2 const & x) - { - return tvec2( - powOfTwo(x.x), - powOfTwo(x.y)); - } - - template - GLM_FUNC_QUALIFIER tvec3 powOfTwo(tvec3 const & x) - { - return tvec3( - powOfTwo(x.x), - powOfTwo(x.y), - powOfTwo(x.z)); - } - - template - GLM_FUNC_QUALIFIER tvec4 powOfTwo(tvec4 const & x) - { - return tvec4( - powOfTwo(x.x), - powOfTwo(x.y), - powOfTwo(x.z), - powOfTwo(x.w)); - } }//namespace glm diff --git a/glm/gtx/orthonormalize.hpp b/glm/gtx/orthonormalize.hpp index 8ba3fff3..cc83a093 100644 --- a/glm/gtx/orthonormalize.hpp +++ b/glm/gtx/orthonormalize.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -39,7 +43,9 @@ #pragma once // Dependency: -#include "../glm.hpp" +#include "../vec3.hpp" +#include "../mat3x3.hpp" +#include "../geometric.hpp" #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED)) # pragma message("GLM: GLM_GTX_orthonormalize extension included") @@ -50,18 +56,17 @@ namespace glm /// @addtogroup gtx_orthonormalize /// @{ - //! Returns the orthonormalized matrix of m. - //! From GLM_GTX_orthonormalize extension. + /// Returns the orthonormalized matrix of m. + /// + /// @see gtx_orthonormalize template - GLM_FUNC_DECL tmat3x3 orthonormalize( - const tmat3x3& m); + GLM_FUNC_DECL tmat3x3 orthonormalize(tmat3x3 const & m); - //! Orthonormalizes x according y. - //! From GLM_GTX_orthonormalize extension. + /// Orthonormalizes x according y. + /// + /// @see gtx_orthonormalize template - GLM_FUNC_DECL tvec3 orthonormalize( - const tvec3& x, - const tvec3& y); + GLM_FUNC_DECL tvec3 orthonormalize(tvec3 const & x, tvec3 const & y); /// @} }//namespace glm diff --git a/glm/gtx/orthonormalize.inl b/glm/gtx/orthonormalize.inl index 7195da8b..28af77e8 100644 --- a/glm/gtx/orthonormalize.inl +++ b/glm/gtx/orthonormalize.inl @@ -1,29 +1,49 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2005-12-21 -// Updated : 2005-12-21 -// Licence : This source is under MIT License -// File : glm/gtx/orthonormalize.inl -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @ref gtx_orthonormalize +/// @file glm/gtx/orthonormalize.inl +/// @date 2005-12-21 / 2011-06-07 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// namespace glm { template - GLM_FUNC_QUALIFIER tmat3x3 orthonormalize - ( - const tmat3x3& m - ) + GLM_FUNC_QUALIFIER tmat3x3 orthonormalize(tmat3x3 const & m) { tmat3x3 r = m; r[0] = normalize(r[0]); - float d0 = dot(r[0], r[1]); + T d0 = dot(r[0], r[1]); r[1] -= r[0] * d0; r[1] = normalize(r[1]); - float d1 = dot(r[1], r[2]); + T d1 = dot(r[1], r[2]); d0 = dot(r[0], r[2]); r[2] -= r[0] * d0 + r[1] * d1; r[2] = normalize(r[2]); @@ -32,11 +52,7 @@ namespace glm } template - GLM_FUNC_QUALIFIER tvec3 orthonormalize - ( - const tvec3& x, - const tvec3& y - ) + GLM_FUNC_QUALIFIER tvec3 orthonormalize(tvec3 const & x, tvec3 const & y) { return normalize(x - y * dot(y, x)); } diff --git a/glm/gtx/perpendicular.hpp b/glm/gtx/perpendicular.hpp index d5989517..8ff9122e 100644 --- a/glm/gtx/perpendicular.hpp +++ b/glm/gtx/perpendicular.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE diff --git a/glm/gtx/perpendicular.inl b/glm/gtx/perpendicular.inl index dc23357b..60b43e9e 100644 --- a/glm/gtx/perpendicular.inl +++ b/glm/gtx/perpendicular.inl @@ -1,11 +1,34 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2005-12-21 -// Updated : 2009-03-06 -// Licence : This source is under MIT License -// File : glm/gtx/perpendicular.inl -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @ref gtx_perpendicular +/// @file glm/gtx/perpendicular.inl +/// @date 2005-12-21 / 2011-06-07 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// namespace glm { diff --git a/glm/gtx/polar_coordinates.hpp b/glm/gtx/polar_coordinates.hpp index 639398d3..257e73e0 100644 --- a/glm/gtx/polar_coordinates.hpp +++ b/glm/gtx/polar_coordinates.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE diff --git a/glm/gtx/polar_coordinates.inl b/glm/gtx/polar_coordinates.inl index dd76c085..80bda122 100644 --- a/glm/gtx/polar_coordinates.inl +++ b/glm/gtx/polar_coordinates.inl @@ -1,11 +1,34 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2007-03-06 -// Updated : 2009-05-01 -// Licence : This source is under MIT License -// File : glm/gtx/polar_coordinates.inl -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @ref gtx_polar_coordinates +/// @file glm/gtx/polar_coordinates.inl +/// @date 2007-03-06 / 2011-06-07 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// namespace glm { diff --git a/glm/gtx/projection.hpp b/glm/gtx/projection.hpp index 072a9d64..acb6d045 100644 --- a/glm/gtx/projection.hpp +++ b/glm/gtx/projection.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -38,7 +42,7 @@ #pragma once // Dependency: -#include "../glm.hpp" +#include "../geometric.hpp" #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED)) # pragma message("GLM: GLM_GTX_projection extension included") @@ -49,12 +53,11 @@ namespace glm /// @addtogroup gtx_projection /// @{ - //! Projects x on Normal. - //! From GLM_GTX_projection extension. - template - GLM_FUNC_DECL vecType proj( - vecType const & x, - vecType const & Normal); + /// Projects x on Normal. + /// + /// @see gtx_projection + template + GLM_FUNC_DECL vecType proj(vecType const & x, vecType const & Normal); /// @} }//namespace glm diff --git a/glm/gtx/projection.inl b/glm/gtx/projection.inl index c78d23ae..15ee0707 100644 --- a/glm/gtx/projection.inl +++ b/glm/gtx/projection.inl @@ -1,20 +1,39 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2005-12-21 -// Updated : 2009-03-06 -// Licence : This source is under MIT License -// File : glm/gtx/projection.inl -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @ref gtx_projection +/// @file glm/gtx/projection.inl +/// @date 2005-12-21 / 2011-06-07 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// namespace glm { - template - GLM_FUNC_QUALIFIER vecType proj - ( - vecType const & x, - vecType const & Normal - ) + template + GLM_FUNC_QUALIFIER vecType proj(vecType const & x, vecType const & Normal) { return glm::dot(x, Normal) / glm::dot(Normal, Normal) * Normal; } diff --git a/glm/gtx/quaternion.hpp b/glm/gtx/quaternion.hpp index 3f29dc56..53f548e5 100644 --- a/glm/gtx/quaternion.hpp +++ b/glm/gtx/quaternion.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE diff --git a/glm/gtx/quaternion.inl b/glm/gtx/quaternion.inl index 8b4db180..86a2f1cb 100644 --- a/glm/gtx/quaternion.inl +++ b/glm/gtx/quaternion.inl @@ -1,11 +1,34 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2005-12-21 -// Updated : 2008-11-27 -// Licence : This source is under MIT License -// File : glm/gtx/quaternion.inl -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @ref gtx_quaternion +/// @file glm/gtx/quaternion.inl +/// @date 2005-12-21 / 2011-06-07 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// #include #include "../gtc/constants.hpp" diff --git a/glm/gtx/range.hpp b/glm/gtx/range.hpp index 097e8501..2f0f7908 100644 --- a/glm/gtx/range.hpp +++ b/glm/gtx/range.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -25,13 +29,18 @@ /// @date 2014-09-19 / 2014-09-19 /// @author Joshua Moerman /// +/// @defgroup gtx_range GLM_GTX_range +/// @ingroup gtx +/// /// @brief Defines begin and end for vectors and matrices. Useful for range-based for loop. /// The range is defined over the elements, not over columns or rows (e.g. mat4 has 16 elements). /// +/// need to be included to use these functionalities. /////////////////////////////////////////////////////////////////////////////////// #pragma once +// Dependencies #include "../detail/setup.hpp" #if !GLM_HAS_RANGE_FOR @@ -66,6 +75,9 @@ namespace detail } }//namespace + /// @addtogroup gtx_range + /// @{ + template const typename genType::value_type * begin(genType const & v){ return value_ptr(v); @@ -85,4 +97,6 @@ namespace detail typename genType::value_type * end(genType& v){ return begin(v) + detail::number_of_elements_(v); } + + /// @} }//namespace glm diff --git a/glm/gtx/raw_data.hpp b/glm/gtx/raw_data.hpp index d36a11fd..56f37afd 100644 --- a/glm/gtx/raw_data.hpp +++ b/glm/gtx/raw_data.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE diff --git a/glm/gtx/raw_data.inl b/glm/gtx/raw_data.inl index ced27c8d..1e21ffb7 100644 --- a/glm/gtx/raw_data.inl +++ b/glm/gtx/raw_data.inl @@ -1,11 +1,31 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2008-11-19 -// Updated : 2008-11-19 -// Licence : This source is under MIT License -// File : glm/gtx/raw_data.inl -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Dependency: -// - GLM core -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @ref gtx_raw_data +/// @file glm/gtx/raw_data.inl +/// @date 2008-11-19 / 2011-06-07 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// diff --git a/glm/gtx/rotate_normalized_axis.hpp b/glm/gtx/rotate_normalized_axis.hpp index 6eaffce4..9deba38f 100644 --- a/glm/gtx/rotate_normalized_axis.hpp +++ b/glm/gtx/rotate_normalized_axis.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -30,7 +34,7 @@ /// @see gtc_quaternion /// /// @defgroup gtx_rotate_normalized_axis GLM_GTX_rotate_normalized_axis -/// @ingroup gtc +/// @ingroup gtx /// /// @brief Quaternions and matrices rotations around normalized axis. /// diff --git a/glm/gtx/rotate_normalized_axis.inl b/glm/gtx/rotate_normalized_axis.inl index 326bdb20..9bb257ca 100644 --- a/glm/gtx/rotate_normalized_axis.inl +++ b/glm/gtx/rotate_normalized_axis.inl @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE diff --git a/glm/gtx/rotate_vector.hpp b/glm/gtx/rotate_vector.hpp index 4fe09c81..acf1d7ca 100644 --- a/glm/gtx/rotate_vector.hpp +++ b/glm/gtx/rotate_vector.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE diff --git a/glm/gtx/rotate_vector.inl b/glm/gtx/rotate_vector.inl index adb4f83b..94a40604 100644 --- a/glm/gtx/rotate_vector.inl +++ b/glm/gtx/rotate_vector.inl @@ -1,11 +1,34 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2006-11-02 -// Updated : 2009-02-19 -// Licence : This source is under MIT License -// File : glm/gtx/rotate_vector.inl -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @ref gtx_rotate_vector +/// @file glm/gtx/rotate_vector.inl +/// @date 2006-11-02 / 2011-06-07 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// namespace glm { diff --git a/glm/gtx/scalar_multiplication.hpp b/glm/gtx/scalar_multiplication.hpp index e0eee2e2..f9abfe5a 100644 --- a/glm/gtx/scalar_multiplication.hpp +++ b/glm/gtx/scalar_multiplication.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE diff --git a/glm/gtx/scalar_relational.hpp b/glm/gtx/scalar_relational.hpp index 08c7470e..8e855e60 100644 --- a/glm/gtx/scalar_relational.hpp +++ b/glm/gtx/scalar_relational.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -27,7 +31,7 @@ /// /// @see core (dependence) /// -/// @defgroup gtx_extend GLM_GTX_scalar_relational +/// @defgroup gtx_scalar_relational GLM_GTX_scalar_relational /// @ingroup gtx /// /// @brief Extend a position from a source to a position at a defined length. diff --git a/glm/gtx/scalar_relational.inl b/glm/gtx/scalar_relational.inl index ad397c33..b28c8cfe 100644 --- a/glm/gtx/scalar_relational.inl +++ b/glm/gtx/scalar_relational.inl @@ -1,11 +1,34 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2013-02-04 -// Updated : 2013-02-04 -// Licence : This source is under MIT License -// File : glm/gtx/scalar_relational.inl -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @ref gtx_scalar_relational +/// @file glm/gtx/scalar_relational.inl +/// @date 2013-02-04 / 2013-02-04 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// namespace glm { diff --git a/glm/gtx/simd_mat4.hpp b/glm/gtx/simd_mat4.hpp index 3ea8d05d..f4403360 100644 --- a/glm/gtx/simd_mat4.hpp +++ b/glm/gtx/simd_mat4.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -20,8 +24,8 @@ /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN /// THE SOFTWARE. /// -/// @ref gtx_simd_vec4 -/// @file glm/gtx/simd_vec4.hpp +/// @ref gtx_simd_mat4 +/// @file glm/gtx/simd_mat4.hpp /// @date 2009-05-07 / 2011-06-07 /// @author Christophe Riccio /// diff --git a/glm/gtx/simd_mat4.inl b/glm/gtx/simd_mat4.inl index bac06506..46f149d8 100644 --- a/glm/gtx/simd_mat4.inl +++ b/glm/gtx/simd_mat4.inl @@ -1,10 +1,33 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2009-05-19 -// Updated : 2009-05-19 -// Licence : This source is under MIT License -// File : glm/gtx/simd_mat4.hpp +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @ref gtx_simd_mat4 +/// @file glm/gtx/simd_mat4.inl +/// @date 2009-05-07 / 2011-06-07 +/// @author Christophe Riccio /////////////////////////////////////////////////////////////////////////////////////////////////// namespace glm{ diff --git a/glm/gtx/simd_quat.hpp b/glm/gtx/simd_quat.hpp index f3aa2938..6371f5e4 100644 --- a/glm/gtx/simd_quat.hpp +++ b/glm/gtx/simd_quat.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -22,12 +26,12 @@ /// /// @ref gtx_simd_quat /// @file glm/gtx/simd_quat.hpp -/// @date 2009-05-07 / 2011-06-07 +/// @date 2013-04-22 / 2014-11-25 /// @author Christophe Riccio /// /// @see core (dependence) /// -/// @defgroup gtx_simd_vec4 GLM_GTX_simd_quat +/// @defgroup gtx_simd_quat GLM_GTX_simd_quat /// @ingroup gtx /// /// @brief SIMD implementation of quat type. @@ -54,19 +58,15 @@ # pragma message("GLM: GLM_GTX_simd_quat extension included") #endif - // Warning silencer for nameless struct/union. #if (GLM_COMPILER & GLM_COMPILER_VC) # pragma warning(push) # pragma warning(disable:4201) // warning C4201: nonstandard extension used : nameless struct/union #endif - namespace glm{ namespace detail { - /// Quaternion implemented using SIMD SEE intrinsics. - /// \ingroup gtx_simd_vec4 GLM_ALIGNED_STRUCT(16) fquatSIMD { typedef __m128 value_type; @@ -77,13 +77,13 @@ namespace detail typedef tquat bool_type; #ifdef GLM_SIMD_ENABLE_XYZW_UNION - union - { - __m128 Data; - struct {float x, y, z, w;}; - }; + union + { + __m128 Data; + struct {float x, y, z, w;}; + }; #else - __m128 Data; + __m128 Data; #endif ////////////////////////////////////// @@ -105,7 +105,7 @@ namespace detail float const & z); explicit fquatSIMD( quat const & v); - explicit fquatSIMD( + explicit fquatSIMD( vec3 const & eulerAngles); @@ -154,59 +154,59 @@ namespace detail }//namespace detail - typedef glm::detail::fquatSIMD simdQuat; - /// @addtogroup gtx_simd_quat /// @{ + typedef glm::detail::fquatSIMD simdQuat; + //! Convert a simdQuat to a quat. - //! (From GLM_GTX_simd_quat extension) + /// @see gtx_simd_quat quat quat_cast( detail::fquatSIMD const & x); //! Convert a simdMat4 to a simdQuat. - //! (From GLM_GTX_simd_quat extension) + /// @see gtx_simd_quat detail::fquatSIMD quatSIMD_cast( detail::fmat4x4SIMD const & m); //! Converts a mat4 to a simdQuat. - //! (From GLM_GTX_simd_quat extension) + /// @see gtx_simd_quat template detail::fquatSIMD quatSIMD_cast( tmat4x4 const & m); //! Converts a mat3 to a simdQuat. - //! (From GLM_GTX_simd_quat extension) + /// @see gtx_simd_quat template detail::fquatSIMD quatSIMD_cast( tmat3x3 const & m); //! Convert a simdQuat to a simdMat4 - //! (From GLM_GTX_simd_quat extension) + /// @see gtx_simd_quat detail::fmat4x4SIMD mat4SIMD_cast( detail::fquatSIMD const & q); //! Converts a simdQuat to a standard mat4. - //! (From GLM_GTX_simd_quat extension) + /// @see gtx_simd_quat mat4 mat4_cast( detail::fquatSIMD const & q); /// Returns the length of the quaternion. /// - /// @see gtc_quaternion + /// @see gtx_simd_quat float length( detail::fquatSIMD const & x); /// Returns the normalized quaternion. /// - /// @see gtc_quaternion + /// @see gtx_simd_quat detail::fquatSIMD normalize( detail::fquatSIMD const & x); /// Returns dot product of q1 and q2, i.e., q1[0] * q2[0] + q1[1] * q2[1] + ... /// - /// @see gtc_quaternion + /// @see gtx_simd_quat float dot( detail::fquatSIMD const & q1, detail::fquatSIMD const & q2); @@ -219,7 +219,7 @@ namespace detail /// @param y A quaternion /// @param a Interpolation factor. The interpolation is defined beyond the range [0, 1]. /// @tparam T Value type used to build the quaternion. Supported: half, float or double. - /// @see gtc_quaternion + /// @see gtx_simd_quat /// @see - slerp(detail::fquatSIMD const & x, detail::fquatSIMD const & y, T const & a) detail::fquatSIMD mix( detail::fquatSIMD const & x, @@ -233,7 +233,7 @@ namespace detail /// @param y A quaternion /// @param a Interpolation factor. The interpolation is defined in the range [0, 1]. /// @tparam T Value type used to build the quaternion. Supported: half, float or double. - /// @see gtc_quaternion + /// @see gtx_simd_quat detail::fquatSIMD lerp( detail::fquatSIMD const & x, detail::fquatSIMD const & y, @@ -246,7 +246,7 @@ namespace detail /// @param y A quaternion /// @param a Interpolation factor. The interpolation is defined beyond the range [0, 1]. /// @tparam T Value type used to build the quaternion. Supported: half, float or double. - /// @see gtc_quaternion + /// @see gtx_simd_quat detail::fquatSIMD slerp( detail::fquatSIMD const & x, detail::fquatSIMD const & y, @@ -261,7 +261,7 @@ namespace detail /// /// This will use the equivalent to fastAcos() and fastSin(). /// - /// @see gtc_quaternion + /// @see gtx_simd_quat /// @see - mix(detail::fquatSIMD const & x, detail::fquatSIMD const & y, T const & a) detail::fquatSIMD fastMix( detail::fquatSIMD const & x, @@ -283,13 +283,13 @@ namespace detail /// Returns the q conjugate. /// - /// @see gtc_quaternion + /// @see gtx_simd_quat detail::fquatSIMD conjugate( detail::fquatSIMD const & q); /// Returns the q inverse. /// - /// @see gtc_quaternion + /// @see gtx_simd_quat detail::fquatSIMD inverse( detail::fquatSIMD const & q); @@ -298,7 +298,7 @@ namespace detail /// @param angle Angle expressed in radians. /// @param axis Axis of the quaternion, must be normalized. /// - /// @see gtc_quaternion + /// @see gtx_simd_quat detail::fquatSIMD angleAxisSIMD( float const & angle, vec3 const & axis); @@ -310,19 +310,17 @@ namespace detail /// @param y y component of the y-axis, x, y, z must be a normalized axis /// @param z z component of the z-axis, x, y, z must be a normalized axis /// - /// @see gtc_quaternion + /// @see gtx_simd_quat detail::fquatSIMD angleAxisSIMD( float const & angle, float const & x, float const & y, float const & z); - // TODO: Move this to somewhere more appropriate. Used with fastMix() and fastSlerp(). /// Performs the equivalent of glm::fastSin() on each component of the given __m128. __m128 fastSin(__m128 x); - /// @} }//namespace glm diff --git a/glm/gtx/simd_quat.inl b/glm/gtx/simd_quat.inl index 760113e3..95cd9b0f 100644 --- a/glm/gtx/simd_quat.inl +++ b/glm/gtx/simd_quat.inl @@ -1,12 +1,34 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2013-04-22 -// Updated : 2013-04-22 -// Licence : This source is under MIT License -// File : glm/gtx/simd_quat.inl -/////////////////////////////////////////////////////////////////////////////////////////////////// - +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @ref gtx_simd_quat +/// @file glm/gtx/simd_quat.inl +/// @date 2013-04-22 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// namespace glm{ namespace detail{ diff --git a/glm/gtx/simd_vec4.hpp b/glm/gtx/simd_vec4.hpp index 06a9db04..a6868070 100644 --- a/glm/gtx/simd_vec4.hpp +++ b/glm/gtx/simd_vec4.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE diff --git a/glm/gtx/spline.hpp b/glm/gtx/spline.hpp index 07d07b34..3ae86d25 100644 --- a/glm/gtx/spline.hpp +++ b/glm/gtx/spline.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -50,7 +54,7 @@ namespace glm /// @addtogroup gtx_spline /// @{ - //! Return a point from a catmull rom curve. + /// Return a point from a catmull rom curve. /// @see gtx_spline extension. template GLM_FUNC_DECL genType catmullRom( @@ -60,7 +64,7 @@ namespace glm genType const & v4, typename genType::value_type const & s); - //! Return a point from a hermite curve. + /// Return a point from a hermite curve. /// @see gtx_spline extension. template GLM_FUNC_DECL genType hermite( @@ -70,7 +74,7 @@ namespace glm genType const & t2, typename genType::value_type const & s); - //! Return a point from a cubic curve. + /// Return a point from a cubic curve. /// @see gtx_spline extension. template GLM_FUNC_DECL genType cubic( diff --git a/glm/gtx/spline.inl b/glm/gtx/spline.inl index d3014609..1791b407 100644 --- a/glm/gtx/spline.inl +++ b/glm/gtx/spline.inl @@ -1,70 +1,92 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2007-01-25 -// Updated : 2009-02-19 -// Licence : This source is under MIT License -// File : glm/gtx/spline.inl -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @ref gtx_spline +/// @file glm/gtx/spline.inl +/// @date 2007-01-25 / 2011-06-07 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// -namespace glm{ - -template -GLM_FUNC_QUALIFIER genType catmullRom -( - genType const & v1, - genType const & v2, - genType const & v3, - genType const & v4, - typename genType::value_type const & s -) +namespace glm { - typename genType::value_type s1 = s; - typename genType::value_type s2 = pow2(s); - typename genType::value_type s3 = pow3(s); + template + GLM_FUNC_QUALIFIER genType catmullRom + ( + genType const & v1, + genType const & v2, + genType const & v3, + genType const & v4, + typename genType::value_type const & s + ) + { + typename genType::value_type s1 = s; + typename genType::value_type s2 = pow2(s); + typename genType::value_type s3 = pow3(s); - typename genType::value_type f1 = -s3 + typename genType::value_type(2) * s2 - s; - typename genType::value_type f2 = typename genType::value_type(3) * s3 - typename genType::value_type(5) * s2 + typename genType::value_type(2); - typename genType::value_type f3 = typename genType::value_type(-3) * s3 + typename genType::value_type(4) * s2 + s; - typename genType::value_type f4 = s3 - s2; + typename genType::value_type f1 = -s3 + typename genType::value_type(2) * s2 - s; + typename genType::value_type f2 = typename genType::value_type(3) * s3 - typename genType::value_type(5) * s2 + typename genType::value_type(2); + typename genType::value_type f3 = typename genType::value_type(-3) * s3 + typename genType::value_type(4) * s2 + s; + typename genType::value_type f4 = s3 - s2; - return (f1 * v1 + f2 * v2 + f3 * v3 + f4 * v4) / typename genType::value_type(2); + return (f1 * v1 + f2 * v2 + f3 * v3 + f4 * v4) / typename genType::value_type(2); -} + } -template -GLM_FUNC_QUALIFIER genType hermite -( - genType const & v1, - genType const & t1, - genType const & v2, - genType const & t2, - typename genType::value_type const & s -) -{ - typename genType::value_type s1 = s; - typename genType::value_type s2 = pow2(s); - typename genType::value_type s3 = pow3(s); + template + GLM_FUNC_QUALIFIER genType hermite + ( + genType const & v1, + genType const & t1, + genType const & v2, + genType const & t2, + typename genType::value_type const & s + ) + { + typename genType::value_type s1 = s; + typename genType::value_type s2 = pow2(s); + typename genType::value_type s3 = pow3(s); - typename genType::value_type f1 = typename genType::value_type(2) * s3 - typename genType::value_type(3) * s2 + typename genType::value_type(1); - typename genType::value_type f2 = typename genType::value_type(-2) * s3 + typename genType::value_type(3) * s2; - typename genType::value_type f3 = s3 - typename genType::value_type(2) * s2 + s; - typename genType::value_type f4 = s3 - s2; + typename genType::value_type f1 = typename genType::value_type(2) * s3 - typename genType::value_type(3) * s2 + typename genType::value_type(1); + typename genType::value_type f2 = typename genType::value_type(-2) * s3 + typename genType::value_type(3) * s2; + typename genType::value_type f3 = s3 - typename genType::value_type(2) * s2 + s; + typename genType::value_type f4 = s3 - s2; - return f1 * v1 + f2 * v2 + f3 * t1 + f4 * t2; -} - -template -GLM_FUNC_QUALIFIER genType cubic -( - genType const & v1, - genType const & v2, - genType const & v3, - genType const & v4, - typename genType::value_type const & s -) -{ - return ((v1 * s + v2) * s + v3) * s + v4; -} + return f1 * v1 + f2 * v2 + f3 * t1 + f4 * t2; + } + template + GLM_FUNC_QUALIFIER genType cubic + ( + genType const & v1, + genType const & v2, + genType const & v3, + genType const & v4, + typename genType::value_type const & s + ) + { + return ((v1 * s + v2) * s + v3) * s + v4; + } }//namespace glm diff --git a/glm/gtx/std_based_type.hpp b/glm/gtx/std_based_type.hpp index d7960d69..8190f66f 100644 --- a/glm/gtx/std_based_type.hpp +++ b/glm/gtx/std_based_type.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE diff --git a/glm/gtx/std_based_type.inl b/glm/gtx/std_based_type.inl index 89bd6764..259cfd52 100644 --- a/glm/gtx/std_based_type.inl +++ b/glm/gtx/std_based_type.inl @@ -1,11 +1,34 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2008-06-08 -// Updated : 2008-06-08 -// Licence : This source is under MIT License -// File : glm/gtx/std_based_type.inl -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @ref gtx_std_based_type +/// @file glm/gtx/std_based_type.inl +/// @date 2008-06-08 / 2011-06-07 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// namespace glm { diff --git a/glm/gtx/string_cast.hpp b/glm/gtx/string_cast.hpp index 3dd7cad3..2c3eb22f 100644 --- a/glm/gtx/string_cast.hpp +++ b/glm/gtx/string_cast.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE diff --git a/glm/gtx/string_cast.inl b/glm/gtx/string_cast.inl index f30a0ff8..a898b542 100644 --- a/glm/gtx/string_cast.inl +++ b/glm/gtx/string_cast.inl @@ -1,11 +1,34 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2006 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2008-04-27 -// Updated : 2014-05-10 -// Licence : This source is under MIT License -// File : glm/gtx/string_cast.hpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @ref gtx_string_cast +/// @file glm/gtx/string_cast.inl +/// @date 2008-04-26 / 2014-05-10 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// #include #include diff --git a/glm/gtx/transform.hpp b/glm/gtx/transform.hpp index 602c8ce1..361bba21 100644 --- a/glm/gtx/transform.hpp +++ b/glm/gtx/transform.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -53,24 +57,24 @@ namespace glm /// @addtogroup gtx_transform /// @{ - /// Transforms a matrix with a translation 4 * 4 matrix created from 3 scalars. - /// - From \link gtx_transform GLM_GTX_transform \endlink extension - /// - See also: \link glm::translate GLM_GTC_matrix_transform \endlink + /// Transforms a matrix with a translation 4 * 4 matrix created from 3 scalars. + /// @see gtc_matrix_transform + /// @see gtx_transform template GLM_FUNC_DECL tmat4x4 translate( tvec3 const & v); /// Builds a rotation 4 * 4 matrix created from an axis of 3 scalars and an angle expressed in degrees. - /// - From \link gtx_transform GLM_GTX_transform \endlink extension - /// - See also: \link glm::rotate GLM_GTC_matrix_transform \endlink + /// @see gtc_matrix_transform + /// @see gtx_transform template GLM_FUNC_DECL tmat4x4 rotate( T angle, tvec3 const & v); /// Transforms a matrix with a scale 4 * 4 matrix created from a vector of 3 components. - /// - From \link gtx_transform GLM_GTX_transform \endlink extension - /// - See also: \link glm::scale GLM_GTC_matrix_transform \endlink + /// @see gtc_matrix_transform + /// @see gtx_transform template GLM_FUNC_DECL tmat4x4 scale( tvec3 const & v); diff --git a/glm/gtx/transform.inl b/glm/gtx/transform.inl index 8ea121ad..919ad755 100644 --- a/glm/gtx/transform.inl +++ b/glm/gtx/transform.inl @@ -1,11 +1,34 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2005-12-21 -// Updated : 2009-04-29 -// Licence : This source is under MIT License -// File : glm/gtx/transform.inl -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @ref gtx_transform +/// @file glm/gtx/transform.inl +/// @date 2005-12-21 / 2011-06-07 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// namespace glm { diff --git a/glm/gtx/transform2.hpp b/glm/gtx/transform2.hpp index b41c504d..7758bf55 100644 --- a/glm/gtx/transform2.hpp +++ b/glm/gtx/transform2.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE diff --git a/glm/gtx/transform2.inl b/glm/gtx/transform2.inl index be652d92..b798adc7 100644 --- a/glm/gtx/transform2.inl +++ b/glm/gtx/transform2.inl @@ -1,11 +1,34 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2005-02-28 -// Updated : 2005-04-23 -// Licence : This source is under MIT License -// File : glm/gtx/transform2.inl -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @ref gtx_transform2 +/// @file glm/gtx/transform2.inl +/// @date 2005-12-21 / 2011-06-07 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// namespace glm { diff --git a/glm/gtx/type_aligned.hpp b/glm/gtx/type_aligned.hpp new file mode 100644 index 00000000..7004e1be --- /dev/null +++ b/glm/gtx/type_aligned.hpp @@ -0,0 +1,995 @@ +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @ref gtx_type_aligned +/// @file glm/gtx/type_aligned.hpp +/// @date 2014-11-23 / 2014-12-23 +/// @author Christophe Riccio +/// +/// @see core (dependence) +/// @see gtc_quaternion (dependence) +/// +/// @defgroup gtx_type_aligned GLM_GTX_type_aligned +/// @ingroup gtx +/// +/// @brief Defines aligned types. +/// +/// @ref core_precision defines aligned types. +/// +/// need to be included to use these functionalities. +/////////////////////////////////////////////////////////////////////////////////// + +#pragma once + +// Dependency: +#include "../gtc/type_precision.hpp" + +#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED)) +# pragma message("GLM: GLM_GTX_type_aligned extension included") +#endif + +namespace glm +{ + /////////////////////////// + // Signed int vector types + + /// @addtogroup gtx_type_aligned + /// @{ + + /// Low precision 8 bit signed integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(lowp_int8, aligned_lowp_int8, 1); + + /// Low precision 16 bit signed integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(lowp_int16, aligned_lowp_int16, 2); + + /// Low precision 32 bit signed integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(lowp_int32, aligned_lowp_int32, 4); + + /// Low precision 64 bit signed integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(lowp_int64, aligned_lowp_int64, 8); + + + /// Low precision 8 bit signed integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(lowp_int8_t, aligned_lowp_int8_t, 1); + + /// Low precision 16 bit signed integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(lowp_int16_t, aligned_lowp_int16_t, 2); + + /// Low precision 32 bit signed integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(lowp_int32_t, aligned_lowp_int32_t, 4); + + /// Low precision 64 bit signed integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(lowp_int64_t, aligned_lowp_int64_t, 8); + + + /// Low precision 8 bit signed integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(lowp_i8, aligned_lowp_i8, 1); + + /// Low precision 16 bit signed integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(lowp_i16, aligned_lowp_i16, 2); + + /// Low precision 32 bit signed integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(lowp_i32, aligned_lowp_i32, 4); + + /// Low precision 64 bit signed integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(lowp_i64, aligned_lowp_i64, 8); + + + /// Medium precision 8 bit signed integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(mediump_int8, aligned_mediump_int8, 1); + + /// Medium precision 16 bit signed integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(mediump_int16, aligned_mediump_int16, 2); + + /// Medium precision 32 bit signed integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(mediump_int32, aligned_mediump_int32, 4); + + /// Medium precision 64 bit signed integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(mediump_int64, aligned_mediump_int64, 8); + + + /// Medium precision 8 bit signed integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(mediump_int8_t, aligned_mediump_int8_t, 1); + + /// Medium precision 16 bit signed integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(mediump_int16_t, aligned_mediump_int16_t, 2); + + /// Medium precision 32 bit signed integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(mediump_int32_t, aligned_mediump_int32_t, 4); + + /// Medium precision 64 bit signed integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(mediump_int64_t, aligned_mediump_int64_t, 8); + + + /// Medium precision 8 bit signed integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(mediump_i8, aligned_mediump_i8, 1); + + /// Medium precision 16 bit signed integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(mediump_i16, aligned_mediump_i16, 2); + + /// Medium precision 32 bit signed integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(mediump_i32, aligned_mediump_i32, 4); + + /// Medium precision 64 bit signed integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(mediump_i64, aligned_mediump_i64, 8); + + + /// High precision 8 bit signed integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(highp_int8, aligned_highp_int8, 1); + + /// High precision 16 bit signed integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(highp_int16, aligned_highp_int16, 2); + + /// High precision 32 bit signed integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(highp_int32, aligned_highp_int32, 4); + + /// High precision 64 bit signed integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(highp_int64, aligned_highp_int64, 8); + + + /// High precision 8 bit signed integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(highp_int8_t, aligned_highp_int8_t, 1); + + /// High precision 16 bit signed integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(highp_int16_t, aligned_highp_int16_t, 2); + + /// High precision 32 bit signed integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(highp_int32_t, aligned_highp_int32_t, 4); + + /// High precision 64 bit signed integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(highp_int64_t, aligned_highp_int64_t, 8); + + + /// High precision 8 bit signed integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(highp_i8, aligned_highp_i8, 1); + + /// High precision 16 bit signed integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(highp_i16, aligned_highp_i16, 2); + + /// High precision 32 bit signed integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(highp_i32, aligned_highp_i32, 4); + + /// High precision 64 bit signed integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(highp_i64, aligned_highp_i64, 8); + + + /// Default precision 8 bit signed integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(int8, aligned_int8, 1); + + /// Default precision 16 bit signed integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(int16, aligned_int16, 2); + + /// Default precision 32 bit signed integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(int32, aligned_int32, 4); + + /// Default precision 64 bit signed integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(int64, aligned_int64, 8); + + + /// Default precision 8 bit signed integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(int8_t, aligned_int8_t, 1); + + /// Default precision 16 bit signed integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(int16_t, aligned_int16_t, 2); + + /// Default precision 32 bit signed integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(int32_t, aligned_int32_t, 4); + + /// Default precision 64 bit signed integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(int64_t, aligned_int64_t, 8); + + + /// Default precision 8 bit signed integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(i8, aligned_i8, 1); + + /// Default precision 16 bit signed integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(i16, aligned_i16, 2); + + /// Default precision 32 bit signed integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(i32, aligned_i32, 4); + + /// Default precision 64 bit signed integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(i64, aligned_i64, 8); + + + /// Default precision 32 bit signed integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(ivec1, aligned_ivec1, 4); + + /// Default precision 32 bit signed integer aligned vector of 2 components type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(ivec2, aligned_ivec2, 8); + + /// Default precision 32 bit signed integer aligned vector of 3 components type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(ivec3, aligned_ivec3, 16); + + /// Default precision 32 bit signed integer aligned vector of 4 components type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(ivec4, aligned_ivec4, 16); + + + /// Default precision 8 bit signed integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(i8vec1, aligned_i8vec1, 1); + + /// Default precision 8 bit signed integer aligned vector of 2 components type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(i8vec2, aligned_i8vec2, 2); + + /// Default precision 8 bit signed integer aligned vector of 3 components type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(i8vec3, aligned_i8vec3, 4); + + /// Default precision 8 bit signed integer aligned vector of 4 components type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(i8vec4, aligned_i8vec4, 4); + + + /// Default precision 16 bit signed integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(i16vec1, aligned_i16vec1, 2); + + /// Default precision 16 bit signed integer aligned vector of 2 components type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(i16vec2, aligned_i16vec2, 4); + + /// Default precision 16 bit signed integer aligned vector of 3 components type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(i16vec3, aligned_i16vec3, 8); + + /// Default precision 16 bit signed integer aligned vector of 4 components type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(i16vec4, aligned_i16vec4, 8); + + + /// Default precision 32 bit signed integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(i32vec1, aligned_i32vec1, 4); + + /// Default precision 32 bit signed integer aligned vector of 2 components type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(i32vec2, aligned_i32vec2, 8); + + /// Default precision 32 bit signed integer aligned vector of 3 components type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(i32vec3, aligned_i32vec3, 16); + + /// Default precision 32 bit signed integer aligned vector of 4 components type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(i32vec4, aligned_i32vec4, 16); + + + /// Default precision 64 bit signed integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(i64vec1, aligned_i64vec1, 8); + + /// Default precision 64 bit signed integer aligned vector of 2 components type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(i64vec2, aligned_i64vec2, 16); + + /// Default precision 64 bit signed integer aligned vector of 3 components type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(i64vec3, aligned_i64vec3, 32); + + /// Default precision 64 bit signed integer aligned vector of 4 components type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(i64vec4, aligned_i64vec4, 32); + + + ///////////////////////////// + // Unsigned int vector types + + /// Low precision 8 bit unsigned integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(lowp_uint8, aligned_lowp_uint8, 1); + + /// Low precision 16 bit unsigned integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(lowp_uint16, aligned_lowp_uint16, 2); + + /// Low precision 32 bit unsigned integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(lowp_uint32, aligned_lowp_uint32, 4); + + /// Low precision 64 bit unsigned integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(lowp_uint64, aligned_lowp_uint64, 8); + + + /// Low precision 8 bit unsigned integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(lowp_uint8_t, aligned_lowp_uint8_t, 1); + + /// Low precision 16 bit unsigned integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(lowp_uint16_t, aligned_lowp_uint16_t, 2); + + /// Low precision 32 bit unsigned integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(lowp_uint32_t, aligned_lowp_uint32_t, 4); + + /// Low precision 64 bit unsigned integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(lowp_uint64_t, aligned_lowp_uint64_t, 8); + + + /// Low precision 8 bit unsigned integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(lowp_u8, aligned_lowp_u8, 1); + + /// Low precision 16 bit unsigned integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(lowp_u16, aligned_lowp_u16, 2); + + /// Low precision 32 bit unsigned integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(lowp_u32, aligned_lowp_u32, 4); + + /// Low precision 64 bit unsigned integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(lowp_u64, aligned_lowp_u64, 8); + + + /// Medium precision 8 bit unsigned integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(mediump_uint8, aligned_mediump_uint8, 1); + + /// Medium precision 16 bit unsigned integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(mediump_uint16, aligned_mediump_uint16, 2); + + /// Medium precision 32 bit unsigned integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(mediump_uint32, aligned_mediump_uint32, 4); + + /// Medium precision 64 bit unsigned integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(mediump_uint64, aligned_mediump_uint64, 8); + + + /// Medium precision 8 bit unsigned integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(mediump_uint8_t, aligned_mediump_uint8_t, 1); + + /// Medium precision 16 bit unsigned integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(mediump_uint16_t, aligned_mediump_uint16_t, 2); + + /// Medium precision 32 bit unsigned integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(mediump_uint32_t, aligned_mediump_uint32_t, 4); + + /// Medium precision 64 bit unsigned integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(mediump_uint64_t, aligned_mediump_uint64_t, 8); + + + /// Medium precision 8 bit unsigned integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(mediump_u8, aligned_mediump_u8, 1); + + /// Medium precision 16 bit unsigned integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(mediump_u16, aligned_mediump_u16, 2); + + /// Medium precision 32 bit unsigned integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(mediump_u32, aligned_mediump_u32, 4); + + /// Medium precision 64 bit unsigned integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(mediump_u64, aligned_mediump_u64, 8); + + + /// High precision 8 bit unsigned integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(highp_uint8, aligned_highp_uint8, 1); + + /// High precision 16 bit unsigned integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(highp_uint16, aligned_highp_uint16, 2); + + /// High precision 32 bit unsigned integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(highp_uint32, aligned_highp_uint32, 4); + + /// High precision 64 bit unsigned integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(highp_uint64, aligned_highp_uint64, 8); + + + /// High precision 8 bit unsigned integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(highp_uint8_t, aligned_highp_uint8_t, 1); + + /// High precision 16 bit unsigned integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(highp_uint16_t, aligned_highp_uint16_t, 2); + + /// High precision 32 bit unsigned integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(highp_uint32_t, aligned_highp_uint32_t, 4); + + /// High precision 64 bit unsigned integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(highp_uint64_t, aligned_highp_uint64_t, 8); + + + /// High precision 8 bit unsigned integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(highp_u8, aligned_highp_u8, 1); + + /// High precision 16 bit unsigned integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(highp_u16, aligned_highp_u16, 2); + + /// High precision 32 bit unsigned integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(highp_u32, aligned_highp_u32, 4); + + /// High precision 64 bit unsigned integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(highp_u64, aligned_highp_u64, 8); + + + /// Default precision 8 bit unsigned integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(uint8, aligned_uint8, 1); + + /// Default precision 16 bit unsigned integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(uint16, aligned_uint16, 2); + + /// Default precision 32 bit unsigned integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(uint32, aligned_uint32, 4); + + /// Default precision 64 bit unsigned integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(uint64, aligned_uint64, 8); + + + /// Default precision 8 bit unsigned integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(uint8_t, aligned_uint8_t, 1); + + /// Default precision 16 bit unsigned integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(uint16_t, aligned_uint16_t, 2); + + /// Default precision 32 bit unsigned integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(uint32_t, aligned_uint32_t, 4); + + /// Default precision 64 bit unsigned integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(uint64_t, aligned_uint64_t, 8); + + + /// Default precision 8 bit unsigned integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(u8, aligned_u8, 1); + + /// Default precision 16 bit unsigned integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(u16, aligned_u16, 2); + + /// Default precision 32 bit unsigned integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(u32, aligned_u32, 4); + + /// Default precision 64 bit unsigned integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(u64, aligned_u64, 8); + + + /// Default precision 32 bit unsigned integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(uvec1, aligned_uvec1, 4); + + /// Default precision 32 bit unsigned integer aligned vector of 2 components type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(uvec2, aligned_uvec2, 8); + + /// Default precision 32 bit unsigned integer aligned vector of 3 components type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(uvec3, aligned_uvec3, 16); + + /// Default precision 32 bit unsigned integer aligned vector of 4 components type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(uvec4, aligned_uvec4, 16); + + + /// Default precision 8 bit unsigned integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(u8vec1, aligned_u8vec1, 1); + + /// Default precision 8 bit unsigned integer aligned vector of 2 components type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(u8vec2, aligned_u8vec2, 2); + + /// Default precision 8 bit unsigned integer aligned vector of 3 components type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(u8vec3, aligned_u8vec3, 4); + + /// Default precision 8 bit unsigned integer aligned vector of 4 components type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(u8vec4, aligned_u8vec4, 4); + + + /// Default precision 16 bit unsigned integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(u16vec1, aligned_u16vec1, 2); + + /// Default precision 16 bit unsigned integer aligned vector of 2 components type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(u16vec2, aligned_u16vec2, 4); + + /// Default precision 16 bit unsigned integer aligned vector of 3 components type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(u16vec3, aligned_u16vec3, 8); + + /// Default precision 16 bit unsigned integer aligned vector of 4 components type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(u16vec4, aligned_u16vec4, 8); + + + /// Default precision 32 bit unsigned integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(u32vec1, aligned_u32vec1, 4); + + /// Default precision 32 bit unsigned integer aligned vector of 2 components type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(u32vec2, aligned_u32vec2, 8); + + /// Default precision 32 bit unsigned integer aligned vector of 3 components type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(u32vec3, aligned_u32vec3, 16); + + /// Default precision 32 bit unsigned integer aligned vector of 4 components type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(u32vec4, aligned_u32vec4, 16); + + + /// Default precision 64 bit unsigned integer aligned scalar type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(u64vec1, aligned_u64vec1, 8); + + /// Default precision 64 bit unsigned integer aligned vector of 2 components type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(u64vec2, aligned_u64vec2, 16); + + /// Default precision 64 bit unsigned integer aligned vector of 3 components type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(u64vec3, aligned_u64vec3, 32); + + /// Default precision 64 bit unsigned integer aligned vector of 4 components type. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(u64vec4, aligned_u64vec4, 32); + + + ////////////////////// + // Float vector types + + /// 32 bit single-precision floating-point aligned scalar. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(float32, aligned_float32, 4); + + /// 64 bit double-precision floating-point aligned scalar. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(float64, aligned_float64, 8); + + + /// 32 bit single-precision floating-point aligned scalar. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(float32_t, aligned_float32_t, 4); + + /// 64 bit double-precision floating-point aligned scalar. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(float64_t, aligned_float64_t, 8); + + + /// 32 bit single-precision floating-point aligned scalar. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(float32, aligned_f32, 4); + + /// 64 bit double-precision floating-point aligned scalar. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(float64, aligned_f64, 8); + + + /// Single-precision floating-point aligned vector of 1 component. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(vec1, aligned_vec1, 4); + + /// Single-precision floating-point aligned vector of 2 components. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(vec2, aligned_vec2, 8); + + /// Single-precision floating-point aligned vector of 3 components. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(vec3, aligned_vec3, 16); + + /// Single-precision floating-point aligned vector of 4 components. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(vec4, aligned_vec4, 16); + + + /// Single-precision floating-point aligned vector of 1 component. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(fvec1, aligned_fvec1, 4); + + /// Single-precision floating-point aligned vector of 2 components. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(fvec2, aligned_fvec2, 8); + + /// Single-precision floating-point aligned vector of 3 components. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(fvec3, aligned_fvec3, 16); + + /// Single-precision floating-point aligned vector of 4 components. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(fvec4, aligned_fvec4, 16); + + + /// Single-precision floating-point aligned vector of 1 component. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(f32vec1, aligned_f32vec1, 4); + + /// Single-precision floating-point aligned vector of 2 components. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(f32vec2, aligned_f32vec2, 8); + + /// Single-precision floating-point aligned vector of 3 components. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(f32vec3, aligned_f32vec3, 16); + + /// Single-precision floating-point aligned vector of 4 components. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(f32vec4, aligned_f32vec4, 16); + + + /// Double-precision floating-point aligned vector of 1 component. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(dvec1, aligned_dvec1, 8); + + /// Double-precision floating-point aligned vector of 2 components. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(dvec2, aligned_dvec2, 16); + + /// Double-precision floating-point aligned vector of 3 components. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(dvec3, aligned_dvec3, 32); + + /// Double-precision floating-point aligned vector of 4 components. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(dvec4, aligned_dvec4, 32); + + + /// Double-precision floating-point aligned vector of 1 component. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(f64vec1, aligned_f64vec1, 8); + + /// Double-precision floating-point aligned vector of 2 components. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(f64vec2, aligned_f64vec2, 16); + + /// Double-precision floating-point aligned vector of 3 components. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(f64vec3, aligned_f64vec3, 32); + + /// Double-precision floating-point aligned vector of 4 components. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(f64vec4, aligned_f64vec4, 32); + + + ////////////////////// + // Float matrix types + + /// Single-precision floating-point aligned 1x1 matrix. + /// @see gtx_type_aligned + //typedef detail::tmat1 mat1; + + /// Single-precision floating-point aligned 2x2 matrix. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(mat2, aligned_mat2, 16); + + /// Single-precision floating-point aligned 3x3 matrix. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(mat3, aligned_mat3, 16); + + /// Single-precision floating-point aligned 4x4 matrix. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(mat4, aligned_mat4, 16); + + + /// Single-precision floating-point aligned 1x1 matrix. + /// @see gtx_type_aligned + //typedef detail::tmat1x1 mat1; + + /// Single-precision floating-point aligned 2x2 matrix. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(mat2x2, aligned_mat2x2, 16); + + /// Single-precision floating-point aligned 3x3 matrix. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(mat3x3, aligned_mat3x3, 16); + + /// Single-precision floating-point aligned 4x4 matrix. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(mat4x4, aligned_mat4x4, 16); + + + /// Single-precision floating-point aligned 1x1 matrix. + /// @see gtx_type_aligned + //typedef detail::tmat1x1 fmat1; + + /// Single-precision floating-point aligned 2x2 matrix. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(fmat2x2, aligned_fmat2, 16); + + /// Single-precision floating-point aligned 3x3 matrix. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(fmat3x3, aligned_fmat3, 16); + + /// Single-precision floating-point aligned 4x4 matrix. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(fmat4x4, aligned_fmat4, 16); + + + /// Single-precision floating-point aligned 1x1 matrix. + /// @see gtx_type_aligned + //typedef f32 fmat1x1; + + /// Single-precision floating-point aligned 2x2 matrix. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(fmat2x2, aligned_fmat2x2, 16); + + /// Single-precision floating-point aligned 2x3 matrix. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(fmat2x3, aligned_fmat2x3, 16); + + /// Single-precision floating-point aligned 2x4 matrix. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(fmat2x4, aligned_fmat2x4, 16); + + /// Single-precision floating-point aligned 3x2 matrix. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(fmat3x2, aligned_fmat3x2, 16); + + /// Single-precision floating-point aligned 3x3 matrix. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(fmat3x3, aligned_fmat3x3, 16); + + /// Single-precision floating-point aligned 3x4 matrix. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(fmat3x4, aligned_fmat3x4, 16); + + /// Single-precision floating-point aligned 4x2 matrix. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(fmat4x2, aligned_fmat4x2, 16); + + /// Single-precision floating-point aligned 4x3 matrix. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(fmat4x3, aligned_fmat4x3, 16); + + /// Single-precision floating-point aligned 4x4 matrix. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(fmat4x4, aligned_fmat4x4, 16); + + + /// Single-precision floating-point aligned 1x1 matrix. + /// @see gtx_type_aligned + //typedef detail::tmat1x1 f32mat1; + + /// Single-precision floating-point aligned 2x2 matrix. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(f32mat2x2, aligned_f32mat2, 16); + + /// Single-precision floating-point aligned 3x3 matrix. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(f32mat3x3, aligned_f32mat3, 16); + + /// Single-precision floating-point aligned 4x4 matrix. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(f32mat4x4, aligned_f32mat4, 16); + + + /// Single-precision floating-point aligned 1x1 matrix. + /// @see gtx_type_aligned + //typedef f32 f32mat1x1; + + /// Single-precision floating-point aligned 2x2 matrix. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(f32mat2x2, aligned_f32mat2x2, 16); + + /// Single-precision floating-point aligned 2x3 matrix. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(f32mat2x3, aligned_f32mat2x3, 16); + + /// Single-precision floating-point aligned 2x4 matrix. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(f32mat2x4, aligned_f32mat2x4, 16); + + /// Single-precision floating-point aligned 3x2 matrix. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(f32mat3x2, aligned_f32mat3x2, 16); + + /// Single-precision floating-point aligned 3x3 matrix. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(f32mat3x3, aligned_f32mat3x3, 16); + + /// Single-precision floating-point aligned 3x4 matrix. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(f32mat3x4, aligned_f32mat3x4, 16); + + /// Single-precision floating-point aligned 4x2 matrix. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(f32mat4x2, aligned_f32mat4x2, 16); + + /// Single-precision floating-point aligned 4x3 matrix. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(f32mat4x3, aligned_f32mat4x3, 16); + + /// Single-precision floating-point aligned 4x4 matrix. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(f32mat4x4, aligned_f32mat4x4, 16); + + + /// Double-precision floating-point aligned 1x1 matrix. + /// @see gtx_type_aligned + //typedef detail::tmat1x1 f64mat1; + + /// Double-precision floating-point aligned 2x2 matrix. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(f64mat2x2, aligned_f64mat2, 32); + + /// Double-precision floating-point aligned 3x3 matrix. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(f64mat3x3, aligned_f64mat3, 32); + + /// Double-precision floating-point aligned 4x4 matrix. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(f64mat4x4, aligned_f64mat4, 32); + + + /// Double-precision floating-point aligned 1x1 matrix. + /// @see gtx_type_aligned + //typedef f64 f64mat1x1; + + /// Double-precision floating-point aligned 2x2 matrix. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(f64mat2x2, aligned_f64mat2x2, 32); + + /// Double-precision floating-point aligned 2x3 matrix. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(f64mat2x3, aligned_f64mat2x3, 32); + + /// Double-precision floating-point aligned 2x4 matrix. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(f64mat2x4, aligned_f64mat2x4, 32); + + /// Double-precision floating-point aligned 3x2 matrix. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(f64mat3x2, aligned_f64mat3x2, 32); + + /// Double-precision floating-point aligned 3x3 matrix. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(f64mat3x3, aligned_f64mat3x3, 32); + + /// Double-precision floating-point aligned 3x4 matrix. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(f64mat3x4, aligned_f64mat3x4, 32); + + /// Double-precision floating-point aligned 4x2 matrix. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(f64mat4x2, aligned_f64mat4x2, 32); + + /// Double-precision floating-point aligned 4x3 matrix. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(f64mat4x3, aligned_f64mat4x3, 32); + + /// Double-precision floating-point aligned 4x4 matrix. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(f64mat4x4, aligned_f64mat4x4, 32); + + + ////////////////////////// + // Quaternion types + + /// Single-precision floating-point aligned quaternion. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(quat, aligned_quat, 16); + + /// Single-precision floating-point aligned quaternion. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(fquat, aligned_fquat, 16); + + /// Double-precision floating-point aligned quaternion. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(dquat, aligned_dquat, 32); + + /// Single-precision floating-point aligned quaternion. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(f32quat, aligned_f32quat, 16); + + /// Double-precision floating-point aligned quaternion. + /// @see gtx_type_aligned + GLM_ALIGNED_TYPEDEF(f64quat, aligned_f64quat, 32); + + /// @} +}//namespace glm + +#include "type_aligned.inl" diff --git a/glm/detail/hint.hpp b/glm/gtx/type_aligned.inl similarity index 85% rename from glm/detail/hint.hpp rename to glm/gtx/type_aligned.inl index 2b96c0f6..607e9c7e 100644 --- a/glm/detail/hint.hpp +++ b/glm/gtx/type_aligned.inl @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -20,18 +24,13 @@ /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN /// THE SOFTWARE. /// -/// @ref core -/// @file glm/core/hint.hpp -/// @date 2008-08-14 / 2011-06-15 +/// @ref gtc_type_aligned +/// @file glm/gtc/type_aligned.inl +/// @date 2014-11-23 / 2014-11-23 /// @author Christophe Riccio /////////////////////////////////////////////////////////////////////////////////// -#pragma once - namespace glm { - // Use dont_care, nicest and fastest to optimize implementations. - class dont_care {}; - class nicest {}; - class fastest {}; -}//namespace glm + +} diff --git a/glm/gtx/vector_angle.hpp b/glm/gtx/vector_angle.hpp index 98a841f0..faf3afd9 100644 --- a/glm/gtx/vector_angle.hpp +++ b/glm/gtx/vector_angle.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE diff --git a/glm/gtx/vector_angle.inl b/glm/gtx/vector_angle.inl index 4b5e8484..366c7ab6 100644 --- a/glm/gtx/vector_angle.inl +++ b/glm/gtx/vector_angle.inl @@ -1,11 +1,34 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2005-12-30 -// Updated : 2008-09-29 -// Licence : This source is under MIT License -// File : glm/gtx/vector_angle.inl -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @ref gtx_vector_angle +/// @file glm/gtx/vector_angle.inl +/// @date 2005-12-30 / 2011-06-07 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// namespace glm { diff --git a/glm/gtx/vector_query.hpp b/glm/gtx/vector_query.hpp index 3d1dbfd0..90bc8d00 100644 --- a/glm/gtx/vector_query.hpp +++ b/glm/gtx/vector_query.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE diff --git a/glm/gtx/vector_query.inl b/glm/gtx/vector_query.inl index bd611ab5..2e7596e5 100644 --- a/glm/gtx/vector_query.inl +++ b/glm/gtx/vector_query.inl @@ -1,14 +1,34 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2007-03-05 -// Updated : 2010-02-16 -// Licence : This source is under MIT License -// File : glm/gtx/vector_query.inl -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Dependency: -// - GLM core -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @ref gtx_vector_query +/// @file glm/gtx/vector_query.inl +/// @date 2008-03-10 / 2011-06-07 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// #include diff --git a/glm/gtx/wrap.hpp b/glm/gtx/wrap.hpp index 2a11a9b7..0ee1a923 100644 --- a/glm/gtx/wrap.hpp +++ b/glm/gtx/wrap.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE diff --git a/glm/gtx/wrap.inl b/glm/gtx/wrap.inl index f6f9eaea..afa4052d 100644 --- a/glm/gtx/wrap.inl +++ b/glm/gtx/wrap.inl @@ -1,14 +1,34 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2009-11-25 -// Updated : 2010-02-13 -// Licence : This source is under MIT License -// File : glm/gtx/wrap.inl -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Dependency: -// - GLM core -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @ref gtx_wrap +/// @file glm/gtx/wrap.inl +/// @date 2009-11-25 / 2011-06-07 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// namespace glm { diff --git a/glm/integer.hpp b/glm/integer.hpp index 5f7c00a4..dd19ac90 100644 --- a/glm/integer.hpp +++ b/glm/integer.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE diff --git a/glm/mat2x2.hpp b/glm/mat2x2.hpp index 3e571d5c..933504c5 100644 --- a/glm/mat2x2.hpp +++ b/glm/mat2x2.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE diff --git a/glm/mat2x3.hpp b/glm/mat2x3.hpp index 6c15b84e..07966d13 100644 --- a/glm/mat2x3.hpp +++ b/glm/mat2x3.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE diff --git a/glm/mat2x4.hpp b/glm/mat2x4.hpp index 37058111..5e93ac19 100644 --- a/glm/mat2x4.hpp +++ b/glm/mat2x4.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE diff --git a/glm/mat3x2.hpp b/glm/mat3x2.hpp index baa60060..f4f99832 100644 --- a/glm/mat3x2.hpp +++ b/glm/mat3x2.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE diff --git a/glm/mat3x3.hpp b/glm/mat3x3.hpp index 734e22e8..b544f40c 100644 --- a/glm/mat3x3.hpp +++ b/glm/mat3x3.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE diff --git a/glm/mat3x4.hpp b/glm/mat3x4.hpp index 6d0d5eca..d4f4faf6 100644 --- a/glm/mat3x4.hpp +++ b/glm/mat3x4.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE diff --git a/glm/mat4x2.hpp b/glm/mat4x2.hpp index 9a404057..eb8920be 100644 --- a/glm/mat4x2.hpp +++ b/glm/mat4x2.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE diff --git a/glm/mat4x3.hpp b/glm/mat4x3.hpp index 2f768152..4b6d8131 100644 --- a/glm/mat4x3.hpp +++ b/glm/mat4x3.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE diff --git a/glm/mat4x4.hpp b/glm/mat4x4.hpp index 67239748..25ff56cd 100644 --- a/glm/mat4x4.hpp +++ b/glm/mat4x4.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE diff --git a/glm/matrix.hpp b/glm/matrix.hpp index 3b4bbb3f..ea224ec8 100644 --- a/glm/matrix.hpp +++ b/glm/matrix.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE diff --git a/glm/packing.hpp b/glm/packing.hpp index d62de952..74fbb5e0 100644 --- a/glm/packing.hpp +++ b/glm/packing.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE diff --git a/glm/trigonometric.hpp b/glm/trigonometric.hpp index 51edc935..67b978a8 100644 --- a/glm/trigonometric.hpp +++ b/glm/trigonometric.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE diff --git a/glm/vec2.hpp b/glm/vec2.hpp index 6d7e17c2..efc448c3 100644 --- a/glm/vec2.hpp +++ b/glm/vec2.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE diff --git a/glm/vec3.hpp b/glm/vec3.hpp index 9e3a8fc0..30cd097b 100644 --- a/glm/vec3.hpp +++ b/glm/vec3.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE diff --git a/glm/vec4.hpp b/glm/vec4.hpp index 6b58a2ee..b099fd19 100644 --- a/glm/vec4.hpp +++ b/glm/vec4.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE diff --git a/glm/vector_relational.hpp b/glm/vector_relational.hpp index a0f3fd5f..8f2c8c65 100644 --- a/glm/vector_relational.hpp +++ b/glm/vector_relational.hpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE diff --git a/readme.txt b/readme.txt index fac64573..b3cdcd76 100644 --- a/readme.txt +++ b/readme.txt @@ -1,13 +1,39 @@ ================================================================================ OpenGL Mathematics (GLM) -------------------------------------------------------------------------------- -glm.g-truc.net -glm@g-truc.net +GLM is licensed under The Happy Bunny License and MIT License + +================================================================================ +The Happy Bunny License (Modified MIT License) +-------------------------------------------------------------------------------- +Copyright (c) 2005 - 2014 G-Truc Creation + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +Restrictions: + By making use of the Software for military purposes, you choose to make a + Bunny unhappy. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. ================================================================================ The MIT License -------------------------------------------------------------------------------- -Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +Copyright (c) 2005 - 2014 G-Truc Creation Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -37,10 +63,9 @@ More informations in GLM manual: http://glm.g-truc.net/glm.pdf ================================================================================ -GLM 0.9.6.0: 2014-11-XX +GLM 0.9.6.0: 2014-11-30 -------------------------------------------------------------------------------- Features: -- Added transparent use of SIMD instructions for vec4 and mat4 types - Exposed template vector and matrix types in 'glm' namespace #239, #244 - Added GTX_scalar_multiplication for C++ 11 compiler only #242 - Added GTX_range for C++ 11 compiler only #240 @@ -55,9 +80,10 @@ Features: - Added GLM_FORCE_NO_CTOR_INIT - Added 'uninitialize' to explicitly not initialize a GLM type - Added GTC_bitfield extension, promoted GTX_bit -- Added GTC_integer extension, promoted GTX_bit +- Added GTC_integer extension, promoted GTX_bit and GTX_integer - Added GTC_round extension, promoted GTX_bit - Added GLM_FORCE_EXPLICIT_CTOR to require explicit type conversions #269 +- Added GTX_type_aligned for aligned vector, matrix and quaternion types Improvements: - Rely on C++11 to implement isinf and isnan @@ -67,13 +93,17 @@ Improvements: - Undetected C++ compiler automatically compile with GLM_FORCE_CXX98 and GLM_FORCE_PURE - Added not function (from GLSL specification) on VC12 -- Optimized bitfield operations - Optimized bitfieldReverse and bitCount functions +- Optimized findLSB and findMSB functions. - Optimized matrix-vector multiple performance with Cuda #257, #258 - Reduced integer type redifinitions #233 - Rewrited of GTX_fast_trigonometry #264 #265 - Made types trivially copyable #263 - Removed in GLM tests +- Used std features within GLM without redeclaring +- Optimized cot function #272 +- Optimized sign function #272 +- Added explicit cast from quat to mat3 and mat4 #275 Fixes: - Fixed std::nextafter not supported with C++11 on Android #217 @@ -90,10 +120,10 @@ Deprecation: - Removed degrees for function parameters - Removed GLM_FORCE_RADIANS, active by default - Removed VC 2005 / 8 and 2008 / 9 support -- Removed GCC 3.4 to 4.5 support +- Removed GCC 3.4 to 4.3 support - Removed LLVM GCC support -- Removed LLVM 2.6 to 2.9 support -- Removed CUDA 3.0 to 4.0 support +- Removed LLVM 2.6 to 3.1 support +- Removed CUDA 3.0 to 3.2 support ================================================================================ GLM 0.9.5.4: 2014-06-21 diff --git a/test/core/CMakeLists.txt b/test/core/CMakeLists.txt index e986841b..c7314b1d 100644 --- a/test/core/CMakeLists.txt +++ b/test/core/CMakeLists.txt @@ -22,6 +22,7 @@ glmCreateTestGTC(core_func_geometric) glmCreateTestGTC(core_func_integer) glmCreateTestGTC(core_func_integer_bit_count) glmCreateTestGTC(core_func_integer_find_lsb) +glmCreateTestGTC(core_func_integer_find_msb) glmCreateTestGTC(core_func_matrix) glmCreateTestGTC(core_func_noise) glmCreateTestGTC(core_func_packing) diff --git a/test/core/core_func_common.cpp b/test/core/core_func_common.cpp index 83fba5f6..b5429373 100644 --- a/test/core/core_func_common.cpp +++ b/test/core/core_func_common.cpp @@ -1,11 +1,33 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2011-01-15 -// Updated : 2011-09-13 -// Licence : This source is under MIT licence -// File : test/core/func_common.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/core/func_common.cpp +/// @date 2011-01-15 / 2011-09-13 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// #define GLM_FORCE_EXPLICIT_CTOR #include @@ -140,6 +162,40 @@ namespace modf_ } }//namespace modf +namespace mod_ +{ + int test() + { + int Error(0); + + { + float A(3.0); + float B(2.0f); + float C = glm::mod(A, B); + + Error += glm::abs(C - 1.0f) < 0.00001f ? 0 : 1; + } + + { + glm::vec4 A(3.0); + float B(2.0f); + glm::vec4 C = glm::mod(A, B); + + Error += glm::all(glm::epsilonEqual(C, glm::vec4(1.0f), 0.00001f)) ? 0 : 1; + } + + { + glm::vec4 A(3.0); + glm::vec4 B(2.0f); + glm::vec4 C = glm::mod(A, B); + + Error += glm::all(glm::epsilonEqual(C, glm::vec4(1.0f), 0.00001f)) ? 0 : 1; + } + + return Error; + } +}//namespace mod_ + namespace floatBitsToInt { int test() @@ -844,6 +900,8 @@ namespace sign { type const Data[] = { + { std::numeric_limits::max(), 1}, + { std::numeric_limits::min(), -1}, { 0, 0}, { 1, 1}, { 2, 1}, @@ -855,6 +913,12 @@ namespace sign int Error = 0; + for(std::size_t i = 0; i < sizeof(Data) / sizeof(type); ++i) + { + glm::int32 Result = glm::sign(Data[i].Value); + Error += Data[i].Return == Result ? 0 : 1; + } + for(std::size_t i = 0; i < sizeof(Data) / sizeof(type); ++i) { glm::int32 Result = sign_cmp(Data[i].Value); @@ -879,10 +943,28 @@ namespace sign Error += Data[i].Return == Result ? 0 : 1; } - for(std::size_t i = 0; i < sizeof(Data) / sizeof(type); ++i) + return Error; + } + + int test_i32vec4() + { + type const Data[] = { - glm::int32 Result = sign_sub(Data[i].Value); - Error += Data[i].Return == Result ? 0 : 1; + {glm::i32vec4( 1), glm::i32vec4( 1)}, + {glm::i32vec4( 0), glm::i32vec4( 0)}, + {glm::i32vec4( 2), glm::i32vec4( 1)}, + {glm::i32vec4( 3), glm::i32vec4( 1)}, + {glm::i32vec4(-1), glm::i32vec4(-1)}, + {glm::i32vec4(-2), glm::i32vec4(-1)}, + {glm::i32vec4(-3), glm::i32vec4(-1)} + }; + + int Error = 0; + + for(std::size_t i = 0; i < sizeof(Data) / sizeof(type); ++i) + { + glm::i32vec4 Result = glm::sign(Data[i].Value); + Error += glm::all(glm::equal(Data[i].Return, Result)) ? 0 : 1; } return Error; @@ -893,6 +975,7 @@ namespace sign int Error = 0; Error += test_int32(); + Error += test_i32vec4(); return Error; } @@ -901,7 +984,7 @@ namespace sign { int Error = 0; - std::size_t const Count = 10000000; + std::size_t const Count = 100000000; std::vector Input, Output; Input.resize(Count); Output.resize(Count); @@ -935,11 +1018,17 @@ namespace sign std::clock_t Timestamp5 = std::clock(); + for(std::size_t i = 0; i < Count; ++i) + Output[i] = glm::sign(Input[i]); + + std::clock_t Timestamp6 = std::clock(); + std::printf("sign_cmp(rand) Time %d clocks\n", static_cast(Timestamp1 - Timestamp0)); std::printf("sign_if(rand) Time %d clocks\n", static_cast(Timestamp2 - Timestamp1)); std::printf("sign_alu1(rand) Time %d clocks\n", static_cast(Timestamp3 - Timestamp2)); std::printf("sign_alu2(rand) Time %d clocks\n", static_cast(Timestamp4 - Timestamp3)); std::printf("sign_sub(rand) Time %d clocks\n", static_cast(Timestamp5 - Timestamp4)); + std::printf("glm::sign(rand) Time %d clocks\n", static_cast(Timestamp6 - Timestamp5)); return Error; } @@ -1054,6 +1143,7 @@ int main() Error += sign::test(); Error += floor_::test(); + Error += mod_::test(); Error += modf_::test(); Error += floatBitsToInt::test(); Error += floatBitsToUint::test(); @@ -1066,7 +1156,7 @@ int main() Error += isnan_::test(); Error += isinf_::test(); -# ifdef GLM_TEST_ENABLE_PERF +# ifdef NDEBUG Error += sign::perf(); # endif diff --git a/test/core/core_func_exponential.cpp b/test/core/core_func_exponential.cpp index a61fba60..885c1513 100644 --- a/test/core/core_func_exponential.cpp +++ b/test/core/core_func_exponential.cpp @@ -1,11 +1,33 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2011-01-15 -// Updated : 2011-09-13 -// Licence : This source is under MIT licence -// File : test/core/func_exponential.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/core/func_exponential.cpp +/// @date 2011-01-15 / 2011-09-13 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// #include #include diff --git a/test/core/core_func_geometric.cpp b/test/core/core_func_geometric.cpp index 62038895..3e093dea 100644 --- a/test/core/core_func_geometric.cpp +++ b/test/core/core_func_geometric.cpp @@ -1,11 +1,33 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2011-01-15 -// Updated : 2014-11-16 -// Licence : This source is under MIT licence -// File : test/core/func_geometric.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/core/func_geometric.cpp +/// @date 2011-01-15 / 2011-09-13 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// #include #include diff --git a/test/core/core_func_integer.cpp b/test/core/core_func_integer.cpp index 66825b18..6b52e1af 100644 --- a/test/core/core_func_integer.cpp +++ b/test/core/core_func_integer.cpp @@ -1,13 +1,36 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2011-05-03 -// Updated : 2011-05-03 -// Licence : This source is under MIT licence -// File : test/core/func_integer.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/core/func_integer.cpp +/// @date 2011-01-15 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// #include +#include #include #include #include @@ -548,13 +571,41 @@ namespace bitfieldReverse namespace findMSB { - template + template struct type { genType Value; - genType Return; + retType Return; }; +# if GLM_HAS_BITSCAN_WINDOWS + template + GLM_FUNC_QUALIFIER int findMSB_intrinsic(genIUType Value) + { + GLM_STATIC_ASSERT(std::numeric_limits::is_integer, "'findMSB' only accept integer values"); + + if(Value == 0) + return -1; + + unsigned long Result(0); + _BitScanReverse(&Result, Value); + return int(Result); + } +# endif//GLM_HAS_BITSCAN_WINDOWS + +# if GLM_ARCH & GLM_ARCH_AVX && GLM_COMPILER & GLM_COMPILER_VC + template + GLM_FUNC_QUALIFIER int findMSB_avx(genIUType Value) + { + GLM_STATIC_ASSERT(std::numeric_limits::is_integer, "'findMSB' only accept integer values"); + + if(Value == 0) + return -1; + + return int(_tzcnt_u32(Value)); + } +# endif//GLM_ARCH & GLM_ARCH_AVX && GLM_PLATFORM & GLM_PLATFORM_WINDOWS + template GLM_FUNC_QUALIFIER int findMSB_095(genIUType Value) { @@ -583,27 +634,17 @@ namespace findMSB GLM_FUNC_QUALIFIER int findMSB_nlz1(genIUType x) { GLM_STATIC_ASSERT(std::numeric_limits::is_integer, "'findMSB' only accept integer values"); -/* - int Result = 0; - for(std::size_t i = 0, n = sizeof(genIUType) * 8; i < n; ++i) - Result = Value & static_cast(1 << i) ? static_cast(i) : Result; - return Result; -*/ -/* - genIUType Bit = genIUType(-1); - for(genIUType tmp = Value; tmp > 0; tmp >>= 1, ++Bit){} - return Bit; -*/ - int n; - if (x == 0) return(32); - n = 0; + if (x == 0) + return -1; + + int n = 0; if (x <= 0x0000FFFF) {n = n +16; x = x <<16;} if (x <= 0x00FFFFFF) {n = n + 8; x = x << 8;} if (x <= 0x0FFFFFFF) {n = n + 4; x = x << 4;} if (x <= 0x3FFFFFFF) {n = n + 2; x = x << 2;} if (x <= 0x7FFFFFFF) {n = n + 1;} - return n; + return 31 - n; } int findMSB_nlz2(unsigned int x) @@ -617,14 +658,24 @@ namespace findMSB y = x >> 4; if (y != 0) {n = n - 4; x = y;} y = x >> 2; if (y != 0) {n = n - 2; x = y;} y = x >> 1; if (y != 0) return n - 2; - return n - x; + return 32 - (n - x); } - int perf_950() + int findMSB_pop(unsigned int x) { - type const Data[] = + x = x | (x >> 1); + x = x | (x >> 2); + x = x | (x >> 4); + x = x | (x >> 8); + x = x | (x >>16); + return 31 - glm::bitCount(~x); + } + + int perf_int() + { + type const Data[] = { - //{0x00000000, -1}, + {0x00000000, -1}, {0x00000001, 0}, {0x00000002, 1}, {0x00000003, 1}, @@ -662,26 +713,151 @@ namespace findMSB }; int Error(0); + std::size_t const Count(10000000); + + std::clock_t Timestamps0 = std::clock(); + + for(std::size_t k = 0; k < Count; ++k) + for(std::size_t i = 0; i < sizeof(Data) / sizeof(type); ++i) + { + int Result = glm::findMSB(Data[i].Value); + Error += Data[i].Return == Result ? 0 : 1; + } std::clock_t Timestamps1 = std::clock(); - for(std::size_t k = 0; k < 1000000; ++k) - for(std::size_t i = 0; i < sizeof(Data) / sizeof(type); ++i) + for(std::size_t k = 0; k < Count; ++k) + for(std::size_t i = 0; i < sizeof(Data) / sizeof(type); ++i) { - int Result = findMSB_095(Data[i].Value); + int Result = findMSB_nlz1(Data[i].Value); Error += Data[i].Return == Result ? 0 : 1; } std::clock_t Timestamps2 = std::clock(); - std::printf("findMSB - 0.9.5: %d clocks\n", static_cast(Timestamps2 - Timestamps1)); + for(std::size_t k = 0; k < Count; ++k) + for(std::size_t i = 0; i < sizeof(Data) / sizeof(type); ++i) + { + int Result = findMSB_nlz2(Data[i].Value); + Error += Data[i].Return == Result ? 0 : 1; + } + + std::clock_t Timestamps3 = std::clock(); + + for(std::size_t k = 0; k < Count; ++k) + for(std::size_t i = 0; i < sizeof(Data) / sizeof(type); ++i) + { + int Result = findMSB_095(Data[i].Value); + Error += Data[i].Return == Result ? 0 : 1; + } + + std::clock_t Timestamps4 = std::clock(); + +# if GLM_HAS_BITSCAN_WINDOWS + for(std::size_t k = 0; k < Count; ++k) + for(std::size_t i = 0; i < sizeof(Data) / sizeof(type); ++i) + { + int Result = findMSB_intrinsic(Data[i].Value); + Error += Data[i].Return == Result ? 0 : 1; + } +# endif//GLM_HAS_BITSCAN_WINDOWS + + std::clock_t Timestamps5 = std::clock(); + + for(std::size_t k = 0; k < Count; ++k) + for(std::size_t i = 0; i < sizeof(Data) / sizeof(type); ++i) + { + int Result = findMSB_pop(Data[i].Value); + Error += Data[i].Return == Result ? 0 : 1; + } + + std::clock_t Timestamps6 = std::clock(); + +# if GLM_ARCH & GLM_ARCH_AVX && GLM_COMPILER & GLM_COMPILER_VC + for(std::size_t k = 0; k < Count; ++k) + for(std::size_t i = 0; i < sizeof(Data) / sizeof(type); ++i) + { + int Result = findMSB_avx(Data[i].Value); + Error += Data[i].Return == Result ? 0 : 1; + } +# endif + + std::clock_t Timestamps7 = std::clock(); + + std::printf("glm::findMSB: %d clocks\n", static_cast(Timestamps1 - Timestamps0)); + std::printf("findMSB - nlz1: %d clocks\n", static_cast(Timestamps2 - Timestamps1)); + std::printf("findMSB - nlz2: %d clocks\n", static_cast(Timestamps3 - Timestamps2)); + std::printf("findMSB - 0.9.5: %d clocks\n", static_cast(Timestamps4 - Timestamps3)); + +# if GLM_HAS_BITSCAN_WINDOWS + std::printf("findMSB - intrinsics: %d clocks\n", static_cast(Timestamps5 - Timestamps4)); +# endif//GLM_HAS_BITSCAN_WINDOWS + std::printf("findMSB - pop: %d clocks\n", static_cast(Timestamps6 - Timestamps5)); + +# if GLM_ARCH & GLM_ARCH_AVX && GLM_COMPILER & GLM_COMPILER_VC + std::printf("findMSB - avx tzcnt: %d clocks\n", static_cast(Timestamps7 - Timestamps6)); +# endif//GLM_ARCH & GLM_ARCH_AVX && GLM_PLATFORM & GLM_PLATFORM_WINDOWS return Error; } - int perf_ops() + int test_ivec4() { - type const Data[] = + type const Data[] = + { + {glm::ivec4(0x00000000), glm::ivec4(-1)}, + {glm::ivec4(0x00000001), glm::ivec4( 0)}, + {glm::ivec4(0x00000002), glm::ivec4( 1)}, + {glm::ivec4(0x00000003), glm::ivec4( 1)}, + {glm::ivec4(0x00000004), glm::ivec4( 2)}, + {glm::ivec4(0x00000005), glm::ivec4( 2)}, + {glm::ivec4(0x00000007), glm::ivec4( 2)}, + {glm::ivec4(0x00000008), glm::ivec4( 3)}, + {glm::ivec4(0x00000010), glm::ivec4( 4)}, + {glm::ivec4(0x00000020), glm::ivec4( 5)}, + {glm::ivec4(0x00000040), glm::ivec4( 6)}, + {glm::ivec4(0x00000080), glm::ivec4( 7)}, + {glm::ivec4(0x00000100), glm::ivec4( 8)}, + {glm::ivec4(0x00000200), glm::ivec4( 9)}, + {glm::ivec4(0x00000400), glm::ivec4(10)}, + {glm::ivec4(0x00000800), glm::ivec4(11)}, + {glm::ivec4(0x00001000), glm::ivec4(12)}, + {glm::ivec4(0x00002000), glm::ivec4(13)}, + {glm::ivec4(0x00004000), glm::ivec4(14)}, + {glm::ivec4(0x00008000), glm::ivec4(15)}, + {glm::ivec4(0x00010000), glm::ivec4(16)}, + {glm::ivec4(0x00020000), glm::ivec4(17)}, + {glm::ivec4(0x00040000), glm::ivec4(18)}, + {glm::ivec4(0x00080000), glm::ivec4(19)}, + {glm::ivec4(0x00100000), glm::ivec4(20)}, + {glm::ivec4(0x00200000), glm::ivec4(21)}, + {glm::ivec4(0x00400000), glm::ivec4(22)}, + {glm::ivec4(0x00800000), glm::ivec4(23)}, + {glm::ivec4(0x01000000), glm::ivec4(24)}, + {glm::ivec4(0x02000000), glm::ivec4(25)}, + {glm::ivec4(0x04000000), glm::ivec4(26)}, + {glm::ivec4(0x08000000), glm::ivec4(27)}, + {glm::ivec4(0x10000000), glm::ivec4(28)}, + {glm::ivec4(0x20000000), glm::ivec4(29)}, + {glm::ivec4(0x40000000), glm::ivec4(30)} + }; + + int Error(0); + + for(std::size_t i = 0; i < sizeof(Data) / sizeof(type); ++i) + { + glm::ivec4 Result0 = glm::findMSB(Data[i].Value); + Error += glm::all(glm::equal(Data[i].Return, Result0)) ? 0 : 1; + } + + return Error; + } + + int test_int() + { + typedef type entry; + + entry const Data[] = { {0x00000000, -1}, {0x00000001, 0}, @@ -722,123 +898,42 @@ namespace findMSB int Error(0); - std::clock_t Timestamps1 = std::clock(); - - for(std::size_t k = 0; k < 1000000; ++k) - for(std::size_t i = 0; i < sizeof(Data) / sizeof(type); ++i) + for(std::size_t i = 0; i < sizeof(Data) / sizeof(entry); ++i) { - int Result = findMSB_nlz1(Data[i].Value); - Error += Data[i].Return == Result ? 0 : 1; + int Result0 = glm::findMSB(Data[i].Value); + Error += Data[i].Return == Result0 ? 0 : 1; } - std::clock_t Timestamps2 = std::clock(); - - std::printf("findMSB - nlz1: %d clocks\n", static_cast(Timestamps2 - Timestamps1)); - - return Error; - } - - - int test_findMSB() - { - type const Data[] = + for(std::size_t i = 0; i < sizeof(Data) / sizeof(entry); ++i) { - //{0x00000000, -1}, - {0x00000001, 0}, - {0x00000002, 1}, - {0x00000003, 1}, - {0x00000004, 2}, - {0x00000005, 2}, - {0x00000007, 2}, - {0x00000008, 3}, - {0x00000010, 4}, - {0x00000020, 5}, - {0x00000040, 6}, - {0x00000080, 7}, - {0x00000100, 8}, - {0x00000200, 9}, - {0x00000400, 10}, - {0x00000800, 11}, - {0x00001000, 12}, - {0x00002000, 13}, - {0x00004000, 14}, - {0x00008000, 15}, - {0x00010000, 16}, - {0x00020000, 17}, - {0x00040000, 18}, - {0x00080000, 19}, - {0x00100000, 20}, - {0x00200000, 21}, - {0x00400000, 22}, - {0x00800000, 23}, - {0x01000000, 24}, - {0x02000000, 25}, - {0x04000000, 26}, - {0x08000000, 27}, - {0x10000000, 28}, - {0x20000000, 29}, - {0x40000000, 30} - }; - - int Error(0); - - for(std::size_t i = 0; i < sizeof(Data) / sizeof(type); ++i) + int Result0 = findMSB_nlz1(Data[i].Value); + Error += Data[i].Return == Result0 ? 0 : 1; + } +/* + for(std::size_t i = 0; i < sizeof(Data) / sizeof(entry); ++i) { - int Result = glm::findMSB(Data[i].Value); - Error += Data[i].Return == Result ? 0 : 1; - assert(!Error); + int Result0 = findMSB_nlz2(Data[i].Value); + Error += Data[i].Return == Result0 ? 0 : 1; + } +*/ + for(std::size_t i = 0; i < sizeof(Data) / sizeof(entry); ++i) + { + int Result0 = findMSB_095(Data[i].Value); + Error += Data[i].Return == Result0 ? 0 : 1; } - return Error; - } +# if GLM_HAS_BITSCAN_WINDOWS + for(std::size_t i = 0; i < sizeof(Data) / sizeof(entry); ++i) + { + int Result0 = findMSB_intrinsic(Data[i].Value); + Error += Data[i].Return == Result0 ? 0 : 1; + } +# endif//GLM_HAS_BITSCAN_WINDOWS - int test_nlz1() - { - type const Data[] = + for(std::size_t i = 0; i < sizeof(Data) / sizeof(entry); ++i) { - //{0x00000000, -1}, - {0x00000001, 0}, - {0x00000002, 1}, - {0x00000003, 1}, - {0x00000004, 2}, - {0x00000005, 2}, - {0x00000007, 2}, - {0x00000008, 3}, - {0x00000010, 4}, - {0x00000020, 5}, - {0x00000040, 6}, - {0x00000080, 7}, - {0x00000100, 8}, - {0x00000200, 9}, - {0x00000400, 10}, - {0x00000800, 11}, - {0x00001000, 12}, - {0x00002000, 13}, - {0x00004000, 14}, - {0x00008000, 15}, - {0x00010000, 16}, - {0x00020000, 17}, - {0x00040000, 18}, - {0x00080000, 19}, - {0x00100000, 20}, - {0x00200000, 21}, - {0x00400000, 22}, - {0x00800000, 23}, - {0x01000000, 24}, - {0x02000000, 25}, - {0x04000000, 26}, - {0x08000000, 27}, - {0x10000000, 28}, - {0x20000000, 29}, - {0x40000000, 30} - }; - - int Error(0); - - for(std::size_t i = 0; i < sizeof(Data) / sizeof(type); ++i) - { - int Result = findMSB_nlz2(Data[i].Value); - Error += Data[i].Return == Result ? 0 : 1; + int Result0 = findMSB_pop(Data[i].Value); + Error += Data[i].Return == Result0 ? 0 : 1; } return Error; @@ -848,8 +943,8 @@ namespace findMSB { int Error(0); - Error += test_findMSB(); - //Error += test_nlz1(); + Error += test_ivec4(); + Error += test_int(); return Error; } @@ -858,8 +953,7 @@ namespace findMSB { int Error(0); - Error += perf_950(); - //Error += perf_ops(); + Error += perf_int(); return Error; } @@ -867,31 +961,195 @@ namespace findMSB namespace findLSB { - template + template struct type { genType Value; - genType Return; + retType Return; }; - type const DataI32[] = + typedef type entry; + + entry const DataI32[] = { {0x00000001, 0}, {0x00000003, 0}, - {0x00000002, 1} + {0x00000002, 1}, + // {0x80000000, 31}, // Clang generates an error with this + {0x00010000, 16}, + {0x7FFF0000, 16}, + {0x7F000000, 24}, + {0x7F00FF00, 8}, + {0x00000000, -1} }; +# if GLM_HAS_BITSCAN_WINDOWS + template + GLM_FUNC_QUALIFIER int findLSB_intrinsic(genIUType Value) + { + GLM_STATIC_ASSERT(std::numeric_limits::is_integer, "'findLSB' only accept integer values"); + + if(Value == 0) + return -1; + + unsigned long Result(0); + _BitScanForward(&Result, Value); + return int(Result); + } +# endif + + template + GLM_FUNC_QUALIFIER int findLSB_095(genIUType Value) + { + GLM_STATIC_ASSERT(std::numeric_limits::is_integer, "'findLSB' only accept integer values"); + if(Value == 0) + return -1; + + genIUType Bit; + for(Bit = genIUType(0); !(Value & (1 << Bit)); ++Bit){} + return Bit; + } + + template + GLM_FUNC_QUALIFIER int findLSB_ntz2(genIUType x) + { + if(x == 0) + return -1; + + return glm::bitCount(~x & (x - static_cast(1))); + } + + template + GLM_FUNC_QUALIFIER int findLSB_branchfree(genIUType x) + { + bool IsNull(x == 0); + int const Keep(!IsNull); + int const Discard(IsNull); + + return static_cast(glm::bitCount(~x & (x - static_cast(1)))) * Keep + Discard * -1; + } + + int test_int() + { + int Error(0); + + for(std::size_t i = 0; i < sizeof(DataI32) / sizeof(entry); ++i) + { + int Result = glm::findLSB(DataI32[i].Value); + Error += DataI32[i].Return == Result ? 0 : 1; + } + + for(std::size_t i = 0; i < sizeof(DataI32) / sizeof(entry); ++i) + { + int Result = findLSB_095(DataI32[i].Value); + Error += DataI32[i].Return == Result ? 0 : 1; + } + +# if GLM_HAS_BITSCAN_WINDOWS + for(std::size_t i = 0; i < sizeof(DataI32) / sizeof(entry); ++i) + { + int Result = findLSB_intrinsic(DataI32[i].Value); + Error += DataI32[i].Return == Result ? 0 : 1; + } +# endif + + for(std::size_t i = 0; i < sizeof(DataI32) / sizeof(entry); ++i) + { + int Result = findLSB_ntz2(DataI32[i].Value); + Error += DataI32[i].Return == Result ? 0 : 1; + } + + for(std::size_t i = 0; i < sizeof(DataI32) / sizeof(entry); ++i) + { + int Result = findLSB_branchfree(DataI32[i].Value); + Error += DataI32[i].Return == Result ? 0 : 1; + } + + return Error; + } + int test() { int Error(0); - for(std::size_t i = 0; i < sizeof(DataI32) / sizeof(type); ++i) + Error += test_int(); + + return Error; + } + + int perf_int() + { + int Error(0); + std::size_t const Count(10000000); + + std::clock_t Timestamps0 = std::clock(); + + for(std::size_t k = 0; k < Count; ++k) + for(std::size_t i = 0; i < sizeof(DataI32) / sizeof(entry); ++i) { int Result = glm::findLSB(DataI32[i].Value); Error += DataI32[i].Return == Result ? 0 : 1; - assert(!Error); } + std::clock_t Timestamps1 = std::clock(); + + for(std::size_t k = 0; k < Count; ++k) + for(std::size_t i = 0; i < sizeof(DataI32) / sizeof(entry); ++i) + { + int Result = findLSB_095(DataI32[i].Value); + Error += DataI32[i].Return == Result ? 0 : 1; + } + + std::clock_t Timestamps2 = std::clock(); + +# if GLM_HAS_BITSCAN_WINDOWS + for(std::size_t k = 0; k < Count; ++k) + for(std::size_t i = 0; i < sizeof(DataI32) / sizeof(entry); ++i) + { + int Result = findLSB_intrinsic(DataI32[i].Value); + Error += DataI32[i].Return == Result ? 0 : 1; + } +# endif + + std::clock_t Timestamps3 = std::clock(); + + for(std::size_t k = 0; k < Count; ++k) + for(std::size_t i = 0; i < sizeof(DataI32) / sizeof(entry); ++i) + { + int Result = findLSB_ntz2(DataI32[i].Value); + Error += DataI32[i].Return == Result ? 0 : 1; + } + + std::clock_t Timestamps4 = std::clock(); + + for(std::size_t k = 0; k < Count; ++k) + for(std::size_t i = 0; i < sizeof(DataI32) / sizeof(entry); ++i) + { + int Result = findLSB_branchfree(DataI32[i].Value); + Error += DataI32[i].Return == Result ? 0 : 1; + } + + std::clock_t Timestamps5 = std::clock(); + + std::printf("glm::findLSB: %d clocks\n", static_cast(Timestamps1 - Timestamps0)); + std::printf("findLSB - 0.9.5: %d clocks\n", static_cast(Timestamps2 - Timestamps1)); + +# if GLM_HAS_BITSCAN_WINDOWS + std::printf("findLSB - intrinsics: %d clocks\n", static_cast(Timestamps3 - Timestamps2)); +# endif + + std::printf("findLSB - ntz2: %d clocks\n", static_cast(Timestamps4 - Timestamps3)); + std::printf("findLSB - branchfree: %d clocks\n", static_cast(Timestamps5 - Timestamps4)); + + return Error; + } + + int perf() + { + int Error(0); + + Error += perf_int(); + return Error; } }//findLSB @@ -1320,10 +1578,11 @@ int main() Error += ::bitfieldInsert::test(); Error += ::bitfieldExtract::test(); -# ifdef GLM_TEST_ENABLE_PERF +# ifdef NDEBUG Error += ::bitCount::perf(); Error += ::bitfieldReverse::perf(); Error += ::findMSB::perf(); + Error += ::findLSB::perf(); # endif return Error; diff --git a/test/core/core_func_integer_bit_count.cpp b/test/core/core_func_integer_bit_count.cpp index 2e9d748a..9fed38dc 100644 --- a/test/core/core_func_integer_bit_count.cpp +++ b/test/core/core_func_integer_bit_count.cpp @@ -1,3 +1,34 @@ +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/core/func_integer_bit_count.cpp +/// @date 2011-01-15 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// + // This has the programs for computing the number of 1-bits // in a word, or byte, etc. // Max line length is 57, to fit in hacker.book. @@ -176,7 +207,7 @@ void error(int x, int y) int main() { -# ifdef GLM_TEST_ENABLE_PERF +# ifdef NDEBUG int i, n; static int test[] = {0,0, 1,1, 2,1, 3,2, 4,1, 5,2, 6,2, 7,3, @@ -287,5 +318,5 @@ int main() if (errors == 0) printf("Passed all %d cases.\n", sizeof(test)/8); -# endif//GLM_TEST_ENABLE_PERF +# endif//NDEBUG } diff --git a/test/core/core_func_integer_find_lsb.cpp b/test/core/core_func_integer_find_lsb.cpp index 21dd124a..1f21c0ff 100644 --- a/test/core/core_func_integer_find_lsb.cpp +++ b/test/core/core_func_integer_find_lsb.cpp @@ -1,129 +1,42 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2014-10-27 -// Updated : 2014-10-27 -// Licence : This source is under MIT licence -// File : test/core/func_integer_find_lsb.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/core/func_integer_find_lsb.cpp +/// @date 2014-10-27 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// -// This has the programs for computing the number of leading zeros +// This has the programs for computing the number of trailing zeros // in a word. // Max line length is 57, to fit in hacker.book. -// Compile with g++, not gcc. #include -#include // To define "exit", req'd by XLC. +#include //To define "exit", req'd by XLC. #include -#define LE 1 // 1 for little-endian, 0 for big-endian. - -int pop(unsigned x) { - x = x - ((x >> 1) & 0x55555555); - x = (x & 0x33333333) + ((x >> 2) & 0x33333333); - x = (x + (x >> 4)) & 0x0F0F0F0F; - x = x + (x << 8); - x = x + (x << 16); - return x >> 24; -} - -int nlz1(unsigned x) { - int n; - - if (x == 0) return(32); - n = 0; - if (x <= 0x0000FFFF) {n = n +16; x = x <<16;} - if (x <= 0x00FFFFFF) {n = n + 8; x = x << 8;} - if (x <= 0x0FFFFFFF) {n = n + 4; x = x << 4;} - if (x <= 0x3FFFFFFF) {n = n + 2; x = x << 2;} - if (x <= 0x7FFFFFFF) {n = n + 1;} - return n; -} - -int nlz1a(unsigned x) { - int n; - -/* if (x == 0) return(32); */ - if ((int)x <= 0) return (~x >> 26) & 32; - n = 1; - if ((x >> 16) == 0) {n = n +16; x = x <<16;} - if ((x >> 24) == 0) {n = n + 8; x = x << 8;} - if ((x >> 28) == 0) {n = n + 4; x = x << 4;} - if ((x >> 30) == 0) {n = n + 2; x = x << 2;} - n = n - (x >> 31); - return n; -} -// On basic Risc, 12 to 20 instructions. - -int nlz2(unsigned x) { - unsigned y; - int n; - - n = 32; - y = x >>16; if (y != 0) {n = n -16; x = y;} - y = x >> 8; if (y != 0) {n = n - 8; x = y;} - y = x >> 4; if (y != 0) {n = n - 4; x = y;} - y = x >> 2; if (y != 0) {n = n - 2; x = y;} - y = x >> 1; if (y != 0) return n - 2; - return n - x; -} - -// As above but coded as a loop for compactness: -// 23 to 33 basic Risc instructions. -int nlz2a(unsigned x) { - unsigned y; - int n, c; - - n = 32; - c = 16; - do { - y = x >> c; if (y != 0) {n = n - c; x = y;} - c = c >> 1; - } while (c != 0); - return n - x; -} - -int nlz3(int x) { - int y, n; - - n = 0; - y = x; -L: if (x < 0) return n; - if (y == 0) return 32 - n; - n = n + 1; - x = x << 1; - y = y >> 1; - goto L; -} - -int nlz4(unsigned x) { - int y, m, n; - - y = -(x >> 16); // If left half of x is 0, - m = (y >> 16) & 16; // set n = 16. If left half - n = 16 - m; // is nonzero, set n = 0 and - x = x >> m; // shift x right 16. - // Now x is of the form 0000xxxx. - y = x - 0x100; // If positions 8-15 are 0, - m = (y >> 16) & 8; // add 8 to n and shift x left 8. - n = n + m; - x = x << m; - - y = x - 0x1000; // If positions 12-15 are 0, - m = (y >> 16) & 4; // add 4 to n and shift x left 4. - n = n + m; - x = x << m; - - y = x - 0x4000; // If positions 14-15 are 0, - m = (y >> 16) & 2; // add 2 to n and shift x left 2. - n = n + m; - x = x << m; - - y = x >> 14; // Set y = 0, 1, 2, or 3. - m = y & ~(y >> 1); // Set m = 0, 1, 2, or 2 resp. - return n + 2 - m; -} - -int nlz5(unsigned x) { +int nlz(unsigned x) { int pop(unsigned x); x = x | (x >> 1); @@ -134,172 +47,239 @@ int nlz5(unsigned x) { return pop(~x); } -/* The four programs below are not valid ANSI C programs. This is -because they refer to the same storage locations as two different types. -However, they work with xlc/AIX, gcc/AIX, and gcc/NT. If you try to -code them more compactly by declaring a variable xx to be "double," and -then using +int pop(unsigned x) { + x = x - ((x >> 1) & 0x55555555); + x = (x & 0x33333333) + ((x >> 2) & 0x33333333); + x = (x + (x >> 4)) & 0x0F0F0F0F; + x = x + (x << 8); + x = x + (x << 16); + return x >> 24; +} - n = 1054 - (*((unsigned *)&xx + LE) >> 20); +int ntz1(unsigned x) { + return 32 - nlz(~x & (x-1)); +} -then you are violating not only the rule above, but also the ANSI C -rule that pointer arithmetic can be performed only on pointers to -array elements. - When coded with the above statement, the program fails with xlc, -gcc/AIX, and gcc/NT, at some optimization levels. - BTW, these programs use the "anonymous union" feature of C++, not -available in C. */ +int ntz2(unsigned x) { + return pop(~x & (x - 1)); +} -int nlz6(unsigned k) { - union { - unsigned asInt[2]; - double asDouble; - }; +int ntz3(unsigned x) { int n; - asDouble = (double)k + 0.5; - n = 1054 - (asInt[LE] >> 20); + if (x == 0) return(32); + n = 1; + if ((x & 0x0000FFFF) == 0) {n = n +16; x = x >>16;} + if ((x & 0x000000FF) == 0) {n = n + 8; x = x >> 8;} + if ((x & 0x0000000F) == 0) {n = n + 4; x = x >> 4;} + if ((x & 0x00000003) == 0) {n = n + 2; x = x >> 2;} + return n - (x & 1); +} + +int ntz4(unsigned x) { + unsigned y; + int n; + + if (x == 0) return 32; + n = 31; + y = x <<16; if (y != 0) {n = n -16; x = y;} + y = x << 8; if (y != 0) {n = n - 8; x = y;} + y = x << 4; if (y != 0) {n = n - 4; x = y;} + y = x << 2; if (y != 0) {n = n - 2; x = y;} + y = x << 1; if (y != 0) {n = n - 1;} return n; } -int nlz7(unsigned k) { - union { - unsigned asInt[2]; - double asDouble; - }; +int ntz4a(unsigned x) { + unsigned y; int n; - asDouble = (double)k; - n = 1054 - (asInt[LE] >> 20); - n = (n & 31) + (n >> 9); + if (x == 0) return 32; + n = 31; + y = x <<16; if (y != 0) {n = n -16; x = y;} + y = x << 8; if (y != 0) {n = n - 8; x = y;} + y = x << 4; if (y != 0) {n = n - 4; x = y;} + y = x << 2; if (y != 0) {n = n - 2; x = y;} + n = n - ((x << 1) >> 31); return n; } - /* In single precision, round-to-nearest mode, the basic method fails for: - k = 0, k = 01FFFFFF, 03FFFFFE <= k <= 03FFFFFF, - 07FFFFFC <= k <= 07FFFFFF, - 0FFFFFF8 <= k <= 0FFFFFFF, - ... - 7FFFFFC0 <= k <= 7FFFFFFF. - FFFFFF80 <= k <= FFFFFFFF. - For k = 0 it gives 158, and for the other values it is too low by 1. */ - -int nlz8(unsigned k) { - union { - unsigned asInt; - float asFloat; - }; - int n; - - k = k & ~(k >> 1); /* Fix problem with rounding. */ - asFloat = (float)k + 0.5f; - n = 158 - (asInt >> 23); - return n; +int ntz5(char x) +{ + if (x & 15) { + if (x & 3) { + if (x & 1) return 0; + else return 1; + } + else if (x & 4) return 2; + else return 3; + } + else if (x & 0x30) { + if (x & 0x10) return 4; + else return 5; + } + else if (x & 0x40) return 6; + else if (x) return 7; + else return 8; } -/* The example below shows how to make a macro for nlz. It uses an -extension to the C and C++ languages that is provided by the GNU C/C++ -compiler, namely, that of allowing statements and declarations in -expressions (see "Using and Porting GNU CC", by Richard M. Stallman -(1998). The underscores are necessary to protect against the -possibility that the macro argument will conflict with one of its local -variables, e.g., NLZ(k). */ - -int nlz9(unsigned k) { - union { - unsigned asInt; - float asFloat; - }; +int ntz6(unsigned x) { int n; - k = k & ~(k >> 1); /* Fix problem with rounding. */ - asFloat = (float)k; - n = 158 - (asInt >> 23); - n = (n & 31) + (n >> 6); /* Fix problem with k = 0. */ - return n; + x = ~x & (x - 1); + n = 0; // n = 32; + while(x != 0) { // while (x != 0) { + n = n + 1; // n = n - 1; + x = x >> 1; // x = x + x; + } // } + return n; // return n; } -/* Below are three nearly equivalent programs for computing the number -of leading zeros in a word. This material is not in HD, but may be in a -future edition. - Immediately below is Robert Harley's algorithm, found at the -comp.arch newsgroup entry dated 7/12/96, pointed out to me by Norbert -Juffa. - Table entries marked "u" are unused. 14 ops including a multiply, -plus an indexed load. - The smallest multiplier that works is 0x045BCED1 = 17*65*129*513 (all -of form 2**k + 1). There are no multipliers of three terms of the form -2**k +- 1 that work, with a table size of 64 or 128. There are some, -with a table size of 64, if you precede the multiplication with x = x - -(x >> 1), but that seems less elegant. There are also some if you use a -table size of 256, the smallest is 0x01033CBF = 65*255*1025 (this would -save two instructions in the form of this algorithm with the -multiplication expanded into shifts and adds, but the table size is -getting a bit large). */ +int ntz6a(unsigned x) +{ + int n = 32; + + while (x != 0) { + n = n - 1; + x = x + x; + } + return n; +} + +/* Dean Gaudet's algorithm. To be most useful there must be a good way +to evaluate the C "conditional expression" (a?b:c construction) without +branching. The result of a?b:c is b if a is true (nonzero), and c if a +is false (0). + For example, a compare to zero op that sets a target GPR to 1 if the +operand is 0, and to 0 if the operand is nonzero, will do it. With this +instruction, the algorithm is entirely branch-free. But the most +interesting thing about it is the high degree of parallelism. All six +lines with conditional expressions can be executed in parallel (on a +machine with sufficient computational units). + Although the instruction count is 30 measured statically, it could +execute in only 10 cycles on a machine with sufficient parallelism. + The first two uses of y can instead be x, which would increase the +useful parallelism on most machines (the assignments to y, bz, and b4 +could then all run in parallel). */ + +int ntz7(unsigned x) +{ + unsigned y, bz, b4, b3, b2, b1, b0; + + y = x & -x; // Isolate rightmost 1-bit. + bz = y ? 0 : 1; // 1 if y = 0. + b4 = (y & 0x0000FFFF) ? 0 : 16; + b3 = (y & 0x00FF00FF) ? 0 : 8; + b2 = (y & 0x0F0F0F0F) ? 0 : 4; + b1 = (y & 0x33333333) ? 0 : 2; + b0 = (y & 0x55555555) ? 0 : 1; + return bz + b4 + b3 + b2 + b1 + b0; +} + +int ntz7_christophe(unsigned x) +{ + unsigned y, bz, b4, b3, b2, b1, b0; + + y = x & -x; // Isolate rightmost 1-bit. + bz = unsigned(!bool(y)); // 1 if y = 0. + b4 = unsigned(!bool(y & 0x0000FFFF)) * 16; + b3 = unsigned(!bool(y & 0x00FF00FF)) * 8; + b2 = unsigned(!bool(y & 0x0F0F0F0F)) * 4; + b1 = unsigned(!bool(y & 0x33333333)) * 2; + b0 = unsigned(!bool(y & 0x55555555)) * 1; + return bz + b4 + b3 + b2 + b1 + b0; +} + +/* Below is David Seal's algorithm, found at +http://www.ciphersbyritter.com/NEWS4/BITCT.HTM Table +entries marked "u" are unused. 6 ops including a +multiply, plus an indexed load. */ #define u 99 -int nlz10(unsigned x) { +int ntz8(unsigned x) +{ + static char table[64] = + {32, 0, 1,12, 2, 6, u,13, 3, u, 7, u, u, u, u,14, + 10, 4, u, u, 8, u, u,25, u, u, u, u, u,21,27,15, + 31,11, 5, u, u, u, u, u, 9, u, u,24, u, u,20,26, + 30, u, u, u, u,23, u,19, 29, u,22,18,28,17,16, u}; - static char table[64] = - {32,31, u,16, u,30, 3, u, 15, u, u, u,29,10, 2, u, - u, u,12,14,21, u,19, u, u,28, u,25, u, 9, 1, u, - 17, u, 4, u, u, u,11, u, 13,22,20, u,26, u, u,18, - 5, u, u,23, u,27, u, 6, u,24, 7, u, 8, u, 0, u}; - - x = x | (x >> 1); // Propagate leftmost - x = x | (x >> 2); // 1-bit to the right. - x = x | (x >> 4); - x = x | (x >> 8); - x = x | (x >>16); - x = x*0x06EB14F9; // Multiplier is 7*255**3. - return table[x >> 26]; + x = (x & -x)*0x0450FBAF; + return table[x >> 26]; } -/* Harley's algorithm with multiply expanded. -19 elementary ops plus an indexed load. */ +/* Seal's algorithm with multiply expanded. +9 elementary ops plus an indexed load. */ -int nlz10a(unsigned x) { +int ntz8a(unsigned x) +{ + static char table[64] = + {32, 0, 1,12, 2, 6, u,13, 3, u, 7, u, u, u, u,14, + 10, 4, u, u, 8, u, u,25, u, u, u, u, u,21,27,15, + 31,11, 5, u, u, u, u, u, 9, u, u,24, u, u,20,26, + 30, u, u, u, u,23, u,19, 29, u,22,18,28,17,16, u}; - static char table[64] = - {32,31, u,16, u,30, 3, u, 15, u, u, u,29,10, 2, u, - u, u,12,14,21, u,19, u, u,28, u,25, u, 9, 1, u, - 17, u, 4, u, u, u,11, u, 13,22,20, u,26, u, u,18, - 5, u, u,23, u,27, u, 6, u,24, 7, u, 8, u, 0, u}; - - x = x | (x >> 1); // Propagate leftmost - x = x | (x >> 2); // 1-bit to the right. - x = x | (x >> 4); - x = x | (x >> 8); - x = x | (x >> 16); - x = (x << 3) - x; // Multiply by 7. - x = (x << 8) - x; // Multiply by 255. - x = (x << 8) - x; // Again. - x = (x << 8) - x; // Again. - return table[x >> 26]; + x = (x & -x); + x = (x << 4) + x; // x = x*17. + x = (x << 6) + x; // x = x*65. + x = (x << 16) - x; // x = x*65535. + return table[x >> 26]; } -/* Julius Goryavsky's version of Harley's algorithm. -17 elementary ops plus an indexed load, if the machine -has "and not." */ +/* Reiser's algorithm. Three ops including a "remainder," +plus an indexed load. */ -int nlz10b(unsigned x) { +int ntz9(unsigned x) { - static char table[64] = - {32,20,19, u, u,18, u, 7, 10,17, u, u,14, u, 6, u, - u, 9, u,16, u, u, 1,26, u,13, u, u,24, 5, u, u, - u,21, u, 8,11, u,15, u, u, u, u, 2,27, 0,25, u, - 22, u,12, u, u, 3,28, u, 23, u, 4,29, u, u,30,31}; + static char table[37] = {32, 0, 1, 26, 2, 23, 27, + u, 3, 16, 24, 30, 28, 11, u, 13, 4, + 7, 17, u, 25, 22, 31, 15, 29, 10, 12, + 6, u, 21, 14, 9, 5, 20, 8, 19, 18}; - x = x | (x >> 1); // Propagate leftmost - x = x | (x >> 2); // 1-bit to the right. - x = x | (x >> 4); - x = x | (x >> 8); - x = x & ~(x >> 16); - x = x*0xFD7049FF; // Activate this line or the following 3. -// x = (x << 9) - x; // Multiply by 511. -// x = (x << 11) - x; // Multiply by 2047. -// x = (x << 14) - x; // Multiply by 16383. - return table[x >> 26]; + x = (x & -x)%37; + return table[x]; +} + +/* Using a de Bruijn sequence. This is a table lookup with a 32-entry +table. The de Bruijn sequence used here is + 0000 0100 1101 0111 0110 0101 0001 1111, +obtained from Danny Dube's October 3, 1997, posting in +comp.compression.research. Thanks to Norbert Juffa for this reference. */ + +int ntz10(unsigned x) { + + static char table[32] = + { 0, 1, 2,24, 3,19, 6,25, 22, 4,20,10,16, 7,12,26, + 31,23,18, 5,21, 9,15,11, 30,17, 8,14,29,13,28,27}; + + if (x == 0) return 32; + x = (x & -x)*0x04D7651F; + return table[x >> 27]; +} + +/* Norbert Juffa's code, answer to exercise 1 of Chapter 5 (2nd ed). */ + +#define SLOW_MUL +int ntz11 (unsigned int n) { + + static unsigned char tab[32] = + { 0, 1, 2, 24, 3, 19, 6, 25, + 22, 4, 20, 10, 16, 7, 12, 26, + 31, 23, 18, 5, 21, 9, 15, 11, + 30, 17, 8, 14, 29, 13, 28, 27 + }; + unsigned int k; + n = n & (-n); /* isolate lsb */ + printf("n = %d\n", n); +#if defined(SLOW_MUL) + k = (n << 11) - n; + k = (k << 2) + k; + k = (k << 8) + n; + k = (k << 5) - k; +#else + k = n * 0x4d7651f; +#endif + return n ? tab[k>>27] : 32; } int errors; @@ -308,19 +288,22 @@ void error(int x, int y) { printf("Error for x = %08x, got %d\n", x, y); } +/* ------------------------------ main ------------------------------ */ + int main() { -# ifdef GLM_TEST_ENABLE_PERF +# ifdef NDEBUG + + int i, m, n; + static unsigned test[] = {0,32, 1,0, 2,1, 3,0, 4,2, 5,0, 6,1, 7,0, + 8,3, 9,0, 16,4, 32,5, 64,6, 128,7, 255,0, 256,8, 512,9, 1024,10, + 2048,11, 4096,12, 8192,13, 16384,14, 32768,15, 65536,16, + 0x20000,17, 0x40000,18, 0x80000,19, 0x100000,20, 0x200000,21, + 0x400000,22, 0x800000,23, 0x1000000,24, 0x2000000,25, + 0x4000000,26, 0x8000000,27, 0x10000000,28, 0x20000000,29, + 0x40000000,30, 0x80000000,31, 0xFFFFFFF0,4, 0x3000FF00,8, + 0xC0000000,30, 0x60000000,29, 0x00011000, 12}; - int i, n; - static unsigned test[] = {0,32, 1,31, 2,30, 3,30, 4,29, 5,29, 6,29, - 7,29, 8,28, 9,28, 16,27, 32,26, 64,25, 128,24, 255,24, 256,23, - 512,22, 1024,21, 2048,20, 4096,19, 8192,18, 16384,17, 32768,16, - 65536,15, 0x20000,14, 0x40000,13, 0x80000,12, 0x100000,11, - 0x200000,10, 0x400000,9, 0x800000,8, 0x1000000,7, 0x2000000,6, - 0x4000000,5, 0x8000000,4, 0x0FFFFFFF,4, 0x10000000,3, - 0x3000FFFF,2, 0x50003333,1, 0x7FFFFFFF,1, 0x80000000,0, - 0xFFFFFFFF,0}; std::size_t const Count = 10000000; n = sizeof(test)/4; @@ -331,117 +314,118 @@ int main() TimestampBeg = std::clock(); for (std::size_t k = 0; k < Count; ++k) for (i = 0; i < n; i += 2) { - if (nlz1(test[i]) != test[i+1]) error(test[i], nlz1(test[i]));} + if (ntz1(test[i]) != test[i+1]) error(test[i], ntz1(test[i]));} TimestampEnd = std::clock(); - printf("nlz1: %d clocks\n", TimestampEnd - TimestampBeg); + printf("ntz1: %d clocks\n", TimestampEnd - TimestampBeg); TimestampBeg = std::clock(); for (std::size_t k = 0; k < Count; ++k) for (i = 0; i < n; i += 2) { - if (nlz1a(test[i]) != test[i+1]) error(test[i], nlz1a(test[i]));} + if (ntz2(test[i]) != test[i+1]) error(test[i], ntz2(test[i]));} TimestampEnd = std::clock(); - printf("nlz1a: %d clocks\n", TimestampEnd - TimestampBeg); + printf("ntz2: %d clocks\n", TimestampEnd - TimestampBeg); TimestampBeg = std::clock(); for (std::size_t k = 0; k < Count; ++k) for (i = 0; i < n; i += 2) { - if (nlz2(test[i]) != test[i+1]) error(test[i], nlz2(test[i]));} + if (ntz3(test[i]) != test[i+1]) error(test[i], ntz3(test[i]));} TimestampEnd = std::clock(); - printf("nlz2: %d clocks\n", TimestampEnd - TimestampBeg); + printf("ntz3: %d clocks\n", TimestampEnd - TimestampBeg); TimestampBeg = std::clock(); for (std::size_t k = 0; k < Count; ++k) for (i = 0; i < n; i += 2) { - if (nlz2a(test[i]) != test[i+1]) error(test[i], nlz2a(test[i]));} + if (ntz4(test[i]) != test[i+1]) error(test[i], ntz4(test[i]));} TimestampEnd = std::clock(); - printf("nlz2a: %d clocks\n", TimestampEnd - TimestampBeg); + printf("ntz4: %d clocks\n", TimestampEnd - TimestampBeg); TimestampBeg = std::clock(); for (std::size_t k = 0; k < Count; ++k) for (i = 0; i < n; i += 2) { - if (nlz3(test[i]) != test[i+1]) error(test[i], nlz3(test[i]));} + if (ntz4a(test[i]) != test[i+1]) error(test[i], ntz4a(test[i]));} TimestampEnd = std::clock(); - printf("nlz3: %d clocks\n", TimestampEnd - TimestampBeg); + printf("ntz4a: %d clocks\n", TimestampEnd - TimestampBeg); TimestampBeg = std::clock(); for (std::size_t k = 0; k < Count; ++k) for (i = 0; i < n; i += 2) { - if (nlz4(test[i]) != test[i+1]) error(test[i], nlz4(test[i]));} + m = test[i+1]; if (m > 8) m = 8; + if (ntz5(test[i]) != m) error(test[i], ntz5(test[i]));} TimestampEnd = std::clock(); - printf("nlz4: %d clocks\n", TimestampEnd - TimestampBeg); + printf("ntz5: %d clocks\n", TimestampEnd - TimestampBeg); TimestampBeg = std::clock(); for (std::size_t k = 0; k < Count; ++k) for (i = 0; i < n; i += 2) { - if (nlz5(test[i]) != test[i+1]) error(test[i], nlz5(test[i]));} + if (ntz6(test[i]) != test[i+1]) error(test[i], ntz6(test[i]));} TimestampEnd = std::clock(); - printf("nlz5: %d clocks\n", TimestampEnd - TimestampBeg); + printf("ntz6: %d clocks\n", TimestampEnd - TimestampBeg); TimestampBeg = std::clock(); for (std::size_t k = 0; k < Count; ++k) for (i = 0; i < n; i += 2) { - if (nlz6(test[i]) != test[i+1]) error(test[i], nlz6(test[i]));} + if (ntz6a(test[i]) != test[i+1]) error(test[i], ntz6a(test[i]));} TimestampEnd = std::clock(); - printf("nlz6: %d clocks\n", TimestampEnd - TimestampBeg); + printf("ntz6a: %d clocks\n", TimestampEnd - TimestampBeg); TimestampBeg = std::clock(); for (std::size_t k = 0; k < Count; ++k) for (i = 0; i < n; i += 2) { - if (nlz7(test[i]) != test[i+1]) error(test[i], nlz7(test[i]));} + if (ntz7(test[i]) != test[i+1]) error(test[i], ntz7(test[i]));} TimestampEnd = std::clock(); - printf("nlz7: %d clocks\n", TimestampEnd - TimestampBeg); + printf("ntz7: %d clocks\n", TimestampEnd - TimestampBeg); TimestampBeg = std::clock(); for (std::size_t k = 0; k < Count; ++k) for (i = 0; i < n; i += 2) { - if (nlz8(test[i]) != test[i+1]) error(test[i], nlz8(test[i]));} + if (ntz7_christophe(test[i]) != test[i+1]) error(test[i], ntz7(test[i]));} TimestampEnd = std::clock(); - printf("nlz8: %d clocks\n", TimestampEnd - TimestampBeg); + printf("ntz7_christophe: %d clocks\n", TimestampEnd - TimestampBeg); TimestampBeg = std::clock(); for (std::size_t k = 0; k < Count; ++k) for (i = 0; i < n; i += 2) { - if (nlz9(test[i]) != test[i+1]) error(test[i], nlz9(test[i]));} + if (ntz8(test[i]) != test[i+1]) error(test[i], ntz8(test[i]));} TimestampEnd = std::clock(); - printf("nlz9: %d clocks\n", TimestampEnd - TimestampBeg); + printf("ntz8: %d clocks\n", TimestampEnd - TimestampBeg); TimestampBeg = std::clock(); for (std::size_t k = 0; k < Count; ++k) for (i = 0; i < n; i += 2) { - if (nlz10(test[i]) != test[i+1]) error(test[i], nlz10(test[i]));} + if (ntz8a(test[i]) != test[i+1]) error(test[i], ntz8a(test[i]));} TimestampEnd = std::clock(); - printf("nlz10: %d clocks\n", TimestampEnd - TimestampBeg); + printf("ntz8a: %d clocks\n", TimestampEnd - TimestampBeg); TimestampBeg = std::clock(); for (std::size_t k = 0; k < Count; ++k) for (i = 0; i < n; i += 2) { - if (nlz10a(test[i]) != test[i+1]) error(test[i], nlz10a(test[i]));} + if (ntz9(test[i]) != test[i+1]) error(test[i], ntz9(test[i]));} TimestampEnd = std::clock(); - printf("nlz10a: %d clocks\n", TimestampEnd - TimestampBeg); + printf("ntz9: %d clocks\n", TimestampEnd - TimestampBeg); TimestampBeg = std::clock(); for (std::size_t k = 0; k < Count; ++k) for (i = 0; i < n; i += 2) { - if (nlz10b(test[i]) != test[i+1]) error(test[i], nlz10b(test[i]));} + if (ntz10(test[i]) != test[i+1]) error(test[i], ntz10(test[i]));} TimestampEnd = std::clock(); - printf("nlz10b: %d clocks\n", TimestampEnd - TimestampBeg); + printf("ntz10: %d clocks\n", TimestampEnd - TimestampBeg); if (errors == 0) printf("Passed all %d cases.\n", sizeof(test)/8); -# endif//GLM_TEST_ENABLE_PERF +# endif//NDEBUG } diff --git a/test/core/core_func_integer_find_msb.cpp b/test/core/core_func_integer_find_msb.cpp new file mode 100644 index 00000000..a1a7c323 --- /dev/null +++ b/test/core/core_func_integer_find_msb.cpp @@ -0,0 +1,468 @@ +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/core/func_integer_find_msb.cpp +/// @date 2014-10-27 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// +// This has the programs for computing the number of leading zeros +// in a word. +// Max line length is 57, to fit in hacker.book. +// Compile with g++, not gcc. +#include +#include // To define "exit", req'd by XLC. +#include + +#define LE 1 // 1 for little-endian, 0 for big-endian. + +int pop(unsigned x) { + x = x - ((x >> 1) & 0x55555555); + x = (x & 0x33333333) + ((x >> 2) & 0x33333333); + x = (x + (x >> 4)) & 0x0F0F0F0F; + x = x + (x << 8); + x = x + (x << 16); + return x >> 24; +} + +int nlz1(unsigned x) { + int n; + + if (x == 0) return(32); + n = 0; + if (x <= 0x0000FFFF) {n = n +16; x = x <<16;} + if (x <= 0x00FFFFFF) {n = n + 8; x = x << 8;} + if (x <= 0x0FFFFFFF) {n = n + 4; x = x << 4;} + if (x <= 0x3FFFFFFF) {n = n + 2; x = x << 2;} + if (x <= 0x7FFFFFFF) {n = n + 1;} + return n; +} + +int nlz1a(unsigned x) { + int n; + +/* if (x == 0) return(32); */ + if ((int)x <= 0) return (~x >> 26) & 32; + n = 1; + if ((x >> 16) == 0) {n = n +16; x = x <<16;} + if ((x >> 24) == 0) {n = n + 8; x = x << 8;} + if ((x >> 28) == 0) {n = n + 4; x = x << 4;} + if ((x >> 30) == 0) {n = n + 2; x = x << 2;} + n = n - (x >> 31); + return n; +} +// On basic Risc, 12 to 20 instructions. + +int nlz2(unsigned x) { + unsigned y; + int n; + + n = 32; + y = x >>16; if (y != 0) {n = n -16; x = y;} + y = x >> 8; if (y != 0) {n = n - 8; x = y;} + y = x >> 4; if (y != 0) {n = n - 4; x = y;} + y = x >> 2; if (y != 0) {n = n - 2; x = y;} + y = x >> 1; if (y != 0) return n - 2; + return n - x; +} + +// As above but coded as a loop for compactness: +// 23 to 33 basic Risc instructions. +int nlz2a(unsigned x) { + unsigned y; + int n, c; + + n = 32; + c = 16; + do { + y = x >> c; if (y != 0) {n = n - c; x = y;} + c = c >> 1; + } while (c != 0); + return n - x; +} + +int nlz3(int x) { + int y, n; + + n = 0; + y = x; +L: if (x < 0) return n; + if (y == 0) return 32 - n; + n = n + 1; + x = x << 1; + y = y >> 1; + goto L; +} + +int nlz4(unsigned x) { + int y, m, n; + + y = -(x >> 16); // If left half of x is 0, + m = (y >> 16) & 16; // set n = 16. If left half + n = 16 - m; // is nonzero, set n = 0 and + x = x >> m; // shift x right 16. + // Now x is of the form 0000xxxx. + y = x - 0x100; // If positions 8-15 are 0, + m = (y >> 16) & 8; // add 8 to n and shift x left 8. + n = n + m; + x = x << m; + + y = x - 0x1000; // If positions 12-15 are 0, + m = (y >> 16) & 4; // add 4 to n and shift x left 4. + n = n + m; + x = x << m; + + y = x - 0x4000; // If positions 14-15 are 0, + m = (y >> 16) & 2; // add 2 to n and shift x left 2. + n = n + m; + x = x << m; + + y = x >> 14; // Set y = 0, 1, 2, or 3. + m = y & ~(y >> 1); // Set m = 0, 1, 2, or 2 resp. + return n + 2 - m; +} + +int nlz5(unsigned x) { + int pop(unsigned x); + + x = x | (x >> 1); + x = x | (x >> 2); + x = x | (x >> 4); + x = x | (x >> 8); + x = x | (x >>16); + return pop(~x); +} + +/* The four programs below are not valid ANSI C programs. This is +because they refer to the same storage locations as two different types. +However, they work with xlc/AIX, gcc/AIX, and gcc/NT. If you try to +code them more compactly by declaring a variable xx to be "double," and +then using + + n = 1054 - (*((unsigned *)&xx + LE) >> 20); + +then you are violating not only the rule above, but also the ANSI C +rule that pointer arithmetic can be performed only on pointers to +array elements. + When coded with the above statement, the program fails with xlc, +gcc/AIX, and gcc/NT, at some optimization levels. + BTW, these programs use the "anonymous union" feature of C++, not +available in C. */ + +int nlz6(unsigned k) { + union { + unsigned asInt[2]; + double asDouble; + }; + int n; + + asDouble = (double)k + 0.5; + n = 1054 - (asInt[LE] >> 20); + return n; +} + +int nlz7(unsigned k) { + union { + unsigned asInt[2]; + double asDouble; + }; + int n; + + asDouble = (double)k; + n = 1054 - (asInt[LE] >> 20); + n = (n & 31) + (n >> 9); + return n; +} + + /* In single precision, round-to-nearest mode, the basic method fails for: + k = 0, k = 01FFFFFF, 03FFFFFE <= k <= 03FFFFFF, + 07FFFFFC <= k <= 07FFFFFF, + 0FFFFFF8 <= k <= 0FFFFFFF, + ... + 7FFFFFC0 <= k <= 7FFFFFFF. + FFFFFF80 <= k <= FFFFFFFF. + For k = 0 it gives 158, and for the other values it is too low by 1. */ + +int nlz8(unsigned k) { + union { + unsigned asInt; + float asFloat; + }; + int n; + + k = k & ~(k >> 1); /* Fix problem with rounding. */ + asFloat = (float)k + 0.5f; + n = 158 - (asInt >> 23); + return n; +} + +/* The example below shows how to make a macro for nlz. It uses an +extension to the C and C++ languages that is provided by the GNU C/C++ +compiler, namely, that of allowing statements and declarations in +expressions (see "Using and Porting GNU CC", by Richard M. Stallman +(1998). The underscores are necessary to protect against the +possibility that the macro argument will conflict with one of its local +variables, e.g., NLZ(k). */ + +int nlz9(unsigned k) { + union { + unsigned asInt; + float asFloat; + }; + int n; + + k = k & ~(k >> 1); /* Fix problem with rounding. */ + asFloat = (float)k; + n = 158 - (asInt >> 23); + n = (n & 31) + (n >> 6); /* Fix problem with k = 0. */ + return n; +} + +/* Below are three nearly equivalent programs for computing the number +of leading zeros in a word. This material is not in HD, but may be in a +future edition. + Immediately below is Robert Harley's algorithm, found at the +comp.arch newsgroup entry dated 7/12/96, pointed out to me by Norbert +Juffa. + Table entries marked "u" are unused. 14 ops including a multiply, +plus an indexed load. + The smallest multiplier that works is 0x045BCED1 = 17*65*129*513 (all +of form 2**k + 1). There are no multipliers of three terms of the form +2**k +- 1 that work, with a table size of 64 or 128. There are some, +with a table size of 64, if you precede the multiplication with x = x - +(x >> 1), but that seems less elegant. There are also some if you use a +table size of 256, the smallest is 0x01033CBF = 65*255*1025 (this would +save two instructions in the form of this algorithm with the +multiplication expanded into shifts and adds, but the table size is +getting a bit large). */ + +#define u 99 +int nlz10(unsigned x) { + + static char table[64] = + {32,31, u,16, u,30, 3, u, 15, u, u, u,29,10, 2, u, + u, u,12,14,21, u,19, u, u,28, u,25, u, 9, 1, u, + 17, u, 4, u, u, u,11, u, 13,22,20, u,26, u, u,18, + 5, u, u,23, u,27, u, 6, u,24, 7, u, 8, u, 0, u}; + + x = x | (x >> 1); // Propagate leftmost + x = x | (x >> 2); // 1-bit to the right. + x = x | (x >> 4); + x = x | (x >> 8); + x = x | (x >>16); + x = x*0x06EB14F9; // Multiplier is 7*255**3. + return table[x >> 26]; +} + +/* Harley's algorithm with multiply expanded. +19 elementary ops plus an indexed load. */ + +int nlz10a(unsigned x) { + + static char table[64] = + {32,31, u,16, u,30, 3, u, 15, u, u, u,29,10, 2, u, + u, u,12,14,21, u,19, u, u,28, u,25, u, 9, 1, u, + 17, u, 4, u, u, u,11, u, 13,22,20, u,26, u, u,18, + 5, u, u,23, u,27, u, 6, u,24, 7, u, 8, u, 0, u}; + + x = x | (x >> 1); // Propagate leftmost + x = x | (x >> 2); // 1-bit to the right. + x = x | (x >> 4); + x = x | (x >> 8); + x = x | (x >> 16); + x = (x << 3) - x; // Multiply by 7. + x = (x << 8) - x; // Multiply by 255. + x = (x << 8) - x; // Again. + x = (x << 8) - x; // Again. + return table[x >> 26]; +} + +/* Julius Goryavsky's version of Harley's algorithm. +17 elementary ops plus an indexed load, if the machine +has "and not." */ + +int nlz10b(unsigned x) { + + static char table[64] = + {32,20,19, u, u,18, u, 7, 10,17, u, u,14, u, 6, u, + u, 9, u,16, u, u, 1,26, u,13, u, u,24, 5, u, u, + u,21, u, 8,11, u,15, u, u, u, u, 2,27, 0,25, u, + 22, u,12, u, u, 3,28, u, 23, u, 4,29, u, u,30,31}; + + x = x | (x >> 1); // Propagate leftmost + x = x | (x >> 2); // 1-bit to the right. + x = x | (x >> 4); + x = x | (x >> 8); + x = x & ~(x >> 16); + x = x*0xFD7049FF; // Activate this line or the following 3. +// x = (x << 9) - x; // Multiply by 511. +// x = (x << 11) - x; // Multiply by 2047. +// x = (x << 14) - x; // Multiply by 16383. + return table[x >> 26]; +} + +int errors; +void error(int x, int y) { + errors = errors + 1; + printf("Error for x = %08x, got %d\n", x, y); +} + +int main() +{ +# ifdef NDEBUG + + int i, n; + static unsigned test[] = {0,32, 1,31, 2,30, 3,30, 4,29, 5,29, 6,29, + 7,29, 8,28, 9,28, 16,27, 32,26, 64,25, 128,24, 255,24, 256,23, + 512,22, 1024,21, 2048,20, 4096,19, 8192,18, 16384,17, 32768,16, + 65536,15, 0x20000,14, 0x40000,13, 0x80000,12, 0x100000,11, + 0x200000,10, 0x400000,9, 0x800000,8, 0x1000000,7, 0x2000000,6, + 0x4000000,5, 0x8000000,4, 0x0FFFFFFF,4, 0x10000000,3, + 0x3000FFFF,2, 0x50003333,1, 0x7FFFFFFF,1, 0x80000000,0, + 0xFFFFFFFF,0}; + std::size_t const Count = 10000000; + + n = sizeof(test)/4; + + std::clock_t TimestampBeg = 0; + std::clock_t TimestampEnd = 0; + + TimestampBeg = std::clock(); + for (std::size_t k = 0; k < Count; ++k) + for (i = 0; i < n; i += 2) { + if (nlz1(test[i]) != test[i+1]) error(test[i], nlz1(test[i]));} + TimestampEnd = std::clock(); + + printf("nlz1: %d clocks\n", TimestampEnd - TimestampBeg); + + TimestampBeg = std::clock(); + for (std::size_t k = 0; k < Count; ++k) + for (i = 0; i < n; i += 2) { + if (nlz1a(test[i]) != test[i+1]) error(test[i], nlz1a(test[i]));} + TimestampEnd = std::clock(); + + printf("nlz1a: %d clocks\n", TimestampEnd - TimestampBeg); + + TimestampBeg = std::clock(); + for (std::size_t k = 0; k < Count; ++k) + for (i = 0; i < n; i += 2) { + if (nlz2(test[i]) != test[i+1]) error(test[i], nlz2(test[i]));} + TimestampEnd = std::clock(); + + printf("nlz2: %d clocks\n", TimestampEnd - TimestampBeg); + + TimestampBeg = std::clock(); + for (std::size_t k = 0; k < Count; ++k) + for (i = 0; i < n; i += 2) { + if (nlz2a(test[i]) != test[i+1]) error(test[i], nlz2a(test[i]));} + TimestampEnd = std::clock(); + + printf("nlz2a: %d clocks\n", TimestampEnd - TimestampBeg); + + TimestampBeg = std::clock(); + for (std::size_t k = 0; k < Count; ++k) + for (i = 0; i < n; i += 2) { + if (nlz3(test[i]) != test[i+1]) error(test[i], nlz3(test[i]));} + TimestampEnd = std::clock(); + + printf("nlz3: %d clocks\n", TimestampEnd - TimestampBeg); + + TimestampBeg = std::clock(); + for (std::size_t k = 0; k < Count; ++k) + for (i = 0; i < n; i += 2) { + if (nlz4(test[i]) != test[i+1]) error(test[i], nlz4(test[i]));} + TimestampEnd = std::clock(); + + printf("nlz4: %d clocks\n", TimestampEnd - TimestampBeg); + + TimestampBeg = std::clock(); + for (std::size_t k = 0; k < Count; ++k) + for (i = 0; i < n; i += 2) { + if (nlz5(test[i]) != test[i+1]) error(test[i], nlz5(test[i]));} + TimestampEnd = std::clock(); + + printf("nlz5: %d clocks\n", TimestampEnd - TimestampBeg); + + TimestampBeg = std::clock(); + for (std::size_t k = 0; k < Count; ++k) + for (i = 0; i < n; i += 2) { + if (nlz6(test[i]) != test[i+1]) error(test[i], nlz6(test[i]));} + TimestampEnd = std::clock(); + + printf("nlz6: %d clocks\n", TimestampEnd - TimestampBeg); + + TimestampBeg = std::clock(); + for (std::size_t k = 0; k < Count; ++k) + for (i = 0; i < n; i += 2) { + if (nlz7(test[i]) != test[i+1]) error(test[i], nlz7(test[i]));} + TimestampEnd = std::clock(); + + printf("nlz7: %d clocks\n", TimestampEnd - TimestampBeg); + + TimestampBeg = std::clock(); + for (std::size_t k = 0; k < Count; ++k) + for (i = 0; i < n; i += 2) { + if (nlz8(test[i]) != test[i+1]) error(test[i], nlz8(test[i]));} + TimestampEnd = std::clock(); + + printf("nlz8: %d clocks\n", TimestampEnd - TimestampBeg); + + TimestampBeg = std::clock(); + for (std::size_t k = 0; k < Count; ++k) + for (i = 0; i < n; i += 2) { + if (nlz9(test[i]) != test[i+1]) error(test[i], nlz9(test[i]));} + TimestampEnd = std::clock(); + + printf("nlz9: %d clocks\n", TimestampEnd - TimestampBeg); + + TimestampBeg = std::clock(); + for (std::size_t k = 0; k < Count; ++k) + for (i = 0; i < n; i += 2) { + if (nlz10(test[i]) != test[i+1]) error(test[i], nlz10(test[i]));} + TimestampEnd = std::clock(); + + printf("nlz10: %d clocks\n", TimestampEnd - TimestampBeg); + + TimestampBeg = std::clock(); + for (std::size_t k = 0; k < Count; ++k) + for (i = 0; i < n; i += 2) { + if (nlz10a(test[i]) != test[i+1]) error(test[i], nlz10a(test[i]));} + TimestampEnd = std::clock(); + + printf("nlz10a: %d clocks\n", TimestampEnd - TimestampBeg); + + TimestampBeg = std::clock(); + for (std::size_t k = 0; k < Count; ++k) + for (i = 0; i < n; i += 2) { + if (nlz10b(test[i]) != test[i+1]) error(test[i], nlz10b(test[i]));} + TimestampEnd = std::clock(); + + printf("nlz10b: %d clocks\n", TimestampEnd - TimestampBeg); + + if (errors == 0) + printf("Passed all %d cases.\n", sizeof(test)/8); + +# endif//NDEBUG +} diff --git a/test/core/core_func_matrix.cpp b/test/core/core_func_matrix.cpp index 14f52545..727f39b3 100644 --- a/test/core/core_func_matrix.cpp +++ b/test/core/core_func_matrix.cpp @@ -1,11 +1,33 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2011-01-15 -// Updated : 2012-05-02 -// Licence : This source is under MIT licence -// File : test/core/func_matrix.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/core/func_matrix.cpp +/// @date 2007-01-25 / 2011-06-07 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// #include #include @@ -241,13 +263,13 @@ int main() Error += test_determinant(); Error += test_inverse(); -# ifdef GLM_TEST_ENABLE_PERF +# ifdef NDEBUG for(std::size_t i = 0; i < 1; ++i) { Error += test_inverse_perf(i, "mat4"); Error += test_inverse_perf(i, "dmat4"); } -# endif +# endif//NDEBUG return Error; } diff --git a/test/core/core_func_noise.cpp b/test/core/core_func_noise.cpp index e9788702..ce455fbe 100644 --- a/test/core/core_func_noise.cpp +++ b/test/core/core_func_noise.cpp @@ -1,11 +1,33 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2011-01-15 -// Updated : 2011-09-13 -// Licence : This source is under MIT licence -// File : test/core/func_noise.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/core/func_noise.cpp +/// @date 2011-01-15 / 2011-09-13 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// int main() { diff --git a/test/core/core_func_packing.cpp b/test/core/core_func_packing.cpp index 236f51e3..868ad435 100644 --- a/test/core/core_func_packing.cpp +++ b/test/core/core_func_packing.cpp @@ -1,11 +1,33 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2011-01-15 -// Updated : 2011-09-13 -// Licence : This source is under MIT licence -// File : test/core/func_packing.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/core/func_packing.cpp +/// @date 2011-01-15 / 2011-09-13 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// #include #include diff --git a/test/core/core_func_swizzle.cpp b/test/core/core_func_swizzle.cpp index 0add4cb1..3508c979 100644 --- a/test/core/core_func_swizzle.cpp +++ b/test/core/core_func_swizzle.cpp @@ -1,11 +1,33 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2011-10-16 -// Updated : 2011-10-16 -// Licence : This source is under MIT License -// File : test/core/core_func_swizzle.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/core/core_func_swizzle.cpp +/// @date 2011-10-16 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// #define GLM_MESSAGES #define GLM_SWIZZLE diff --git a/test/core/core_func_trigonometric.cpp b/test/core/core_func_trigonometric.cpp index 6c7ac3c4..fb4fd9b7 100644 --- a/test/core/core_func_trigonometric.cpp +++ b/test/core/core_func_trigonometric.cpp @@ -1,11 +1,33 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2011-01-15 -// Updated : 2011-09-13 -// Licence : This source is under MIT licence -// File : test/core/func_trigonometric.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/core/core_func_trigonometric.cpp +/// @date 2011-01-15 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// #include diff --git a/test/core/core_func_vector_relational.cpp b/test/core/core_func_vector_relational.cpp index 58978c6d..f21b1053 100644 --- a/test/core/core_func_vector_relational.cpp +++ b/test/core/core_func_vector_relational.cpp @@ -1,11 +1,33 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2011-01-15 -// Updated : 2011-09-13 -// Licence : This source is under MIT licence -// File : test/core/vector_relational.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/core/core_vector_relational.cpp +/// @date 2011-01-15 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// #include #include diff --git a/test/core/core_setup_force_cxx98.cpp b/test/core/core_setup_force_cxx98.cpp index e3a92e78..651cee9c 100644 --- a/test/core/core_setup_force_cxx98.cpp +++ b/test/core/core_setup_force_cxx98.cpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE diff --git a/test/core/core_setup_message.cpp b/test/core/core_setup_message.cpp index 1cab01f4..07d5d0b5 100644 --- a/test/core/core_setup_message.cpp +++ b/test/core/core_setup_message.cpp @@ -41,12 +41,6 @@ int test_compiler() { switch(GLM_COMPILER) { - case GLM_COMPILER_GCC42: - std::printf("GLM_COMPILER_GCC42\n"); - break; - case GLM_COMPILER_GCC43: - std::printf("GLM_COMPILER_GCC43\n"); - break; case GLM_COMPILER_GCC44: std::printf("GLM_COMPILER_GCC44\n"); break; @@ -109,12 +103,6 @@ int test_compiler() { switch(GLM_COMPILER) { - case GLM_COMPILER_LLVM30: - std::printf("GLM_COMPILER_LLVM30\n"); - break; - case GLM_COMPILER_LLVM31: - std::printf("GLM_COMPILER_LLVM31\n"); - break; case GLM_COMPILER_LLVM32: std::printf("GLM_COMPILER_LLVM32\n"); break; diff --git a/test/core/core_setup_precision.cpp b/test/core/core_setup_precision.cpp index 40c28f1d..b0987237 100644 --- a/test/core/core_setup_precision.cpp +++ b/test/core/core_setup_precision.cpp @@ -1,11 +1,33 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2011-05-31 -// Updated : 2011-05-31 -// Licence : This source is under MIT License -// File : test/core/setup_precision_highp.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/core/core_setup_precision.cpp +/// @date 2011-05-31 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// #define GLM_FORCE_INLINE #define GLM_PRECISION_HIGHP_FLOAT diff --git a/test/core/core_type_cast.cpp b/test/core/core_type_cast.cpp index 9cac442b..1d9ee494 100644 --- a/test/core/core_type_cast.cpp +++ b/test/core/core_type_cast.cpp @@ -1,11 +1,33 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2013-05-06 -// Updated : 2013-05-06 -// Licence : This source is under MIT License -// File : test/core/type_cast.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/core/core_type_cast.cpp +/// @date 2013-05-06 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// #include #include diff --git a/test/core/core_type_float.cpp b/test/core/core_type_float.cpp index bb967eb5..7f70e9cb 100644 --- a/test/core/core_type_float.cpp +++ b/test/core/core_type_float.cpp @@ -1,11 +1,33 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2008-08-31 -// Updated : 2011-05-06 -// Licence : This source is under MIT License -// File : test/core/type_float.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/core/core_type_float.cpp +/// @date 2008-08-31 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// #include diff --git a/test/core/core_type_int.cpp b/test/core/core_type_int.cpp index 054c5c1d..19be2361 100644 --- a/test/core/core_type_int.cpp +++ b/test/core/core_type_int.cpp @@ -1,11 +1,33 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2008-08-31 -// Updated : 2011-05-06 -// Licence : This source is under MIT License -// File : test/core/type_int.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/core/core_type_int.cpp +/// @date 2008-08-31 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// #include diff --git a/test/core/core_type_length.cpp b/test/core/core_type_length.cpp index 879caff8..2e5a93ae 100644 --- a/test/core/core_type_length.cpp +++ b/test/core/core_type_length.cpp @@ -1,11 +1,33 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2011-05-25 -// Updated : 2011-05-25 -// Licence : This source is under MIT License -// File : test/core/type_length.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/core/core_type_length.cpp +/// @date 2011-05-25 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// #include diff --git a/test/core/core_type_length_size.cpp b/test/core/core_type_length_size.cpp index 8edc58b2..74735591 100644 --- a/test/core/core_type_length_size.cpp +++ b/test/core/core_type_length_size.cpp @@ -1,11 +1,33 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2011-05-25 -// Updated : 2011-05-25 -// Licence : This source is under MIT License -// File : test/core/type_length.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/core/core_type_length_size.cpp +/// @date 2011-05-25 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// #define GLM_FORCE_SIZE_FUNC #include diff --git a/test/core/core_type_mat2x2.cpp b/test/core/core_type_mat2x2.cpp index 6c6e5b5d..5637f7f6 100644 --- a/test/core/core_type_mat2x2.cpp +++ b/test/core/core_type_mat2x2.cpp @@ -1,11 +1,33 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2008-08-31 -// Updated : 2008-08-31 -// Licence : This source is under MIT License -// File : test/core/type_mat2x2.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/core/core_type_mat2x2.cpp +/// @date 2008-08-31 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// #include #include diff --git a/test/core/core_type_mat2x3.cpp b/test/core/core_type_mat2x3.cpp index 1106b625..22a5d3e6 100644 --- a/test/core/core_type_mat2x3.cpp +++ b/test/core/core_type_mat2x3.cpp @@ -1,11 +1,33 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2008-08-31 -// Updated : 2013-10-04 -// Licence : This source is under MIT License -// File : test/core/type_mat2x3.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/core/core_type_mat2x3.cpp +/// @date 2008-08-31 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// #include #include diff --git a/test/core/core_type_mat2x4.cpp b/test/core/core_type_mat2x4.cpp index 9a0036fd..b9638685 100644 --- a/test/core/core_type_mat2x4.cpp +++ b/test/core/core_type_mat2x4.cpp @@ -1,11 +1,33 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2008-08-31 -// Updated : 2008-08-31 -// Licence : This source is under MIT License -// File : test/core/type_mat2x4.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/core/core_type_mat2x4.cpp +/// @date 2008-08-31 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// #include #include diff --git a/test/core/core_type_mat3x2.cpp b/test/core/core_type_mat3x2.cpp index 9d789e67..82318a29 100644 --- a/test/core/core_type_mat3x2.cpp +++ b/test/core/core_type_mat3x2.cpp @@ -1,11 +1,33 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2008-08-31 -// Updated : 2008-08-31 -// Licence : This source is under MIT License -// File : test/core/type_mat3x2.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/core/core_type_mat3x2.cpp +/// @date 2008-08-31 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// #include #include diff --git a/test/core/core_type_mat3x3.cpp b/test/core/core_type_mat3x3.cpp index b3fc7322..beb46aa8 100644 --- a/test/core/core_type_mat3x3.cpp +++ b/test/core/core_type_mat3x3.cpp @@ -1,11 +1,33 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2008-08-31 -// Updated : 2008-08-31 -// Licence : This source is under MIT License -// File : test/core/type_mat3x3.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/core/core_type_mat3x3.cpp +/// @date 2008-08-31 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// #include #include diff --git a/test/core/core_type_mat3x4.cpp b/test/core/core_type_mat3x4.cpp index 52da11a6..ea50ec0a 100644 --- a/test/core/core_type_mat3x4.cpp +++ b/test/core/core_type_mat3x4.cpp @@ -1,11 +1,33 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2008-08-31 -// Updated : 2008-08-31 -// Licence : This source is under MIT License -// File : test/core/type_mat3x4.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/core/core_type_mat3x4.cpp +/// @date 2008-08-31 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// #include #include diff --git a/test/core/core_type_mat4x2.cpp b/test/core/core_type_mat4x2.cpp index 9d707039..9f98c86a 100644 --- a/test/core/core_type_mat4x2.cpp +++ b/test/core/core_type_mat4x2.cpp @@ -1,11 +1,33 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2008-08-31 -// Updated : 2008-08-31 -// Licence : This source is under MIT License -// File : test/core/type_mat4x2.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/core/core_type_mat4x2.cpp +/// @date 2008-08-31 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// #include #include diff --git a/test/core/core_type_mat4x3.cpp b/test/core/core_type_mat4x3.cpp index ca70b6bc..02ba2676 100644 --- a/test/core/core_type_mat4x3.cpp +++ b/test/core/core_type_mat4x3.cpp @@ -1,11 +1,33 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2008-08-31 -// Updated : 2008-08-31 -// Licence : This source is under MIT License -// File : test/core/type_mat4x3.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/core/core_type_mat4x3.cpp +/// @date 2008-08-31 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// #include #include diff --git a/test/core/core_type_mat4x4.cpp b/test/core/core_type_mat4x4.cpp index cd1239a7..29e4fb91 100644 --- a/test/core/core_type_mat4x4.cpp +++ b/test/core/core_type_mat4x4.cpp @@ -1,11 +1,33 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2008-08-31 -// Updated : 2008-08-31 -// Licence : This source is under MIT License -// File : test/core/type_mat4x4.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/core/core_type_mat4x4.cpp +/// @date 2008-08-31 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// #include #include @@ -243,6 +265,15 @@ int test_ctr() return Error; } +int perf_mul() +{ + int Error = 0; + + + + return Error; +} + int main() { int Error = 0; @@ -253,5 +284,7 @@ int main() Error += test_operators(); Error += test_inverse(); + Error += perf_mul(); + return Error; } diff --git a/test/core/core_type_vec1.cpp b/test/core/core_type_vec1.cpp index b88e87ee..f151f575 100644 --- a/test/core/core_type_vec1.cpp +++ b/test/core/core_type_vec1.cpp @@ -1,11 +1,33 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2014-10-11 -// Updated : 2014-10-11 -// Licence : This source is under MIT License -// File : test/core/type_vec1.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/core/core_type_vec1.cpp +/// @date 2014-10-11 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// #define GLM_SWIZZLE #include diff --git a/test/core/core_type_vec2.cpp b/test/core/core_type_vec2.cpp index 2ac3da96..72f1e212 100644 --- a/test/core/core_type_vec2.cpp +++ b/test/core/core_type_vec2.cpp @@ -1,11 +1,33 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2008-08-31 -// Updated : 2011-05-31 -// Licence : This source is under MIT License -// File : test/core/type_vec2.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/core/core_type_vec2.cpp +/// @date 2008-08-31 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// #define GLM_SWIZZLE #include diff --git a/test/core/core_type_vec3.cpp b/test/core/core_type_vec3.cpp index 31627a68..b7ec1256 100644 --- a/test/core/core_type_vec3.cpp +++ b/test/core/core_type_vec3.cpp @@ -1,11 +1,33 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2008-08-31 -// Updated : 2013-08-27 -// Licence : This source is under MIT License -// File : test/core/type_vec3.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/core/core_type_vec3.cpp +/// @date 2008-08-31 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// #define GLM_SWIZZLE #include diff --git a/test/core/core_type_vec4.cpp b/test/core/core_type_vec4.cpp index 355d91f4..602ecc96 100644 --- a/test/core/core_type_vec4.cpp +++ b/test/core/core_type_vec4.cpp @@ -1,11 +1,33 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2008-08-31 -// Updated : 2013-12-24 -// Licence : This source is under MIT License -// File : test/core/type_vec4.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/core/core_type_vec4.cpp +/// @date 2008-08-31 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// //#define GLM_FORCE_AVX2 #define GLM_SWIZZLE @@ -426,10 +448,10 @@ int main() std::size_t const Size(1000000); -# ifdef GLM_TEST_ENABLE_PERF +# ifdef NDEBUG Error += test_vec4_perf_AoS(Size); Error += test_vec4_perf_SoA(Size); -# endif +# endif//NDEBUG Error += test_vec4_ctor(); Error += test_vec4_size(); diff --git a/test/gtc/CMakeLists.txt b/test/gtc/CMakeLists.txt index 7699e9bf..224b8eb5 100644 --- a/test/gtc/CMakeLists.txt +++ b/test/gtc/CMakeLists.txt @@ -1,6 +1,7 @@ glmCreateTestGTC(gtc_bitfield) glmCreateTestGTC(gtc_constants) glmCreateTestGTC(gtc_epsilon) +glmCreateTestGTC(gtc_integer) glmCreateTestGTC(gtc_matrix_access) glmCreateTestGTC(gtc_matrix_integer) glmCreateTestGTC(gtc_matrix_inverse) diff --git a/test/gtc/gtc_bitfield.cpp b/test/gtc/gtc_bitfield.cpp index 828208bb..7c447c33 100644 --- a/test/gtc/gtc_bitfield.cpp +++ b/test/gtc/gtc_bitfield.cpp @@ -1,11 +1,33 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2014-10-25 -// Updated : 2014-10-25 -// Licence : This source is under MIT licence -// File : test/gtc/bitfield.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/gtc/gtc_bitfield.cpp +/// @date 2014-10-25 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// #include #include @@ -642,10 +664,10 @@ int main() Error += ::bitfieldInterleave::test(); //Error += ::bitRevert::test(); -# ifdef GLM_TEST_ENABLE_PERF +# ifdef NDEBUG Error += ::mask::perf(); Error += ::bitfieldInterleave::perf(); -# endif +# endif//NDEBUG return Error; } diff --git a/test/gtc/gtc_constants.cpp b/test/gtc/gtc_constants.cpp index 77ba47ce..42d473d7 100644 --- a/test/gtc/gtc_constants.cpp +++ b/test/gtc/gtc_constants.cpp @@ -1,11 +1,33 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2012-09-19 -// Updated : 2012-12-13 -// Licence : This source is under MIT licence -// File : test/gtc/constants.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/gtc/gtc_constants.cpp +/// @date 2012-09-19 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// #include diff --git a/test/gtc/gtc_epsilon.cpp b/test/gtc/gtc_epsilon.cpp index 6ef111c8..763cc3a1 100644 --- a/test/gtc/gtc_epsilon.cpp +++ b/test/gtc/gtc_epsilon.cpp @@ -1,11 +1,33 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2012-09-19 -// Updated : 2012-09-19 -// Licence : This source is under MIT licence -// File : test/gtc/epsilon.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/gtc/gtc_epsilon.cpp +/// @date 2012-09-19 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// #include #include diff --git a/test/gtc/gtc_integer.cpp b/test/gtc/gtc_integer.cpp new file mode 100644 index 00000000..b306b843 --- /dev/null +++ b/test/gtc/gtc_integer.cpp @@ -0,0 +1,271 @@ +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/gtc/gtc_integer.cpp +/// @date 2014-11-17 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// + +#define GLM_FORCE_INLINE +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace log2_ +{ + int test() + { + int Error = 0; + + int A0(glm::log2(10.f)); + glm::ivec1 B0(glm::log2(glm::vec1(10.f))); + glm::ivec2 C0(glm::log2(glm::vec2(10.f))); + glm::ivec3 D0(glm::log2(glm::vec3(10.f))); + glm::ivec4 E0(glm::log2(glm::vec4(10.f))); + + int A1 = glm::log2(int(10.f)); + glm::ivec1 B1 = glm::log2(glm::ivec1(10.f)); + glm::ivec2 C1 = glm::log2(glm::ivec2(10.f)); + glm::ivec3 D1 = glm::log2(glm::ivec3(10.f)); + glm::ivec4 E1 = glm::log2(glm::ivec4(10.f)); + + Error += A0 == A1 ? 0 : 1; + Error += glm::all(glm::equal(B0, B1)) ? 0 : 1; + Error += glm::all(glm::equal(C0, C1)) ? 0 : 1; + Error += glm::all(glm::equal(D0, D1)) ? 0 : 1; + Error += glm::all(glm::equal(E0, E1)) ? 0 : 1; + + return Error; + } + + int perf() + { + int Error = 0; + std::size_t const Count(100000000); + + { + std::vector Result; + Result.resize(Count); + + std::clock_t Begin = clock(); + + for(std::size_t i = 0; i < Count; ++i) + Result[i] = glm::log2(static_cast(i)); + + std::clock_t End = clock(); + + printf("glm::log2: %d clocks\n", End - Begin); + } + + { + std::vector Result; + Result.resize(Count); + + std::clock_t Begin = clock(); + + for(std::size_t i = 0; i < Count; ++i) + Result[i] = glm::log2(glm::ivec4(i)); + + std::clock_t End = clock(); + + printf("glm::log2: %d clocks\n", End - Begin); + } + +# if GLM_HAS_BITSCAN_WINDOWS + { + std::vector Result; + Result.resize(Count); + + std::clock_t Begin = clock(); + + for(std::size_t i = 0; i < Count; ++i) + { + glm::tvec4 Tmp(glm::uninitialize); + _BitScanReverse(&Tmp.x, i); + _BitScanReverse(&Tmp.y, i); + _BitScanReverse(&Tmp.z, i); + _BitScanReverse(&Tmp.w, i); + Result[i] = glm::ivec4(Tmp); + } + + std::clock_t End = clock(); + + printf("glm::log2 inlined: %d clocks\n", End - Begin); + } + + + { + std::vector > Result; + Result.resize(Count); + + std::clock_t Begin = clock(); + + for(std::size_t i = 0; i < Count; ++i) + { + _BitScanReverse(&Result[i].x, i); + _BitScanReverse(&Result[i].y, i); + _BitScanReverse(&Result[i].z, i); + _BitScanReverse(&Result[i].w, i); + } + + std::clock_t End = clock(); + + printf("glm::log2 inlined no cast: %d clocks\n", End - Begin); + } + + + { + std::vector Result; + Result.resize(Count); + + std::clock_t Begin = clock(); + + for(std::size_t i = 0; i < Count; ++i) + { + _BitScanReverse(reinterpret_cast(&Result[i].x), i); + _BitScanReverse(reinterpret_cast(&Result[i].y), i); + _BitScanReverse(reinterpret_cast(&Result[i].z), i); + _BitScanReverse(reinterpret_cast(&Result[i].w), i); + } + + std::clock_t End = clock(); + + printf("glm::log2 reinterpret: %d clocks\n", End - Begin); + } +# endif//GLM_HAS_BITSCAN_WINDOWS + + { + std::vector Result; + Result.resize(Count); + + std::clock_t Begin = clock(); + + for(std::size_t i = 0; i < Count; ++i) + Result[i] = glm::log2(static_cast(i)); + + std::clock_t End = clock(); + + printf("glm::log2: %d clocks\n", End - Begin); + } + + { + std::vector Result; + Result.resize(Count); + + std::clock_t Begin = clock(); + + for(std::size_t i = 0; i < Count; ++i) + Result[i] = glm::log2(glm::vec4(i)); + + std::clock_t End = clock(); + + printf("glm::log2: %d clocks\n", End - Begin); + } + + return Error; + } +}//namespace log2_ + +namespace mod_ +{ + int test() + { + int Error(0); + + { + float A(3.0); + float B(2.0f); + float C = glm::mod(A, B); + + Error += glm::abs(C - 1.0f) < 0.00001f ? 0 : 1; + } + + { + glm::vec4 A(3.0); + float B(2.0f); + glm::vec4 C = glm::mod(A, B); + + Error += glm::all(glm::epsilonEqual(C, glm::vec4(1.0f), 0.00001f)) ? 0 : 1; + } + + { + glm::vec4 A(3.0); + glm::vec4 B(2.0f); + glm::vec4 C = glm::mod(A, B); + + Error += glm::all(glm::epsilonEqual(C, glm::vec4(1.0f), 0.00001f)) ? 0 : 1; + } + + { + int A(3); + int B(2); + int C = glm::mod(A, B); + + Error += C == 1 ? 0 : 1; + } + + { + glm::ivec4 A(3); + int B(2); + glm::ivec4 C = glm::mod(A, B); + + Error += glm::all(glm::equal(C, glm::ivec4(1))) ? 0 : 1; + } + + { + glm::ivec4 A(3); + glm::ivec4 B(2); + glm::ivec4 C = glm::mod(A, B); + + Error += glm::all(glm::equal(C, glm::ivec4(1))) ? 0 : 1; + } + + return Error; + } +}//namespace mod_ + +int main() +{ + int Error(0); + + Error += ::log2_::test(); + Error += ::mod_::test(); + +# ifdef NDEBUG + Error += ::log2_::perf(); +# endif//NDEBUG + + return Error; +} diff --git a/test/gtc/gtc_matrix_access.cpp b/test/gtc/gtc_matrix_access.cpp index e9da259a..b70182b2 100644 --- a/test/gtc/gtc_matrix_access.cpp +++ b/test/gtc/gtc_matrix_access.cpp @@ -1,11 +1,33 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2010-09-16 -// Updated : 2013-05-10 -// Licence : This source is under MIT licence -// File : test/gtc/matrix_access.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/gtc/gtc_matrix_access.cpp +/// @date 2010-09-16 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// #include #include diff --git a/test/gtc/gtc_matrix_integer.cpp b/test/gtc/gtc_matrix_integer.cpp index 428e34f0..6a5c130d 100644 --- a/test/gtc/gtc_matrix_integer.cpp +++ b/test/gtc/gtc_matrix_integer.cpp @@ -1,11 +1,33 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2010-09-16 -// Updated : 2010-09-16 -// Licence : This source is under MIT licence -// File : test/gtc/matrix_integer.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/gtc/gtc_matrix_integer.cpp +/// @date 2010-09-16 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// #include diff --git a/test/gtc/gtc_matrix_inverse.cpp b/test/gtc/gtc_matrix_inverse.cpp index e63c9175..16b21601 100644 --- a/test/gtc/gtc_matrix_inverse.cpp +++ b/test/gtc/gtc_matrix_inverse.cpp @@ -1,11 +1,33 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2010-09-16 -// Updated : 2010-09-16 -// Licence : This source is under MIT licence -// File : test/gtc/matrix_inverse.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/gtc/gtc_matrix_inverse.cpp +/// @date 2010-09-16 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// #include diff --git a/test/gtc/gtc_matrix_transform.cpp b/test/gtc/gtc_matrix_transform.cpp index 9530045f..f35b151f 100644 --- a/test/gtc/gtc_matrix_transform.cpp +++ b/test/gtc/gtc_matrix_transform.cpp @@ -1,11 +1,33 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2010-09-16 -// Updated : 2010-09-16 -// Licence : This source is under MIT licence -// File : test/gtc/matrix_transform.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/gtc/gtc_matrix_transform.cpp +/// @date 2010-09-16 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// #include #include diff --git a/test/gtc/gtc_noise.cpp b/test/gtc/gtc_noise.cpp index dee176b9..c3829f4e 100644 --- a/test/gtc/gtc_noise.cpp +++ b/test/gtc/gtc_noise.cpp @@ -1,11 +1,33 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2011-04-21 -// Updated : 2011-04-26 -// Licence : This source is under MIT licence -// File : test/gtc/noise.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/gtc/gtc_noise.cpp +/// @date 2011-04-21 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// #include #include diff --git a/test/gtc/gtc_packing.cpp b/test/gtc/gtc_packing.cpp index 0cef7e61..3ac9defa 100644 --- a/test/gtc/gtc_packing.cpp +++ b/test/gtc/gtc_packing.cpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -20,9 +24,8 @@ /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN /// THE SOFTWARE. /// -/// @ref test -/// @file test/gtc/packing.cpp -/// @date 2013-08-09 / 2013-08-09 +/// @file test/gtc/gtc_packing.cpp +/// @date 2013-08-09 / 2014-11-25 /// @author Christophe Riccio /////////////////////////////////////////////////////////////////////////////////// diff --git a/test/gtc/gtc_quaternion.cpp b/test/gtc/gtc_quaternion.cpp index 650c58ae..89dff8ca 100644 --- a/test/gtc/gtc_quaternion.cpp +++ b/test/gtc/gtc_quaternion.cpp @@ -1,11 +1,33 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2010-09-16 -// Updated : 2011-05-25 -// Licence : This source is under MIT licence -// File : test/gtc/quaternion.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/gtc/gtc_quaternion.cpp +/// @date 2010-09-16 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// #include #include diff --git a/test/gtc/gtc_random.cpp b/test/gtc/gtc_random.cpp index 19303826..a0019572 100644 --- a/test/gtc/gtc_random.cpp +++ b/test/gtc/gtc_random.cpp @@ -1,11 +1,33 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2011-09-19 -// Updated : 2011-09-19 -// Licence : This source is under MIT licence -// File : test/gtc/random.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/gtc/gtc_random.cpp +/// @date 2011-09-19 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// #include #include diff --git a/test/gtc/gtc_reciprocal.cpp b/test/gtc/gtc_reciprocal.cpp index a98b8a1e..6de998ed 100644 --- a/test/gtc/gtc_reciprocal.cpp +++ b/test/gtc/gtc_reciprocal.cpp @@ -1,11 +1,33 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2012-09-19 -// Updated : 2012-09-19 -// Licence : This source is under MIT licence -// File : test/gtc/reciprocal.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/gtc/gtc_reciprocal.cpp +/// @date 2012-09-19 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// #include #include diff --git a/test/gtc/gtc_round.cpp b/test/gtc/gtc_round.cpp index 13137b3f..d2f242b3 100644 --- a/test/gtc/gtc_round.cpp +++ b/test/gtc/gtc_round.cpp @@ -300,9 +300,9 @@ int main() Error += isPowerOfTwo::test(); Error += ceilPowerOfTwo::test(); -# ifdef GLM_TEST_ENABLE_PERF +# ifdef NDEBUG Error += ceilPowerOfTwo::perf(); -# endif +# endif//NDEBUG return Error; } diff --git a/test/gtc/gtc_type_precision.cpp b/test/gtc/gtc_type_precision.cpp index 7b3af0fc..6147bec3 100644 --- a/test/gtc/gtc_type_precision.cpp +++ b/test/gtc/gtc_type_precision.cpp @@ -1,11 +1,33 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2010-09-16 -// Updated : 2013-04-16 -// Licence : This source is under MIT licence -// File : test/gtc/type_precision.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/gtc/gtc_type_precision.cpp +/// @date 2010-09-16 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// #include #include diff --git a/test/gtc/gtc_type_ptr.cpp b/test/gtc/gtc_type_ptr.cpp index b4fa4213..970f3b67 100644 --- a/test/gtc/gtc_type_ptr.cpp +++ b/test/gtc/gtc_type_ptr.cpp @@ -1,11 +1,33 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2010-09-16 -// Updated : 2011-05-27 -// Licence : This source is under MIT licence -// File : test/gtc/type_ptr.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/gtc/gtc_type_ptr.cpp +/// @date 2010-09-16 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// #include diff --git a/test/gtc/gtc_ulp.cpp b/test/gtc/gtc_ulp.cpp index 7c73175d..6d8c6574 100644 --- a/test/gtc/gtc_ulp.cpp +++ b/test/gtc/gtc_ulp.cpp @@ -1,11 +1,33 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2011-04-26 -// Updated : 2011-04-26 -// Licence : This source is under MIT licence -// File : test/gtc/ulp.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/gtc/gtc_ulp.cpp +/// @date 2011-04-26 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// #include #include diff --git a/test/gtc/gtc_vec1.cpp b/test/gtc/gtc_vec1.cpp index 129c76f0..6a3975e0 100644 --- a/test/gtc/gtc_vec1.cpp +++ b/test/gtc/gtc_vec1.cpp @@ -1,11 +1,33 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2014-10-11 -// Updated : 2014-10-11 -// Licence : This source is under MIT License -// File : test/gtc/vec1.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/gtc/gtc_vec1.cpp +/// @date 2014-10-11 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// #include diff --git a/test/gtx/CMakeLists.txt b/test/gtx/CMakeLists.txt index 1b72c6ff..4be4343f 100644 --- a/test/gtx/CMakeLists.txt +++ b/test/gtx/CMakeLists.txt @@ -13,7 +13,6 @@ glmCreateTestGTC(gtx_fast_square_root) glmCreateTestGTC(gtx_fast_trigonometry) glmCreateTestGTC(gtx_gradient_paint) glmCreateTestGTC(gtx_handed_coordinate_space) -glmCreateTestGTC(gtx_inertia) glmCreateTestGTC(gtx_integer) glmCreateTestGTC(gtx_intersect) glmCreateTestGTC(gtx_io) @@ -46,5 +45,6 @@ glmCreateTestGTC(gtx_simd_vec4) glmCreateTestGTC(gtx_simd_mat4) glmCreateTestGTC(gtx_spline) glmCreateTestGTC(gtx_string_cast) +glmCreateTestGTC(gtx_type_aligned) glmCreateTestGTC(gtx_vector_angle) glmCreateTestGTC(gtx_vector_query) diff --git a/test/gtx/gtx_associated_min_max.cpp b/test/gtx/gtx_associated_min_max.cpp index 5840e33b..8d5428ee 100644 --- a/test/gtx/gtx_associated_min_max.cpp +++ b/test/gtx/gtx_associated_min_max.cpp @@ -1,11 +1,33 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2013-10-25 -// Updated : 2013-10-25 -// Licence : This source is under MIT licence -// File : test/gtx/associated_min_max.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/gtx/gtx_associated_min_max.cpp +/// @date 2013-10-25 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// #include #include diff --git a/test/gtx/gtx_closest_point.cpp b/test/gtx/gtx_closest_point.cpp index 5840e33b..fbd5fff0 100644 --- a/test/gtx/gtx_closest_point.cpp +++ b/test/gtx/gtx_closest_point.cpp @@ -1,14 +1,35 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2013-10-25 -// Updated : 2013-10-25 -// Licence : This source is under MIT licence -// File : test/gtx/associated_min_max.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/gtx/gtx_closest_point.cpp +/// @date 2013-10-25 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// -#include -#include +#include int main() { diff --git a/test/gtx/gtx_color_space.cpp b/test/gtx/gtx_color_space.cpp index 0849adcd..014e4696 100644 --- a/test/gtx/gtx_color_space.cpp +++ b/test/gtx/gtx_color_space.cpp @@ -1,13 +1,34 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2013-10-25 -// Updated : 2013-10-25 -// Licence : This source is under MIT licence -// File : test/gtx/color_space.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/gtx/gtx_color_space.cpp +/// @date 2013-10-25 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// -#include #include int test_saturation() diff --git a/test/gtx/gtx_color_space_YCoCg.cpp b/test/gtx/gtx_color_space_YCoCg.cpp index 4dbccc7b..172ce624 100644 --- a/test/gtx/gtx_color_space_YCoCg.cpp +++ b/test/gtx/gtx_color_space_YCoCg.cpp @@ -1,13 +1,34 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2013-10-25 -// Updated : 2013-10-25 -// Licence : This source is under MIT licence -// File : test/gtx/color_space_YCoCg.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/gtx/gtx_color_space_YCoCg.cpp +/// @date 2013-10-25 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// -#include #include int main() diff --git a/test/gtx/gtx_common.cpp b/test/gtx/gtx_common.cpp index 8f06dcd7..3c89e1a6 100644 --- a/test/gtx/gtx_common.cpp +++ b/test/gtx/gtx_common.cpp @@ -1,11 +1,33 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2014-09-08 -// Updated : 2014-09-08 -// Licence : This source is under MIT licence -// File : test/gtx/common.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/gtx/gtx_common.cpp +/// @date 2014-09-08 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// #include diff --git a/test/gtx/gtx_compatibility.cpp b/test/gtx/gtx_compatibility.cpp index 95faa6e1..6d039122 100644 --- a/test/gtx/gtx_compatibility.cpp +++ b/test/gtx/gtx_compatibility.cpp @@ -1,13 +1,34 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2013-10-25 -// Updated : 2013-10-25 -// Licence : This source is under MIT licence -// File : test/gtx/compatibility.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/gtx/gtx_compatibility.cpp +/// @date 2014-09-08 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// -#include #include int main() diff --git a/test/gtx/gtx_component_wise.cpp b/test/gtx/gtx_component_wise.cpp index 9e5ffff3..2d032267 100644 --- a/test/gtx/gtx_component_wise.cpp +++ b/test/gtx/gtx_component_wise.cpp @@ -1,13 +1,34 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2013-10-25 -// Updated : 2013-10-25 -// Licence : This source is under MIT licence -// File : test/gtx/component_wise.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/gtx/gtx_component_wise.cpp +/// @date 2013-10-25 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// -#include #include int main() diff --git a/test/gtx/gtx_dual_quaternion.cpp b/test/gtx/gtx_dual_quaternion.cpp index 562f7b38..dd135012 100644 --- a/test/gtx/gtx_dual_quaternion.cpp +++ b/test/gtx/gtx_dual_quaternion.cpp @@ -1,11 +1,33 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2013-02-10 -// Updated : 2013-02-11 -// Licence : This source is under MIT licence -// File : test/gtc/gtc_dual_quaternion.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/gtx/gtx_dual_quaternion.cpp +/// @date 2013-02-10 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// #include #include diff --git a/test/gtx/gtx_euler_angle.cpp b/test/gtx/gtx_euler_angle.cpp index 330f6863..f4b1c905 100644 --- a/test/gtx/gtx_euler_angle.cpp +++ b/test/gtx/gtx_euler_angle.cpp @@ -1,11 +1,33 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2013-10-25 -// Updated : 2014-01-11 -// Licence : This source is under MIT licence -// File : test/gtx/euler_angle.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/gtx/gtx_euler_angle.cpp +/// @date 2013-10-25 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// // Code sample from Filippo Ramaciotti diff --git a/test/gtx/gtx_extend.cpp b/test/gtx/gtx_extend.cpp index 6dd268d5..2c12c5a0 100644 --- a/test/gtx/gtx_extend.cpp +++ b/test/gtx/gtx_extend.cpp @@ -1,13 +1,34 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2013-10-25 -// Updated : 2013-10-25 -// Licence : This source is under MIT licence -// File : test/gtx/extend.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/gtx/gtx_extend.cpp +/// @date 2013-10-25 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// -#include #include int main() diff --git a/test/gtx/gtx_extented_min_max.cpp b/test/gtx/gtx_extented_min_max.cpp index 5840e33b..f3f2320d 100644 --- a/test/gtx/gtx_extented_min_max.cpp +++ b/test/gtx/gtx_extented_min_max.cpp @@ -1,14 +1,35 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2013-10-25 -// Updated : 2013-10-25 -// Licence : This source is under MIT licence -// File : test/gtx/associated_min_max.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/gtx/gtx_extented_min_max.cpp +/// @date 2013-10-25 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// -#include -#include +#include int main() { diff --git a/test/gtx/gtx_fast_exponential.cpp b/test/gtx/gtx_fast_exponential.cpp index 3318b882..2377cbe7 100644 --- a/test/gtx/gtx_fast_exponential.cpp +++ b/test/gtx/gtx_fast_exponential.cpp @@ -1,13 +1,34 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2013-10-25 -// Updated : 2013-10-25 -// Licence : This source is under MIT licence -// File : test/gtx/associated_min_max.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/gtx/gtx_fast_exponential.cpp +/// @date 2013-10-25 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// -#include #include int main() diff --git a/test/gtx/gtx_fast_square_root.cpp b/test/gtx/gtx_fast_square_root.cpp index 061dbb3b..d33817b8 100644 --- a/test/gtx/gtx_fast_square_root.cpp +++ b/test/gtx/gtx_fast_square_root.cpp @@ -1,11 +1,33 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2013-10-25 -// Updated : 2013-10-25 -// Licence : This source is under MIT licence -// File : test/gtx/fast_square_root.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/gtx/gtx_fast_square_root.cpp +/// @date 2013-10-25 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// #include #include diff --git a/test/gtx/gtx_fast_trigonometry.cpp b/test/gtx/gtx_fast_trigonometry.cpp index f8fe3a8f..de1e6b39 100644 --- a/test/gtx/gtx_fast_trigonometry.cpp +++ b/test/gtx/gtx_fast_trigonometry.cpp @@ -1,11 +1,33 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2013-10-25 -// Updated : 2013-10-25 -// Licence : This source is under MIT licence -// File : test/gtx/fast_trigonometry.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/gtx/gtx_fast_trigonometry.cpp +/// @date 2013-10-25 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// #include #include @@ -156,14 +178,14 @@ int main() { int Error(0); -# ifdef GLM_TEST_ENABLE_PERF +# ifdef NDEBUG Error += ::fastCos::perf(); Error += ::fastSin::perf(); Error += ::fastTan::perf(); Error += ::fastAcos::perf(); Error += ::fastAsin::perf(); Error += ::fastAtan::perf(); -# endif +# endif//NDEBUG return Error; } diff --git a/test/gtx/gtx_gradient_paint.cpp b/test/gtx/gtx_gradient_paint.cpp index 80af3662..3df7aca2 100644 --- a/test/gtx/gtx_gradient_paint.cpp +++ b/test/gtx/gtx_gradient_paint.cpp @@ -1,11 +1,33 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2011-10-13 -// Updated : 2011-10-13 -// Licence : This source is under MIT licence -// File : test/gtx/gradient_paint.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/gtx/gtx_gradient_paint.cpp +/// @date 2011-10-13 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// #include diff --git a/test/gtx/gtx_handed_coordinate_space.cpp b/test/gtx/gtx_handed_coordinate_space.cpp index d45563d0..7ce83079 100644 --- a/test/gtx/gtx_handed_coordinate_space.cpp +++ b/test/gtx/gtx_handed_coordinate_space.cpp @@ -1,13 +1,34 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2013-10-25 -// Updated : 2013-10-25 -// Licence : This source is under MIT licence -// File : test/gtx/handed_coordinate_space.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/gtx/gtx_handed_coordinate_space.cpp +/// @date 2011-10-13 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// -#include #include int main() diff --git a/test/gtx/gtx_inertia.cpp b/test/gtx/gtx_inertia.cpp deleted file mode 100644 index 7a8956f2..00000000 --- a/test/gtx/gtx_inertia.cpp +++ /dev/null @@ -1,18 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2013-10-25 -// Updated : 2013-10-25 -// Licence : This source is under MIT licence -// File : test/gtx/inertia.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// - -#include -#include - -int main() -{ - int Error(0); - - return Error; -} diff --git a/test/gtx/gtx_integer.cpp b/test/gtx/gtx_integer.cpp index fd41c0b6..8485b0ed 100644 --- a/test/gtx/gtx_integer.cpp +++ b/test/gtx/gtx_integer.cpp @@ -1,11 +1,33 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2011-10-11 -// Updated : 2011-10-11 -// Licence : This source is under MIT licence -// File : test/gtx/gtx_integer.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/gtx/gtx_integer.cpp +/// @date 2011-10-11 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// #include #include diff --git a/test/gtx/gtx_intersect.cpp b/test/gtx/gtx_intersect.cpp index 5c3b5cb6..b1636e9a 100644 --- a/test/gtx/gtx_intersect.cpp +++ b/test/gtx/gtx_intersect.cpp @@ -1,13 +1,34 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2013-10-25 -// Updated : 2013-10-25 -// Licence : This source is under MIT licence -// File : test/gtx/intersect.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/gtx/gtx_intersect.cpp +/// @date 2013-10-25 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// -#include #include int main() diff --git a/test/gtx/gtx_io.cpp b/test/gtx/gtx_io.cpp index 05be9bf1..050ff2ed 100644 --- a/test/gtx/gtx_io.cpp +++ b/test/gtx/gtx_io.cpp @@ -1,11 +1,33 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2013-11-22 -// Updated : 2013-11-22 -// Licence : This source is under MIT licence -// File : test/gtx/io.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/gtx/gtx_io.cpp +/// @date 2013-11-22 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// #include #include diff --git a/test/gtx/gtx_log_base.cpp b/test/gtx/gtx_log_base.cpp index 4de4ed09..83d980fe 100644 --- a/test/gtx/gtx_log_base.cpp +++ b/test/gtx/gtx_log_base.cpp @@ -1,13 +1,34 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2013-10-25 -// Updated : 2013-10-25 -// Licence : This source is under MIT licence -// File : test/gtx/log_base.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/gtx/gtx_log_base.cpp +/// @date 2013-10-25 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// -#include #include int main() diff --git a/test/gtx/gtx_matrix_cross_product.cpp b/test/gtx/gtx_matrix_cross_product.cpp index 5dcd9376..b697c093 100644 --- a/test/gtx/gtx_matrix_cross_product.cpp +++ b/test/gtx/gtx_matrix_cross_product.cpp @@ -1,13 +1,34 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2013-10-25 -// Updated : 2013-10-25 -// Licence : This source is under MIT licence -// File : test/gtx/matrix_cross_product.hpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/gtx/gtx_matrix_cross_product.cpp +/// @date 2013-10-25 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// -#include #include int main() diff --git a/test/gtx/gtx_matrix_decompose.cpp b/test/gtx/gtx_matrix_decompose.cpp index 6a9241ae..f158066c 100644 --- a/test/gtx/gtx_matrix_decompose.cpp +++ b/test/gtx/gtx_matrix_decompose.cpp @@ -1,11 +1,33 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2014-08-31 -// Updated : 2014-08-31 -// Licence : This source is under MIT licence -// File : test/gtx/decomposition.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/gtx/gtx_decomposition.cpp +/// @date 2014-08-31 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// #include diff --git a/test/gtx/gtx_matrix_interpolation.cpp b/test/gtx/gtx_matrix_interpolation.cpp index 6e4c19aa..0c0305f0 100644 --- a/test/gtx/gtx_matrix_interpolation.cpp +++ b/test/gtx/gtx_matrix_interpolation.cpp @@ -1,11 +1,33 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2012-09-19 -// Updated : 2012-09-19 -// Licence : This source is under MIT licence -// File : test/gtx/matrix_interpolation.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/gtx/gtx_matrix_interpolation.cpp +/// @date 2012-09-19 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// #include diff --git a/test/gtx/gtx_matrix_major_storage.cpp b/test/gtx/gtx_matrix_major_storage.cpp index c3794bc7..2ca82b0a 100644 --- a/test/gtx/gtx_matrix_major_storage.cpp +++ b/test/gtx/gtx_matrix_major_storage.cpp @@ -1,13 +1,34 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2013-10-25 -// Updated : 2013-10-25 -// Licence : This source is under MIT licence -// File : test/gtx/matrix_major_storage.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/gtx/gtx_matrix_major_storage.cpp +/// @date 2013-10-25 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// -#include #include int main() diff --git a/test/gtx/gtx_matrix_operation.cpp b/test/gtx/gtx_matrix_operation.cpp index 05274262..638da3e9 100644 --- a/test/gtx/gtx_matrix_operation.cpp +++ b/test/gtx/gtx_matrix_operation.cpp @@ -1,13 +1,34 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2013-10-25 -// Updated : 2013-10-25 -// Licence : This source is under MIT licence -// File : test/gtx/matrix_operation.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/gtx/gtx_matrix_operation.cpp +/// @date 2013-10-25 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// -#include #include int main() diff --git a/test/gtx/gtx_matrix_query.cpp b/test/gtx/gtx_matrix_query.cpp index d53b03b6..f97f6593 100644 --- a/test/gtx/gtx_matrix_query.cpp +++ b/test/gtx/gtx_matrix_query.cpp @@ -1,11 +1,33 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2011-11-22 -// Updated : 2011-11-22 -// Licence : This source is under MIT licence -// File : test/gtx/matrix_query.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/gtx/gtx_matrix_query.cpp +/// @date 2011-11-22 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// #include diff --git a/test/gtx/gtx_matrix_transform_2d.cpp b/test/gtx/gtx_matrix_transform_2d.cpp index 786143b2..e7162ac1 100644 --- a/test/gtx/gtx_matrix_transform_2d.cpp +++ b/test/gtx/gtx_matrix_transform_2d.cpp @@ -1,11 +1,33 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2014-02-21 -// Updated : 2014-02-21 -// Licence : This source is under MIT licence -// File : test/gtx/matrix_transform_2d.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/gtx/gtx_matrix_transform_2d.cpp +/// @date 2014-02-21 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// #include diff --git a/test/gtx/gtx_multiple.cpp b/test/gtx/gtx_multiple.cpp index f2500260..473d0510 100644 --- a/test/gtx/gtx_multiple.cpp +++ b/test/gtx/gtx_multiple.cpp @@ -1,11 +1,33 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2012-11-19 -// Updated : 2012-11-19 -// Licence : This source is under MIT licence -// File : test/gtx/gtx_multiple.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/gtx/gtx_multiple.cpp +/// @date 2012-11-19 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// #include diff --git a/test/gtx/gtx_norm.cpp b/test/gtx/gtx_norm.cpp index 096a5d8d..553b2654 100644 --- a/test/gtx/gtx_norm.cpp +++ b/test/gtx/gtx_norm.cpp @@ -1,13 +1,34 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2013-10-25 -// Updated : 2013-10-25 -// Licence : This source is under MIT licence -// File : test/gtx/norm.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/gtx/gtx_norm.cpp +/// @date 2013-10-25 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// -#include #include int main() diff --git a/test/gtx/gtx_normal.cpp b/test/gtx/gtx_normal.cpp index ead190f9..f1cf31a1 100644 --- a/test/gtx/gtx_normal.cpp +++ b/test/gtx/gtx_normal.cpp @@ -1,13 +1,34 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2013-10-25 -// Updated : 2013-10-25 -// Licence : This source is under MIT licence -// File : test/gtx/normal.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/gtx/gtx_normal.cpp +/// @date 2013-10-25 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// -#include #include int main() diff --git a/test/gtx/gtx_normalize_dot.cpp b/test/gtx/gtx_normalize_dot.cpp index 67313225..64d98672 100644 --- a/test/gtx/gtx_normalize_dot.cpp +++ b/test/gtx/gtx_normalize_dot.cpp @@ -1,13 +1,34 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2013-10-25 -// Updated : 2013-10-25 -// Licence : This source is under MIT licence -// File : test/gtx/normalize_dot.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/gtx/gtx_normalize_dot.cpp +/// @date 2013-10-25 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// -#include #include int main() diff --git a/test/gtx/gtx_number_precision.cpp b/test/gtx/gtx_number_precision.cpp index a2e9008d..17a04a4c 100644 --- a/test/gtx/gtx_number_precision.cpp +++ b/test/gtx/gtx_number_precision.cpp @@ -1,13 +1,34 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2013-10-25 -// Updated : 2013-10-25 -// Licence : This source is under MIT licence -// File : test/gtx/number_precision.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/gtx/gtx_number_precision.cpp +/// @date 2013-10-25 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// -#include #include int main() diff --git a/test/gtx/gtx_optimum_pow.cpp b/test/gtx/gtx_optimum_pow.cpp index 430d0e5e..a0336e45 100644 --- a/test/gtx/gtx_optimum_pow.cpp +++ b/test/gtx/gtx_optimum_pow.cpp @@ -1,14 +1,34 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2013-10-25 -// Updated : 2013-10-25 -// Licence : This source is under MIT licence -// File : test/gtx/optimum_pow.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/gtx/gtx_optimum_pow.cpp +/// @date 2013-10-25 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// -#include -#include #include int main() diff --git a/test/gtx/gtx_orthonormalize.cpp b/test/gtx/gtx_orthonormalize.cpp index e9902d63..95300e26 100644 --- a/test/gtx/gtx_orthonormalize.cpp +++ b/test/gtx/gtx_orthonormalize.cpp @@ -1,14 +1,34 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2013-10-25 -// Updated : 2013-10-25 -// Licence : This source is under MIT licence -// File : test/gtx/orthonormalize.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/gtx/gtx_orthonormalize.cpp +/// @date 2013-10-25 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// -#include -#include #include int main() diff --git a/test/gtx/gtx_perpendicular.cpp b/test/gtx/gtx_perpendicular.cpp index 0f2a5fec..3c3fe0ef 100644 --- a/test/gtx/gtx_perpendicular.cpp +++ b/test/gtx/gtx_perpendicular.cpp @@ -1,14 +1,34 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2013-10-25 -// Updated : 2013-10-25 -// Licence : This source is under MIT licence -// File : test/gtx/perpendicular.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/gtx/gtx_perpendicular.cpp +/// @date 2013-10-25 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// -#include -#include #include int main() diff --git a/test/gtx/gtx_polar_coordinates.cpp b/test/gtx/gtx_polar_coordinates.cpp index 957c9884..e77c054f 100644 --- a/test/gtx/gtx_polar_coordinates.cpp +++ b/test/gtx/gtx_polar_coordinates.cpp @@ -1,14 +1,34 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2013-10-25 -// Updated : 2013-10-25 -// Licence : This source is under MIT licence -// File : test/gtx/polar_coordinates.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/gtx/gtx_polar_coordinates.cpp +/// @date 2013-10-25 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// -#include -#include #include int main() diff --git a/test/gtx/gtx_projection.cpp b/test/gtx/gtx_projection.cpp index 777c165b..a9f18028 100644 --- a/test/gtx/gtx_projection.cpp +++ b/test/gtx/gtx_projection.cpp @@ -1,14 +1,34 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2013-10-25 -// Updated : 2013-10-25 -// Licence : This source is under MIT licence -// File : test/gtx/projection.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/gtx/gtx_projection.cpp +/// @date 2013-10-25 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// -#include -#include #include int main() diff --git a/test/gtx/gtx_quaternion.cpp b/test/gtx/gtx_quaternion.cpp index 3153a910..d4c6f435 100644 --- a/test/gtx/gtx_quaternion.cpp +++ b/test/gtx/gtx_quaternion.cpp @@ -1,11 +1,33 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2011-05-25 -// Updated : 2011-05-31 -// Licence : This source is under MIT licence -// File : test/gtx/quaternion.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/gtx/gtx_quaternion.cpp +/// @date 2011-05-25 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// #include #include diff --git a/test/gtx/gtx_range.cpp b/test/gtx/gtx_range.cpp index 91911490..d7fb872a 100644 --- a/test/gtx/gtx_range.cpp +++ b/test/gtx/gtx_range.cpp @@ -1,11 +1,33 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2014-09-19 -// Updated : 2014-09-19 -// Licence : This source is under MIT licence -// File : test/gtx/gtx_range.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/gtx/gtx_range.cpp +/// @date 2014-09-19 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// #include #include diff --git a/test/gtx/gtx_rotate_normalized_axis.cpp b/test/gtx/gtx_rotate_normalized_axis.cpp index cf10598f..38031bf2 100644 --- a/test/gtx/gtx_rotate_normalized_axis.cpp +++ b/test/gtx/gtx_rotate_normalized_axis.cpp @@ -12,6 +12,10 @@ /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -20,13 +24,11 @@ /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN /// THE SOFTWARE. /// -/// @ref gtx_rotate_normalized_axis -/// @file test/gtx/rotate_normalized_axis.cpp +/// @file test/gtx/gtx_rotate_normalized_axis.cpp /// @date 2012-12-13 / 2012-12-13 /// @author Christophe Riccio -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// -#include #include int main() diff --git a/test/gtx/gtx_rotate_vector.cpp b/test/gtx/gtx_rotate_vector.cpp index ff8fac60..b8212f06 100644 --- a/test/gtx/gtx_rotate_vector.cpp +++ b/test/gtx/gtx_rotate_vector.cpp @@ -1,11 +1,33 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2011-05-16 -// Updated : 2011-05-16 -// Licence : This source is under MIT licence -// File : test/gtx/rotate_vector.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/gtx/gtx_rotate_vector.cpp +/// @date 2011-05-16 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// #include #include diff --git a/test/gtx/gtx_scalar_multiplication.cpp b/test/gtx/gtx_scalar_multiplication.cpp index a8aef354..19325653 100644 --- a/test/gtx/gtx_scalar_multiplication.cpp +++ b/test/gtx/gtx_scalar_multiplication.cpp @@ -1,11 +1,33 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2014-09-22 -// Updated : 2014-09-22 -// Licence : This source is under MIT licence -// File : test/gtx/gtx_scalar_multiplication.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/gtx/gtx_scalar_multiplication.cpp +/// @date 2014-09-22 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// #include diff --git a/test/gtx/gtx_scalar_relational.cpp b/test/gtx/gtx_scalar_relational.cpp index 096d1dc8..5156e6c5 100644 --- a/test/gtx/gtx_scalar_relational.cpp +++ b/test/gtx/gtx_scalar_relational.cpp @@ -1,11 +1,33 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2013-02-04 -// Updated : 2013-02-04 -// Licence : This source is under MIT licence -// File : test/gtx/gtx_scalar_relational.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/gtx/gtx_scalar_relational.cpp +/// @date 2013-02-04 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// #include #include diff --git a/test/gtx/gtx_simd_mat4.cpp b/test/gtx/gtx_simd_mat4.cpp index 615b69f2..c7ea4592 100644 --- a/test/gtx/gtx_simd_mat4.cpp +++ b/test/gtx/gtx_simd_mat4.cpp @@ -1,11 +1,33 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2010-09-16 -// Updated : 2010-09-16 -// Licence : This source is under MIT licence -// File : test/gtx/simd-mat4.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/gtx/gtx_simd_mat4.cpp +/// @date 2010-09-16 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// #include #include diff --git a/test/gtx/gtx_simd_vec4.cpp b/test/gtx/gtx_simd_vec4.cpp index af7894f3..e71a60b9 100644 --- a/test/gtx/gtx_simd_vec4.cpp +++ b/test/gtx/gtx_simd_vec4.cpp @@ -1,11 +1,33 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2010-09-16 -// Updated : 2010-09-16 -// Licence : This source is under MIT licence -// File : test/gtx/simd-vec4.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/gtx/gtx_simd_vec4.cpp +/// @date 2010-09-16 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// #include #include diff --git a/test/gtx/gtx_spline.cpp b/test/gtx/gtx_spline.cpp index d82536fe..c627fb21 100644 --- a/test/gtx/gtx_spline.cpp +++ b/test/gtx/gtx_spline.cpp @@ -1,14 +1,37 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2013-10-25 -// Updated : 2013-10-25 -// Licence : This source is under MIT licence -// File : test/gtx/associated_min_max.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/gtx/gtx_spline.cpp +/// @date 2013-10-25 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// -#include -#include +#include +#include +#include #include namespace catmullRom diff --git a/test/gtx/gtx_string_cast.cpp b/test/gtx/gtx_string_cast.cpp index 2d796b22..61223a88 100644 --- a/test/gtx/gtx_string_cast.cpp +++ b/test/gtx/gtx_string_cast.cpp @@ -1,11 +1,33 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2011-09-01 -// Updated : 2011-09-01 -// Licence : This source is under MIT licence -// File : test/gtx/string_cast.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/gtx/gtx_string_cast.cpp +/// @date 2011-09-01 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// #include #include diff --git a/test/gtx/gtx_type_aligned.cpp b/test/gtx/gtx_type_aligned.cpp new file mode 100644 index 00000000..aeff2b7e --- /dev/null +++ b/test/gtx/gtx_type_aligned.cpp @@ -0,0 +1,144 @@ +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/gtx/gtx_type_aligned.cpp +/// @date 2014-11-23 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// + +#include +#include + +int test_decl() +{ + int Error(0); + + { + struct S1 + { + glm::aligned_vec4 B; + }; + + struct S2 + { + glm::vec4 B; + }; + + printf("vec4 - Aligned: %d, unaligned: %d\n", sizeof(S1), sizeof(S2)); + + Error += sizeof(S1) >= sizeof(S2) ? 0 : 1; + } + + { + struct S1 + { + bool A; + glm::vec3 B; + }; + + struct S2 + { + bool A; + glm::aligned_vec3 B; + }; + + printf("vec3: %d, aligned: %d\n", sizeof(S1), sizeof(S2)); + + Error += sizeof(S1) <= sizeof(S2) ? 0 : 1; + } + + { + struct S1 + { + bool A; + glm::aligned_vec4 B; + }; + + struct S2 + { + bool A; + glm::vec4 B; + }; + + printf("vec4 - Aligned: %d, unaligned: %d\n", sizeof(S1), sizeof(S2)); + + Error += sizeof(S1) >= sizeof(S2) ? 0 : 1; + } + + { + struct S1 + { + bool A; + glm::aligned_dvec4 B; + }; + + struct S2 + { + bool A; + glm::dvec4 B; + }; + + printf("dvec4 - Aligned: %d, unaligned: %d\n", sizeof(S1), sizeof(S2)); + + Error += sizeof(S1) >= sizeof(S2) ? 0 : 1; + } + + return Error; +} + +template +void print(genType const & Mat0) +{ + printf("mat4(\n"); + printf("\tvec4(%2.9f, %2.9f, %2.9f, %2.9f)\n", Mat0[0][0], Mat0[0][1], Mat0[0][2], Mat0[0][3]); + printf("\tvec4(%2.9f, %2.9f, %2.9f, %2.9f)\n", Mat0[1][0], Mat0[1][1], Mat0[1][2], Mat0[1][3]); + printf("\tvec4(%2.9f, %2.9f, %2.9f, %2.9f)\n", Mat0[2][0], Mat0[2][1], Mat0[2][2], Mat0[2][3]); + printf("\tvec4(%2.9f, %2.9f, %2.9f, %2.9f))\n\n", Mat0[3][0], Mat0[3][1], Mat0[3][2], Mat0[3][3]); +} + +int perf_mul() +{ + int Error = 0; + + glm::mat4 A(1.0f); + glm::mat4 B(1.0f); + + glm::mat4 C = A * B; + + print(C); + + return Error; +} + +int main() +{ + int Error(0); + + Error += test_decl(); + Error += perf_mul(); + + return Error; +} diff --git a/test/gtx/gtx_vector_angle.cpp b/test/gtx/gtx_vector_angle.cpp index 94d38880..342c59ed 100644 --- a/test/gtx/gtx_vector_angle.cpp +++ b/test/gtx/gtx_vector_angle.cpp @@ -1,11 +1,33 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2011-05-15 -// Updated : 2011-05-15 -// Licence : This source is under MIT licence -// File : test/gtx/vector_angle.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/gtx/gtx_vector_angle.cpp +/// @date 2011-05-15 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// #include #include diff --git a/test/gtx/gtx_vector_query.cpp b/test/gtx/gtx_vector_query.cpp index d6d8f9fc..a2ea54b5 100644 --- a/test/gtx/gtx_vector_query.cpp +++ b/test/gtx/gtx_vector_query.cpp @@ -1,13 +1,37 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2011-11-23 -// Updated : 2011-11-23 -// Licence : This source is under MIT licence -// File : test/gtx/vector_query.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @file test/gtx/gtx_vector_query.cpp +/// @date 2011-11-23 / 2014-11-25 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// -#include +#include +#include +#include #include int test_areCollinear()